patchelf icon indicating copy to clipboard operation
patchelf copied to clipboard

Weird import error with repaired wheel

Open jontwo opened this issue 8 months ago • 0 comments

Describe the bug

I've built a GDAL wheel and used auditwheel/patchelf to add the shared libraries into it, but I get an import error when I try to use the wheel. The missing module name is different every time and looks like it's actually a binary file rather than a file path.

ImportError: 9\udcd4\udc87\udce9\udcfa\udcff\udcff\udc80: cannot open shared object file: No such file or directory

Steps To Reproduce

patchelf_repro.tar.gz (Github does not let me attach the wheel)

Attached is a project that will build the problem wheel. It's based on https://github.com/youngpm/gdalmanylinux but has been updated so the build steps are closer to https://github.com/OSGeo/gdal/tree/release/3.10/.github/workflows.

The current recipe uses patchelf v0.18.0 but I did not have this problem with v0.14.5.

Expected behavior

I should be able to run python -c "import osgeo" without error.

patchelf --version output patchelf 0.18.0

Additional context

Here is a typical call stack from trying to use the wheel.

$ python -c "import osgeo"
Traceback (most recent call last):
  File "/home/jontwo/venv/deleteme/lib/python3.12/site-packages/osgeo/__init__.py", line 30, in swig_import_helper
    return importlib.import_module(mname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 921, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 813, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 1293, in create_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
ImportError: ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ: cannot open shared object file: File name too long

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/jontwo/venv/deleteme/lib/python3.12/site-packages/osgeo/__init__.py", line 35, in <module>
    _gdal = swig_import_helper()
            ^^^^^^^^^^^^^^^^^^^^
  File "/home/jontwo/venv/deleteme/lib/python3.12/site-packages/osgeo/__init__.py", line 32, in swig_import_helper
    return importlib.import_module('_gdal')
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named '_gdal'

The problem is in trying to load the depended libraries in libgdal.so.36. These are:

root@8e5be684c58f:/io# ldd /src/superbuild/build/libgdal.so.36
        linux-vdso.so.1 (0x00007ffce6ba6000)
        libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007f8f0d9b9000)
        libopenjp2.so.7 => /lib/x86_64-linux-gnu/libopenjp2.so.7 (0x00007f8f0d963000)
        liblcms2.so.2 => /lib/x86_64-linux-gnu/liblcms2.so.2 (0x00007f8f0d908000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8f0d8e5000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8f0d796000)
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f8f0d5b4000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8f0d3c0000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f8f0fbd7000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f8f0d3a4000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8f0d39e000)
        libjson-c.so.4 => /lib/x86_64-linux-gnu/libjson-c.so.4 (0x00007f8f0d38c000)
        libarchive.so.13 => /lib/x86_64-linux-gnu/libarchive.so.13 (0x00007f8f0d2c9000)
        libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x00007f8f0d236000)
        libodbc.so.2 => /lib/x86_64-linux-gnu/libodbc.so.2 (0x00007f8f0d1c1000)
        libodbcinst.so.2 => /lib/x86_64-linux-gnu/libodbcinst.so.2 (0x00007f8f0d1a9000)
        libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f8f0cfef000)
        libcrypto++.so.6 => /lib/x86_64-linux-gnu/libcrypto++.so.6 (0x00007f8f0cc29000)
        libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f8f0c952000)
        libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f8f0c8a9000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f8f0c87e000)
        libdeflate.so.0 => /lib/x86_64-linux-gnu/libdeflate.so.0 (0x00007f8f0c860000)
        liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f8f0c83f000)
        libblosc.so.1 => /lib/libblosc.so.1 (0x00007f8f0c82e000)
        libwebp.so.6 => /lib/x86_64-linux-gnu/libwebp.so.6 (0x00007f8f0c7c4000)
        libarmadillo.so.9 => /lib/libarmadillo.so.9 (0x00007f8f0c7b1000)
        libOpenCL.so.1 => /lib/x86_64-linux-gnu/libOpenCL.so.1 (0x00007f8f0c5a4000)
        libqhull_r.so.7 => /lib/x86_64-linux-gnu/libqhull_r.so.7 (0x00007f8f0c34a000)
        libSFCGAL.so.1 => /lib/x86_64-linux-gnu/libSFCGAL.so.1 (0x00007f8f0b9b5000)
        libgmpxx.so.4 => /lib/x86_64-linux-gnu/libgmpxx.so.4 (0x00007f8f0b9ac000)
        libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f8f0b97e000)
        libxerces-c-3.2.so => /lib/x86_64-linux-gnu/libxerces-c-3.2.so (0x00007f8f0b5eb000)
        libjxl.so.0.12 => /usr/local/lib/libjxl.so.0.12 (0x00007f8f0b1da000)
        libheif.so.1 => /lib/x86_64-linux-gnu/libheif.so.1 (0x00007f8f0b15a000)
        libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f8f0b122000)
        libQB3.so => /lib/x86_64-linux-gnu/libQB3.so (0x00007f8f0b0cd000)
        libaec.so.0 => /lib/x86_64-linux-gnu/libaec.so.0 (0x00007f8f0b0c4000)
        libpoppler.so.97 => /lib/x86_64-linux-gnu/libpoppler.so.97 (0x00007f8f0ad80000)
        libpodofo.so.0.9.6 => /lib/libpodofo.so.0.9.6 (0x00007f8f0abc0000)
        libgif.so.7 => /lib/x86_64-linux-gnu/libgif.so.7 (0x00007f8f0abb5000)
        libnetcdf.so.15 => /lib/x86_64-linux-gnu/libnetcdf.so.15 (0x00007f8f0aa90000)
        libcfitsio.so.8 => /lib/x86_64-linux-gnu/libcfitsio.so.8 (0x00007f8f0a791000)
        libhdf5_serial.so.103 => /lib/x86_64-linux-gnu/libhdf5_serial.so.103 (0x00007f8f0a414000)
        libsqlite3.so.0 => /usr/local/install-sqlite-trusted-schema-off/lib/libsqlite3.so.0 (0x00007f8f0a2d3000)
        libpq.so.5 => /lib/x86_64-linux-gnu/libpq.so.5 (0x00007f8f0a280000)
        libkea.so.1.4 => /lib/libkea.so.1.4 (0x00007f8f0a209000)
        libhdf5_cpp.so.103 => /lib/x86_64-linux-gnu/libhdf5_cpp.so.103 (0x00007f8f0a18c000)
        libtiledb.so.2.15 => /lib/x86_64-linux-gnu/libtiledb.so.2.15 (0x00007f8f094b7000)
        libIlmImf-2_3.so.24 => /lib/x86_64-linux-gnu/libIlmImf-2_3.so.24 (0x00007f8f091d8000)
        libHalf.so.24 => /lib/x86_64-linux-gnu/libHalf.so.24 (0x00007f8f09193000)
        libIex-2_3.so.24 => /lib/x86_64-linux-gnu/libIex-2_3.so.24 (0x00007f8f09170000)
        libjxl_threads.so.0.12 => /usr/local/lib/libjxl_threads.so.0.12 (0x00007f8f0916a000)
        libbasisu.so => /lib/x86_64-linux-gnu/libbasisu.so (0x00007f8f08f9f000)
        /usr/local/lib/libltidsdk.so (0x00007f8f087c6000)
        libkmlbase.so.1 => /lib/x86_64-linux-gnu/libkmlbase.so.1 (0x00007f8f087a9000)
        libkmldom.so.1 => /lib/x86_64-linux-gnu/libkmldom.so.1 (0x00007f8f08708000)
        libkmlengine.so.1 => /lib/x86_64-linux-gnu/libkmlengine.so.1 (0x00007f8f086cc000)
        libfyba.so.0 => /lib/x86_64-linux-gnu/libfyba.so.0 (0x00007f8f08674000)
        libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f8f085e3000)
        libspatialite.so.8 => /usr/local/lib/libspatialite.so.8 (0x00007f8f07e93000)
        libmysqlclient.so.21 => /lib/x86_64-linux-gnu/libmysqlclient.so.21 (0x00007f8f07767000)
        libfreexl.so.1 => /usr/local/lib/libfreexl.so.1 (0x00007f8f07754000)
        libarrow_dataset.so.1900 => /lib/x86_64-linux-gnu/libarrow_dataset.so.1900 (0x00007f8f07550000)
        libogdi.so.4.1 => /lib/libogdi.so.4.1 (0x00007f8f07534000)
        libodbccpp.so => /usr/local/lib/libodbccpp.so (0x00007f8f074c5000)
        libgeos_c.so.1 => /lib/x86_64-linux-gnu/libgeos_c.so.1 (0x00007f8f0746a000)
        libproj.so.25 => /usr/local/lib/libproj.so.25 (0x00007f8f0705a000)
        libdfalt.so.0 => /lib/libdfalt.so.0 (0x00007f8f06fb5000)
        libmfhdfalt.so.0 => /lib/libmfhdfalt.so.0 (0x00007f8f06f89000)
        libparquet.so.1900 => /lib/x86_64-linux-gnu/libparquet.so.1900 (0x00007f8f06bbb000)
        libarrow.so.1900 => /lib/x86_64-linux-gnu/libarrow.so.1900 (0x00007f8f043d2000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8f043b7000)
        libnettle.so.7 => /lib/x86_64-linux-gnu/libnettle.so.7 (0x00007f8f0437d000)
        libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007f8f04370000)
        libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f8f0435d000)
        libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f8f04333000)
        libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f8f04312000)
        librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f8f042f2000)
        libssh.so.4 => /lib/x86_64-linux-gnu/libssh.so.4 (0x00007f8f04283000)
        libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x00007f8f0426e000)
        libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f8f041db000)
        libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f8f0418e000)
        libldap_r-2.4.so.2 => /lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f8f04138000)
        liblber-2.4.so.2 => /lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f8f04127000)
        libbrotlidec.so.1 => /usr/local/lib/libbrotlidec.so.1 (0x00007f8f04118000)
        libltdl.so.7 => /lib/x86_64-linux-gnu/libltdl.so.7 (0x00007f8f0410b000)
        libicuuc.so.66 => /lib/x86_64-linux-gnu/libicuuc.so.66 (0x00007f8f03f25000)
        libsnappy.so.1 => /lib/x86_64-linux-gnu/libsnappy.so.1 (0x00007f8f03f1a000)
        libblas.so.3 => /lib/x86_64-linux-gnu/libblas.so.3 (0x00007f8f03ead000)
        liblapack.so.3 => /lib/x86_64-linux-gnu/liblapack.so.3 (0x00007f8f03809000)
        libarpack.so.2 => /lib/x86_64-linux-gnu/libarpack.so.2 (0x00007f8f037bf000)
        libsuperlu.so.5 => /lib/x86_64-linux-gnu/libsuperlu.so.5 (0x00007f8f0374f000)
        libboost_serialization.so.1.71.0 => /lib/x86_64-linux-gnu/libboost_serialization.so.1.71.0 (0x00007f8f0370b000)
        libmpfr.so.6 => /lib/x86_64-linux-gnu/libmpfr.so.6 (0x00007f8f0368a000)
        libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f8f03606000)
        libcurl-gnutls.so.4 => /lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f8f03574000)
        libjxl_cms.so.0.12 => /usr/local/lib/libjxl_cms.so.0.12 (0x00007f8f0353d000)
        libbrotlienc.so.1 => /usr/local/lib/libbrotlienc.so.1 (0x00007f8f03485000)
        libde265.so.0 => /lib/x86_64-linux-gnu/libde265.so.0 (0x00007f8f033e1000)
        libx265.so.179 => /lib/x86_64-linux-gnu/libx265.so.179 (0x00007f8f02473000)
        libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f8f023b2000)
        libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f8f0236b000)
        libtiff.so.5 => /lib/x86_64-linux-gnu/libtiff.so.5 (0x00007f8f022e9000)
        libnss3.so => /lib/x86_64-linux-gnu/libnss3.so (0x00007f8f0218e000)
        libsmime3.so => /lib/x86_64-linux-gnu/libsmime3.so (0x00007f8f0215e000)
        libnspr4.so => /lib/x86_64-linux-gnu/libnspr4.so (0x00007f8f0211d000)
        libidn.so.11 => /lib/x86_64-linux-gnu/libidn.so.11 (0x00007f8f020e6000)
        libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f8f01f64000)
        libhdf5_serial_hl.so.100 => /lib/x86_64-linux-gnu/libhdf5_serial_hl.so.100 (0x00007f8f01f3d000)
        libsz.so.2 => /lib/x86_64-linux-gnu/libsz.so.2 (0x00007f8f01f38000)
        libIlmThread-2_3.so.24 => /lib/x86_64-linux-gnu/libIlmThread-2_3.so.24 (0x00007f8f01f2e000)
        libtbb.so.2 => /usr/local/lib/libtbb.so.2 (0x00007f8f01cf8000)
        libminizip.so.1 => /lib/x86_64-linux-gnu/libminizip.so.1 (0x00007f8f01aed000)
        liburiparser.so.1 => /lib/x86_64-linux-gnu/liburiparser.so.1 (0x00007f8f01ace000)
        libfyut.so.0 => /lib/x86_64-linux-gnu/libfyut.so.0 (0x00007f8f01ac2000)
        libfygm.so.0 => /lib/x86_64-linux-gnu/libfygm.so.0 (0x00007f8f01ab9000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f8f01a9b000)
        libarrow_acero.so.1900 => /lib/x86_64-linux-gnu/libarrow_acero.so.1900 (0x00007f8f018d6000)
        libgeos.so.3.13.0 => /lib/x86_64-linux-gnu/libgeos.so.3.13.0 (0x00007f8f0153c000)
        libthrift-0.13.0.so => /lib/x86_64-linux-gnu/libthrift-0.13.0.so (0x00007f8f01485000)
        libre2.so.5 => /lib/x86_64-linux-gnu/libre2.so.5 (0x00007f8f01414000)
        libutf8proc.so.2 => /lib/x86_64-linux-gnu/libutf8proc.so.2 (0x00007f8f013c5000)
        libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f8f011ef000)
        libhogweed.so.5 => /lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007f8f011b8000)
        libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f8f010db000)
        libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f8f010aa000)
        libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f8f010a1000)
        libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f8f01092000)
        libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f8f01075000)
        libgssapi.so.3 => /lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007f8f01030000)
        libbrotlicommon.so.1 => /usr/local/lib/libbrotlicommon.so.1 (0x00007f8f0100b000)
        libicudata.so.66 => /lib/x86_64-linux-gnu/libicudata.so.66 (0x00007f8eff548000)
        libgfortran.so.5 => /lib/x86_64-linux-gnu/libgfortran.so.5 (0x00007f8eff280000)
        libnuma.so.1 => /lib/x86_64-linux-gnu/libnuma.so.1 (0x00007f8eff273000)
        libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f8eff26a000)
        libjbig.so.0 => /lib/x86_64-linux-gnu/libjbig.so.0 (0x00007f8eff259000)
        libnssutil3.so => /lib/x86_64-linux-gnu/libnssutil3.so (0x00007f8eff224000)
        libplc4.so => /lib/x86_64-linux-gnu/libplc4.so (0x00007f8eff21d000)
        libplds4.so => /lib/x86_64-linux-gnu/libplds4.so (0x00007f8eff218000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f8eff20e000)
        libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f8eff0d8000)
        libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f8eff0c0000)
        libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f8eff0b9000)
        libheimntlm.so.0 => /lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007f8eff0ad000)
        libkrb5.so.26 => /lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007f8eff01a000)
        libasn1.so.8 => /lib/x86_64-linux-gnu/libasn1.so.8 (0x00007f8efef74000)
        libhcrypto.so.4 => /lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007f8efef3a000)
        libroken.so.18 => /lib/x86_64-linux-gnu/libroken.so.18 (0x00007f8efef21000)
        libquadmath.so.0 => /lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007f8efeed7000)
        libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007f8efeecb000)
        libwind.so.0 => /lib/x86_64-linux-gnu/libwind.so.0 (0x00007f8efeea1000)
        libheimbase.so.1 => /lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007f8efee8d000)
        libhx509.so.5 => /lib/x86_64-linux-gnu/libhx509.so.5 (0x00007f8efee3f000)
        libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f8efee04000)

When I look at strace output, I can see it working down the list as far as libsuperlu, then the next entry goes wrong:

$ strace python -c "import osgeo"
...
openat(AT_FDCWD, "/home/jontwo/venv/deleteme/lib/python3.12/site-packages/osgeo/../gdal.libs/libsuperlu-8e3eb48b.so.5.2.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260d\0\0\0\0\0\0"..., 832) = 832
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0PW\262\27\225'\312\234\371\354|C@\2520\201"..., 36, 454656) = 36
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=472489, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 476584, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f79ee845000
mmap(0x7f79ee84b000, 372736, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f79ee84b000
mmap(0x7f79ee8a6000, 53248, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x61000) = 0x7f79ee8a6000
mmap(0x7f79ee8b3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6d000) = 0x7f79ee8b3000
mmap(0x7f79ee8b5000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6f000) = 0x7f79ee8b5000
close(3)                                = 0
openat(AT_FDCWD, "/home/jontwo/venv/deleteme/lib/python3.12/site-packages/osgeo/../gdal.libs/I\vH", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/home/jontwo/venv/deleteme/lib/python3.12/site-packages/osgeo/../gdal.libs/I\vH", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=47555, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 47555, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f79ee839000
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/glibc-hwcaps/x86-64-v3/I\vH", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/lib/x86_64-linux-gnu/glibc-hwcaps/x86-64-v3", 0x7ffc17470030, 0) = -1 ENOENT (No such file or directory)
...
write(2, "ImportError: I\vH: cannot open sh"..., 76ImportError: I
                                                                 H: cannot open shared object file: No such file or directory
) = 76

I've truncated the above output, but the item after libsuperlu (I\vH) is the same one that appears in the error message at the end.

jontwo avatar Mar 20 '25 16:03 jontwo