libgomp and python: dlopen fails

Sebastian Steiger steigers@phys.ethz.ch
Wed Apr 25 15:26:00 GMT 2007


The library I'm importing is called _gain.so.

file _gain.so gives:

_gain.so: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), 
not stripped



file libgomp.so.1 gives:

libgomp.so.1: ELF 64-bit LSB shared object, AMD x86-64, version 1 
(SYSV), not stripped



ldd _gain.so gives:

        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002b51fe5e6000)
         libm.so.6 => /lib64/tls/libm.so.6 (0x00002b51fe7d6000)
         libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b51fe95c000)
         libc.so.6 => /lib64/tls/libc.so.6 (0x00002b51fea68000)
         libDF-ISE++.so => ...
         libDF-ISE.so => ...
         libils.so => ...
         libmetis.so => ...
         libarpack.so => ...
         libz.so.1 => /usr/lib64/libz.so.1 (0x00002b51ff3dd000)
         libacml.so => /home/steiger/src/release/amd64/lib/libacml.so 
(0x00002b51ff4f0000)
         libacml_mv.so => 
/home/steiger/src/release/amd64/lib/libacml_mv.so (0x00002b5200751000)
         libpgftnrtl.so => ...
         libpgc.so => ...
         libpgmp.so => ...
         libpthread.so.0 => ...
         librt.so.1 => /lib64/tls/librt.so.1 (0x00002b5200d38000)
         libnuma.so.1 => /usr/lib64/libnuma.so.1 (0x00002b5200e52000)
         libpgbind.so => ...
         libgomp.so.1 => 
/home/steiger/src/release/amd64/lib/libgomp.so.1 (0x00002b5201059000)
         /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)


I took away some of the path information. I was able to import the 
library before adding OpenMP. There is no missing library, and all the 
other libraries can be imported.


I also set LD_DEBUG=file as you suggested. When trying to import the 
library in python, the following shows up:

      19547:
      19547:     file=libpython2.3.so.1.0 [0];  needed by python [0]
      19547:     file=libpython2.3.so.1.0 [0];  generating link map
      19547:       dynamic: 0x000000396dde6200  base: 0x0000000000000000 
   size: 0x0000000000218110
      19547:         entry: 0x000000396dc2d620  phdr: 0x000000396dc00040 
  phnum:                  5
      19547:
      19547:     file=libpthread.so.0 [0];  needed by python [0]
      19547:     file=libpthread.so.0 [0];  generating link map
      19547:       dynamic: 0x0000003bd510fda0  base: 0x0000000000000000 
   size: 0x0000000000114378
      19547:         entry: 0x0000003bd5005620  phdr: 0x0000003bd5000040 
  phnum:                  9
      19547:
      19547:     file=libdl.so.2 [0];  needed by python [0]
      19547:     file=libdl.so.2 [0];  generating link map
      19547:       dynamic: 0x0000003bd4b01dd8  base: 0x0000000000000000 
   size: 0x00000000001020c8
      19547:         entry: 0x0000003bd4a00f80  phdr: 0x0000003bd4a00040 
  phnum:                  9
      19547:
      19547:     file=libutil.so.1 [0];  needed by python [0]
      19547:     file=libutil.so.1 [0];  generating link map
      19547:       dynamic: 0x0000003bd8501e20  base: 0x0000000000000000 
   size: 0x0000000000102118
      19547:         entry: 0x0000003bd8401180  phdr: 0x0000003bd8400040 
  phnum:                  9
      19547:
      19547:     file=libm.so.6 [0];  needed by python [0]
      19547:     file=libm.so.6 [0];  generating link map
      19547:       dynamic: 0x0000003bd4984df0  base: 0x0000000000000000 
   size: 0x00000000001851c8
      19547:         entry: 0x0000003bd4803df0  phdr: 0x0000003bd4800040 
  phnum:                  9
      19547:
      19547:     file=libc.so.6 [0];  needed by python [0]
      19547:     file=libc.so.6 [0];  generating link map
      19547:       dynamic: 0x0000003bd472daa0  base: 0x0000000000000000 
   size: 0x0000000000233fc8
      19547:         entry: 0x0000003bd451c4a0  phdr: 0x0000003bd4500040 
  phnum:                 10
      19547:
      19547:     calling init: /lib64/tls/libpthread.so.0
      19547:     calling init: /lib64/tls/libc.so.6
      19547:     calling init: /lib64/tls/libm.so.6
      19547:     calling init: /lib64/libutil.so.1
      19547:     calling init: /lib64/libdl.so.2
      19547:     calling init: /usr/lib64/libpython2.3.so.1.0
      19547:
      19547:     initialize program: python
      19547:
      19547:     transferring control: python
      19547:
      19547:     file=./_gain.so [0];  needed by 
/usr/lib64/libpython2.3.so.1.0 [0]
      19547:     file=./_gain.so [0];  generating link map
      19547:       dynamic: 0x00002b8a488fa6f8  base: 0x00002b8a484e9000 
   size: 0x0000000000428358
      19547:         entry: 0x00002b8a485c7210  phdr: 0x00002b8a484e9040 
  phnum:                  5
      19547:
      19547:     file=libstdc++.so.6 [0];  needed by ./_gain.so [0]
      19547:     file=libstdc++.so.6 [0];  generating link map
      19547:       dynamic: 0x0000003feced5f00  base: 0x0000000000000000 
   size: 0x00000000001efc70
      19547:         entry: 0x0000003fecd4d000  phdr: 0x0000003fecd00040 
  phnum:                  6
      19547:
      19547:     file=libgcc_s.so.1 [0];  needed by ./_gain.so [0]
      19547:     file=libgcc_s.so.1 [0];  generating link map
      19547:       dynamic: 0x0000003bd6d0a598  base: 0x0000000000000000 
   size: 0x000000000010a940
      19547:         entry: 0x0000003bd6c01d40  phdr: 0x0000003bd6c00040 
  phnum:                  5
      19547:
      19547:     file=libDF-ISE++.so [0];  needed by ./_gain.so [0]
      19547:     file=libDF-ISE++.so [0];  generating link map
      19547:       dynamic: 0x00002b8a48a4c030  base: 0x00002b8a48937000 
   size: 0x00000000001159c0
      19547:         entry: 0x00002b8a4893e5a0  phdr: 0x00002b8a48937040 
  phnum:                  5
      19547:
      19547:     file=libDF-ISE.so [0];  needed by ./_gain.so [0]
      19547:     file=libDF-ISE.so [0];  generating link map
      19547:       dynamic: 0x00002b8a48b99030  base: 0x00002b8a48a4d000 
   size: 0x000000000014d350
      19547:         entry: 0x00002b8a48a53a00  phdr: 0x00002b8a48a4d040 
  phnum:                  5
      19547:
      19547:     file=libils.so [0];  needed by ./_gain.so [0]
      19547:     file=libils.so [0];  generating link map
      19547:       dynamic: 0x00002b8a48d3e428  base: 0x00002b8a48b9b000 
   size: 0x00000000001cc4e8
      19547:         entry: 0x00002b8a48bb2ff0  phdr: 0x00002b8a48b9b040 
  phnum:                  4
      19547:
      19547:     file=libmetis.so [0];  needed by ./_gain.so [0]
      19547:     file=libmetis.so [0];  generating link map
      19547:       dynamic: 0x00002b8a48ebd030  base: 0x00002b8a48d68000 
   size: 0x0000000000155cb8
      19547:         entry: 0x00002b8a48d71840  phdr: 0x00002b8a48d68040 
  phnum:                  5
      19547:
      19547:     file=libarpack.so [0];  needed by ./_gain.so [0]
      19547:     file=libarpack.so [0];  generating link map
      19547:       dynamic: 0x00002b8a4905c1e0  base: 0x00002b8a48ebe000 
   size: 0x00000000001b7b60
      19547:         entry: 0x00002b8a48ec4610  phdr: 0x00002b8a48ebe040 
  phnum:                  4
      19547:
      19547:     file=libz.so.1 [0];  needed by ./_gain.so [0]
      19547:     file=libz.so.1 [0];  generating link map
      19547:       dynamic: 0x0000003feb6121b0  base: 0x0000000000000000 
   size: 0x00000000001125a8
      19547:         entry: 0x0000003feb501f20  phdr: 0x0000003feb500040 
  phnum:                  5
      19547:
      19547:     file=libacml.so [0];  needed by ./_gain.so [0]
      19547:     file=libacml.so [0];  generating link map
      19547:       dynamic: 0x00002b8a4a2a7028  base: 0x00002b8a49076000 
   size: 0x0000000001260a40
      19547:         entry: 0x00002b8a490c93b0  phdr: 0x00002b8a49076040 
  phnum:                  4
      19547:
      19547:     file=libacml_mv.so [0];  needed by ./_gain.so [0]
      19547:     file=libacml_mv.so [0];  generating link map
      19547:       dynamic: 0x00002b8a4a401028  base: 0x00002b8a4a2d7000 
   size: 0x0000000000145ee8
      19547:         entry: 0x00002b8a4a2da950  phdr: 0x00002b8a4a2d7040 
  phnum:                  4
      19547:
      19547:     file=libpgftnrtl.so [0];  needed by ./_gain.so [0]
      19547:     file=libpgftnrtl.so [0];  generating link map
      19547:       dynamic: 0x00002b8a4a54a3e8  base: 0x00002b8a4a41d000 
   size: 0x000000000012fd30
      19547:         entry: 0x00002b8a4a427ae0  phdr: 0x00002b8a4a41d040 
  phnum:                  4
      19547:
      19547:     file=libpgc.so [0];  needed by ./_gain.so [0]
      19547:     file=libpgc.so [0];  generating link map
      19547:       dynamic: 0x00002b8a4a6823c8  base: 0x00002b8a4a54d000 
   size: 0x0000000000137fa0
      19547:         entry: 0x00002b8a4a5560b0  phdr: 0x00002b8a4a54d040 
  phnum:                  4
      19547:
      19547:     file=libpgmp.so [0];  needed by ./_gain.so [0]
      19547:     file=libpgmp.so [0];  generating link map
      19547:       dynamic: 0x00002b8a4a79fd30  base: 0x00002b8a4a685000 
   size: 0x0000000000121828
      19547:         entry: 0x00002b8a4a689c10  phdr: 0x00002b8a4a685040 
  phnum:                  4
      19547:
      19547:     file=librt.so.1 [0];  needed by ./_gain.so [0]
      19547:     file=librt.so.1 [0];  generating link map
      19547:       dynamic: 0x0000003bd7d08d70  base: 0x0000000000000000 
   size: 0x00000000001190f0
      19547:         entry: 0x0000003bd7c02c90  phdr: 0x0000003bd7c00040 
  phnum:                  9
      19547:
      19547:     file=libnuma.so.1 [0];  needed by ./_gain.so [0]
      19547:     file=libnuma.so.1 [0];  generating link map
      19547:       dynamic: 0x0000003feaa04030  base: 0x0000000000000000 
   size: 0x00000000001047a0
      19547:         entry: 0x0000003fea9019e0  phdr: 0x0000003fea900040 
  phnum:                  6
      19547:
      19547:     file=libpgbind.so [0];  needed by ./_gain.so [0]
      19547:     file=libpgbind.so [0];  generating link map
      19547:       dynamic: 0x00002b8a4a8a7a08  base: 0x00002b8a4a7a7000 
   size: 0x0000000000100c20
      19547:         entry: 0x00002b8a4a7a7840  phdr: 0x00002b8a4a7a7040 
  phnum:                  4
      19547:
      19547:     file=libgomp.so.1 [0];  needed by ./_gain.so [0]
      19547:     file=libgomp.so.1 [0];  generating link map
Traceback (most recent call last):
   File "structures/brugger/forward-gummel.py", line 17, in ?
     from gain import *
   File "./gain.py", line 7, in ?
     import _gain
ImportError: libgomp.so.1: shared object cannot be dlopen()ed
      19547:
      19547:     calling fini: /usr/lib64/libpython2.3.so.1.0 [0]
      19547:     calling fini: /lib64/tls/libpthread.so.0 [0]
      19547:     calling fini: /lib64/libdl.so.2 [0]
      19547:     calling fini: /lib64/libutil.so.1 [0]
      19547:     calling fini: /lib64/tls/libm.so.6 [0]
      19547:     calling fini: /lib64/tls/libc.so.6 [0]
      19547:


Does this help you?



More information about the Gcc-help mailing list