JuliaPy / Conda.jl

Conda managing Julia binary dependencies
Other
171 stars 57 forks source link

libstdc++.so.6: version `GLIBCXX_3.4.30' not found #224

Closed torrance closed 1 year ago

torrance commented 1 year ago

I'm encountering an issue where:

  1. A Conda package is built against libc 3.4.30 (in this case, python-casacore).
  2. Conda ships with libc 3.4.30.
  3. Running ldd libcasa_casa.so shows that casa is correctly linked to the Conda version of libc.
  4. If I enter the Julia-managed conda (~/.julia/3/bin/python) and import casacore.tables it works fine.

BUT, when I pyimport("casacore.tables") I get the following error:

<class 'ImportError'>
ImportError("/home/torrance/julia-1.7.3/bin/../lib/julia/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/torrance/.julia/conda/3/lib/python3.9/site-packages/casacore/tables/../../../../libcasa_tables.so.7)")

It looks like to me that when run in the context of Julia, the pyimport statement wants to preferentially link against the Julia supplied libc, and not the Conda supplied libc. Moreover, the Julia supplied libc is at version 3.4.29.

Is this choice to link against the Julia libc a deliberate choice? If so, how to we mitigate this kind of issue happening each time Conda and Julia libc versions aren't aligned?

torrance commented 1 year ago

I've opened an identical ticket on PyCall.jl instead as this doesn't seem to be a Conda issue per se.

https://github.com/JuliaPy/PyCall.jl/issues/999