<html>#2822: support full paths to libraries in LIBS variables
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Roland Haas</td></tr>
<tr><td style='text-align:right'> Status:</td><td>open</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'> Version:</td><td></td></tr>
<tr><td style='text-align:right'> Type:</td><td>bug</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>minor</td></tr>
<tr><td style='text-align:right'>Component:</td><td></td></tr>
</table>
<p>Changes (by Roland Haas):</p>
<p>On macOS using Homebrew <code>pkg-config</code> for HDF5 returns full library paths instead of <code>-lLIBNAME</code> stanzas:</p>
<div class="codehilite"><pre><span></span><code><span>rhaas@gdd6l52n-ofc Cactus % pkg-config --libs-only-l --static hdf5</span>
<span>-lhdf5 -lm -ldl -l/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/lib/libz.tbd -l/opt/homebrew/lib/libsz.dylib</span>
</code></pre></div>
<p>This happens only for static linking. This causes g++ to fail at link time:</p>
<div class="codehilite"><pre><span></span><code><span>rhaas@gdd6l52n-ofc Cactus % g++-14 `pkg-config --libs-only-L hdf5` `pkg-config --libs-only-l --static hdf5` dummy.c</span>
<span class="c">ld: library '/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/lib/libz.tbd' not found</span>
<span class="c">collect2: error: ld returned 1 exit status</span>
</code></pre></div>
<p>This seems like bug in the pkg-config file (`/opt/homebrew/Cellar/hdf5/1.14.3_1/lib/pkgconfig/hdf5.pc`) supplied by HomeBrew:</p>
<div class="codehilite"><pre><span></span><code>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=<span class="cp">${</span><span class="n">prefix</span><span class="cp">}</span>
libdir=<span class="cp">${</span><span class="n">exec_prefix</span><span class="cp">}</span>/lib
includedir=<span class="cp">${</span><span class="n">prefix</span><span class="cp">}</span>/include
Name: hdf5
Description: HDF5 (Hierarchical Data Format 5) Software Library
Version: 1.14.3
Cflags: -I<span class="cp">${</span><span class="n">includedir</span><span class="cp">}</span>
Libs: -L<span class="cp">${</span><span class="n">libdir</span><span class="cp">}</span> -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:
</code></pre></div>
<p>Correct would be to not use <code>-l</code> with t
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2822/support-full-paths-to-libraries-in-libs'>https://bitbucket.org/einsteintoolkit/tickets/issues/2822/support-full-paths-to-libraries-in-libs</a></p>
</html>