#2822: support full paths to libraries in LIBS variables
| Reporter: | Roland Haas |
| Status: | open |
| Milestone: | |
| Version: | |
| Type: | bug |
| Priority: | minor |
| Component: |
Changes (by Roland Haas):
On macOS using Homebrew pkg-config for HDF5 returns full library paths instead of -lLIBNAME stanzas:
rhaas@gdd6l52n-ofc Cactus % pkg-config --libs-only-l --static hdf5
-lhdf5 -lm -ldl -l/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/lib/libz.tbd -l/opt/homebrew/lib/libsz.dylib
This happens only for static linking. This causes g++ to fail at link time:
rhaas@gdd6l52n-ofc Cactus % g++-14 `pkg-config --libs-only-L hdf5` `pkg-config --libs-only-l --static hdf5` dummy.c
ld: library '/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/lib/libz.tbd' not found
collect2: error: ld returned 1 exit status
This seems like bug in the pkg-config file (`/opt/homebrew/Cellar/hdf5/1.14.3_1/lib/pkgconfig/hdf5.pc`) supplied by HomeBrew:
rhaas@gdd6l52n-ofc Cactus % cat /opt/homebrew/Cellar/hdf5/1.14.3_1/lib/pkgconfig/hdf5.pc
prefix=/opt/homebrew/Cellar/hdf5/1.14.3_1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: hdf5
Description: HDF5 (Hierarchical Data Format 5) Software Library
Version: 1.14.3
Cflags: -I${includedir}
Libs: -L${libdir} -lhdf5
Requires:
Libs.private: -lhdf5 -lm -ldl -l/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/lib/libz.tbd -l/opt/homebrew/lib/libsz.dylib -l/opt/homebrew/lib/libsz.dylib
Requires.private:
Correct would be to not use -l with t
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2822/support-full-paths-to-libraries-in-libs