On Mon, Mar 28, 2016 at 3:12 PM, Matthew Brett <[email protected]> wrote: > On Mon, Mar 28, 2016 at 2:30 PM, Nathaniel Smith <[email protected]> wrote: >> On Mar 28, 2016 14:20, "Matthew Brett" <[email protected]> wrote: >>> >>> On Mon, Mar 28, 2016 at 1:42 PM, Matthew Brett <[email protected]> >>> wrote: >>> > I'm installing a manylinux wheel on a Debian sid machine I have. For >>> > the manylinux wheel, but not a local build, I get the following error >>> > from `nosetests numpy.f2py`: >>> > >>> > ``` >>> > ====================================================================== >>> > ERROR: test_kind.TestKind.test_all >>> > ---------------------------------------------------------------------- >>> > Traceback (most recent call last): >>> > File >>> > "/home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/nose/case.py", >>> > line 381, in setUp >>> > try_run(self.inst, ('setup', 'setUp')) >>> > File >>> > "/home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/nose/util.py", >>> > line 471, in try_run >>> > return func() >>> > File >>> > "/home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/numpy/f2py/tests/util.py", >>> > line 358, in setUp >>> > module_name=self.module_name) >>> > File >>> > "/home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/numpy/f2py/tests/util.py", >>> > line 78, in wrapper >>> > memo[key] = func(*a, **kw) >>> > File >>> > "/home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/numpy/f2py/tests/util.py", >>> > line 149, in build_module >>> > __import__(module_name) >>> > ImportError: >>> > /home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/numpy/core/../.libs/libgfortran.so.3: >>> > version `GFORTRAN_1.4' not found (required by >>> > /tmp/tmpsFHJXE/_test_ext_module_5405.so) >>> > ``` >>> > >>> > Anyone out there with insight as to what's going on? >>> >>> I guess what might be happening, is that the built f2py module should >>> be linking against the system libgfortran, but in fact is finding the >>> shipped gfortran. >> >> I think this diagnosis is correct, but I don't know why it would be >> happening. The newly compiled module should be getting loaded into a fresh >> ELF context and find the system gfortran. We're not adding the .libs dir to >> LD_LIBRARY_PATH, right? Are we somehow adding the .libs dir to the built >> module's rpath? >> >> Some things to try: >> - run with LD_DEBUG=libs >> - check LD_LIBRARY_PATH >> - use readelf on the _test_ex_module.so to see if it has an rpath set > > I can't replicate this error in a fresh Python process: > > ImportError: > /home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/numpy/core/../.libs/libgfortran.so.3: > version `GFORTRAN_1.4' not found (required by > /tmp/tmpjqst5B/_test_ext_module_5405.so) > > $ cd /tmp/tmpjqst5B > $ python -c 'import _test_ext_module_5405' > > No sign of a custom rpath: > > $ readelf -d _test_ext_module_5405.so > > Dynamic section at offset 0x5d60 contains 29 entries: > Tag Type Name/Value > 0x0000000000000001 (NEEDED) Shared library: [libpython2.7.so.1.0] > 0x0000000000000001 (NEEDED) Shared library: [libgfortran.so.3] > 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] > 0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1] > 0x0000000000000001 (NEEDED) Shared library: [libquadmath.so.0] > 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] > 0x000000000000000c (INIT) 0x17c0 > 0x000000000000000d (FINI) 0x41e0 > 0x0000000000000019 (INIT_ARRAY) 0x205d40 > 0x000000000000001b (INIT_ARRAYSZ) 8 (bytes) > 0x000000000000001a (FINI_ARRAY) 0x205d48 > 0x000000000000001c (FINI_ARRAYSZ) 8 (bytes) > 0x000000006ffffef5 (GNU_HASH) 0x1f0 > 0x0000000000000005 (STRTAB) 0x9c8 > 0x0000000000000006 (SYMTAB) 0x2a8 > 0x000000000000000a (STRSZ) 1328 (bytes) > 0x000000000000000b (SYMENT) 24 (bytes) > 0x0000000000000003 (PLTGOT) 0x206000 > 0x0000000000000002 (PLTRELSZ) 1128 (bytes) > 0x0000000000000014 (PLTREL) RELA > 0x0000000000000017 (JMPREL) 0x1358 > 0x0000000000000007 (RELA) 0xfe0 > 0x0000000000000008 (RELASZ) 888 (bytes) > 0x0000000000000009 (RELAENT) 24 (bytes) > 0x000000006ffffffe (VERNEED) 0xf90 > 0x000000006fffffff (VERNEEDNUM) 1 > 0x000000006ffffff0 (VERSYM) 0xef8 > 0x000000006ffffff9 (RELACOUNT) 18 > 0x0000000000000000 (NULL) 0x0 > > Stopping in pdb: > > $ nosetests numpy.f2py --pdb > ..........................................................................................................................................................................................................................................................................................................................................................................> > /home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/numpy/f2py/tests/util.py(151)build_module() > -> __import__(module_name) > (Pdb) os.environ['LD_LIBRARY_PATH'] > *** KeyError: 'LD_LIBRARY_PATH' > (Pdb) module_name > '_test_ext_module_5405' > (Pdb) import _test_ext_module_5405 > *** ImportError: > /home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/numpy/core/../.libs/libgfortran.so.3: > version `GFORTRAN_1.4' not found (required by > /tmp/tmp8KkcW2/_test_ext_module_5405.so) > > Running > > LD_DEBUG=libs nosetests > /home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/numpy/f2py/tests/test_kind.py:TestKind.test_all > > gives no test error, but does show this: > > 18543: find library=libgfortran.so.3 [0]; searching > 18543: search > path=/home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/numpy/core/../.libs > (RPATH from file > /home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/numpy/core/multiarray.so) > 18543: trying > file=/home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/numpy/core/../.libs/libgfortran.so.3
And: $ python -c 'import _test_ext_module_5403' # No error $ python -c 'import numpy; import _test_ext_module_5403' # Error after importing numpy Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: /home/mb312/dev_trees/2fd9d9a29e022c297634/manylinux-test/lib/python2.7/site-packages/numpy/core/../.libs/libgfortran.so.3: version `GFORTRAN_1.4' not found (required by ./_test_ext_module_5403.so) Matthew _______________________________________________ Wheel-builders mailing list [email protected] https://mail.python.org/mailman/listinfo/wheel-builders
