You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After installing pyfmmlib as packaged here, I get:
$ python -c 'import pyfmmlib'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/var/lib/gitlab-runner/builds/zCL2egrE/0/inducer/pytential/.miniforge3/envs/testing/lib/python3.9/site-packages/pyfmmlib/__init__.py", line 2, in <module>
import pyfmmlib._internal as _int
ImportError: /var/lib/gitlab-runner/builds/zCL2egrE/0/inducer/pytential/.miniforge3/envs/testing/bin/../lib/libgfortran.so.5: version `GFORTRAN_10' not found (required by /var/lib/gitlab-runner/builds/zCL2egrE/0/inducer/pytential/.miniforge3/envs/testing/lib/python3.9/site-packages/pyfmmlib/_internal.cpython-39-x86_64-linux-gnu.so)
Confusingly, the .so seems to link against my system libgfortran.so.5
Even more confusingly, that libgfortran.so.5 seems to contain relevant symbols:
$ nm --dynamic /lib/x86_64-linux-gnu/libgfortran.so.5 | grep GFORTRAN_10
0000000000000000 A GFORTRAN_10
0000000000000000 A GFORTRAN_10.2
000000000026d3d0 T _gfortran_cosd_r10@@GFORTRAN_10
000000000026de50 T _gfortran_cosd_r16@@GFORTRAN_10
[snip]
The issue is that pyfmmlib is created by the system compiler which is gfortran-10 and openblas is by conda compiler which is gfortran-9. Since pyfmmlib doesn't have rpath set, when pyfmmlib gets loaded libgfortran.so.5 is looked up by the rpaths of the python executable which leads to libgfortran.so.5 being loaded from conda prefix.
Would it be possible to use pyfmmlib from conda or install compilers from conda and compile pyfmmlib from that?
Other option is to build gfortran-10 which is on my list of things to do for NumFOCUS SDG.
Huh, good catch. It is building pyfmmlib from source, due to this version bump. I should have checked, I didn't. I just assumed it was the conda package. At any rate, the fix is pretty clear then: just release a new version, get it built for conda, and things should start being OK.
After installing pyfmmlib as packaged here, I get:
Confusingly, the
.so
seems to link against my system libgfortran.so.5This doesn't seem consistent with the docs in that adding
compiler
(used here) didn't seem to add the necessary runtime packages.This issue comes from a failing pytential CI job.
Even more confusingly, that
libgfortran.so.5
seems to contain relevant symbols:Environment (
conda list
):Details about
conda
and system (conda info
):The text was updated successfully, but these errors were encountered: