[MacPorts] #55569: sundials2 @2.7.0: Symbol not found: _klu_solve (was: cantera klu_solve missing symbol)
MacPorts
noreply at macports.org
Fri Dec 22 09:50:56 UTC 2017
#55569: sundials2 @2.7.0: Symbol not found: _klu_solve
------------------------+-----------------
Reporter: jantheron | Owner:
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: sundials2 |
------------------------+-----------------
Changes (by ryandesign):
* cc: port, info, --maintainers, cantera-devel (removed)
* cc: seanfarley (added)
* keywords: cantera klu_solve python27 =>
* port: cantera => sundials2
Old description:
> cantera fails upon importing to python27 with the following message
>
> ***********
> >>> import cantera as ct
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File
> "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
> /site-packages/cantera/__init__.py", line 4, in <module>
> from ._cantera import *
> ImportError:
> dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
> /site-packages/cantera/_cantera.so, 2): Symbol not found: _klu_solve
> Referenced from: /opt/local/lib/libsundials_cvodes.2.dylib
> Expected in: flat namespace
> in /opt/local/lib/libsundials_cvodes.2.dylib
> ***********
New description:
cantera fails upon importing to python27 with the following message
{{{
>>> import cantera as ct
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File
"/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/site-packages/cantera/__init__.py", line 4, in <module>
from ._cantera import *
ImportError:
dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/site-packages/cantera/_cantera.so, 2): Symbol not found: _klu_solve
Referenced from: /opt/local/lib/libsundials_cvodes.2.dylib
Expected in: flat namespace
in /opt/local/lib/libsundials_cvodes.2.dylib
}}}
--
Comment:
For future reference, into the Cc field, you should place the maintainer's
email address or GitHub handle. You can find this information by running
the command `port info --maintainers [portname]`. Don't literally paste
that command into the Cc field. Also, remember to use WikiFormatting when
writing in Trac.
Since the unknown symbol was referenced from a sundials2 library, I think
this is probably a bug in the sundials2 port rather than the cantera port.
The cantera source code does not contain the string `klu_solve` but the
sundials2 source code does.
I don't know if it has any bearing on the problem, but I'm suspicious of
the use of the flat namespace, which has not been recommended for over a
decade. I don't yet see where in the build system the flat namespace is
being requested.
I notice that the sundials libraries are being built with `-undefined
dynamic_lookup`, which means that if there are any undefined symbols at
build time, it doesn't complain about them, assuming that they will exist
at runtime; in the case of `klu_solve` at least, that's apparently not
happening. If I remove that flag from the build, then the build fails with
undefined symbols errors, not unsurprisingly.
--
Ticket URL: <https://trac.macports.org/ticket/55569#comment:1>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list