Opened 4 months ago
Closed 4 months ago
#70467 closed defect (fixed)
openEMS uses incorrect paths for linking dylibs
Reported by: | barracuda156 | Owned by: | ra1nb0w |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.9.3 |
Keywords: | Cc: | eborisch (Eric A. Borisch) | |
Port: | openEMS |
Description
The port it doing a strange thing with dylibs and I got no idea where this comes from:
/opt/local/bin/g++-mp-14 -pipe -I/opt/local/libexec/boost/1.76/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.76/include -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -DNO_WARN_X86_INTRINSICS -DSSE_CORRECT_DENORMALS -arch ppc -mmacosx-version-min=10.6 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/opt/local/libexec/boost/1.76/lib -L/opt/local/lib -Wl,-headerpad_max_install_names CMakeFiles/nf2ff_bin.dir/main.cpp.o -o nf2ff -L/opt/local/lib/libhdf5.dylib -L/opt/local/lib/libMacportsLegacySupport.dylib -L/opt/local/lib/libsz.dylib -L/opt/local/lib/libz.dylib -L//usr/lib/libdl.dylib -L//usr/lib/libm.dylib -Wl,-rpath,/opt/local/lib/libhdf5.dylib -Wl,-rpath,/opt/local/lib/libMacportsLegacySupport.dylib -Wl,-rpath,/opt/local/lib/libsz.dylib -Wl,-rpath,/opt/local/lib/libz.dylib -Wl,-rpath,//usr/lib/libdl.dylib -Wl,-rpath,//usr/lib/libm.dylib libnf2ff.0.1.0.dylib /opt/local/lib/libtinyxml.dylib /opt/local/lib/libhdf5.dylib /opt/local/lib/libMacportsLegacySupport.dylib /opt/local/lib/libsz.dylib /opt/local/lib/libz.dylib //usr/lib/libdl.dylib //usr/lib/libm.dylib /opt/local/libexec/boost/1.76/lib/libboost_thread-mt.dylib /opt/local/libexec/boost/1.76/lib/libboost_system-mt.dylib /opt/local/libexec/boost/1.76/lib/libboost_date_time-mt.dylib /opt/local/libexec/boost/1.76/lib/libboost_serialization-mt.dylib /opt/local/libexec/boost/1.76/lib/libboost_chrono-mt.dylib /opt/local/libexec/boost/1.76/lib/libboost_atomic-mt.dylib ld: warning: path '/opt/local/lib/libhdf5.dylib' following -L not a directory ld: warning: path '/opt/local/lib/libMacportsLegacySupport.dylib' following -L not a directory ld: warning: path '/opt/local/lib/libsz.dylib' following -L not a directory ld: warning: path '/opt/local/lib/libz.dylib' following -L not a directory ld: warning: path '//usr/lib/libdl.dylib' following -L not a directory ld: warning: path '//usr/lib/libm.dylib' following -L not a directory
The build succeeds despite this mess, but perhaps it should be still addressed.
Change History (4)
comment:1 Changed 4 months ago by ryandesign (Ryan Carsten Schmidt)
Cc: | eborisch added |
---|
comment:2 follow-up: 3 Changed 4 months ago by ryandesign (Ryan Carsten Schmidt)
I believe the reason for the incorrect library flags is:
link_directories(${HDF5_LIBRARIES})
${HDF5_LIBRARIES}
contains a list of libraries, of course, not a list of directories.
A bug should be filed with the developers of openEMS.
comment:3 Changed 4 months ago by ryandesign (Ryan Carsten Schmidt)
Replying to ryandesign:
A bug should be filed with the developers of openEMS.
comment:4 Changed 4 months ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
openEMS doesn't depend on libMacportsLegacySupport, libsz, or libz, but hdf5 does, and openEMS depends on hdf5, so I suspect hdf5 is telling the openEMS build to link with these things, which is overlinking, which should be fixed in the hdf5 port.
For each of the libraries, the build is using both a nonsensical
-L
path like-L/opt/local/lib/libhdf5.dylib
and a nonsensical-rpath
like-Wl,-rpath,/opt/local/lib/libhdf5.dylib
, followed by the correct/opt/local/lib/libhdf5.dylib
, so all the libraries are being linked to. The nonsensical arguments just need to go away.