<div dir="ltr"><div>Sorry for the noise. After some more research, it looks like the old GDAL compilation/linking was hiding a problem with boost (in particular boost::dll::program_location()). Now with the new GDAL cmake compilation, the dependency with libdl is probably different, and our code does not link. The linker error messages were not helpful enough.<br></div><div><br></div><div>It is not a problem in GDAL. Sorry.</div><div><br></div><div>Cheers,</div><div>Javier.<br></div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">.___ ._ ..._ .. . ._.  .___ .. __ . _. . __..  ... .... ._ .__<br>Entre dos pensamientos racionales <br>hay infinitos pensamientos irracionales.<br><br></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 2 May 2022 at 14:12, Javier Jimenez Shaw <<a href="mailto:j1@jimenezshaw.com">j1@jimenezshaw.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi Even</div><div><br></div><div>If I understood the example you mention correctly, it is a direct dependency of GDAL: the executable test_cpp links directly with GDAL.</div><div>Our problem is that we have a library (ioimage), that links with GDAL. The error appears when we try to compile/link <span><span>tests_unit_ioimage, that depends on ioimage, that depends on GDAL.<br></span></span></div><div><span><span><br></span></span></div><div><span><span>Cheers,</span></span></div><div><span><span>Javier<br></span></span></div><div><div><div dir="ltr">.___ ._ ..._ .. . ._.  .___ .. __ . _. . __..  ... .... ._ .__<br>Entre dos pensamientos racionales <br>hay infinitos pensamientos irracionales.<br><br></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 2 May 2022 at 10:29, Even Rouault <<a href="mailto:even.rouault@spatialys.com" target="_blank">even.rouault@spatialys.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    <p><br>
    </p>
    <div>Le 29/04/2022 à 11:30, Javier Jimenez
      Shaw a écrit :<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">
        <div>We have a link problem on Linux when using GDAL
          transiently. If we link the unit tests for a library which
          depends on GDAL, i.e. an executable which transiently depends
          on GDAL through our library, we get the following linker
          error:</div>
        <div><br>
        </div>
        <span>/usr/bin/ld:
libs/ioimage/tests/CMakeFiles/tests_unit_ioimage.dir/unit/writers/test_geoTiffWriter.cpp.o:
          undefined reference to symbol '<a href="mailto:dlerror@@GLIBC_2.2.5" target="_blank">dlerror@@GLIBC_2.2.5</a>'<br>
        </span>
        <div><span>/usr/bin/ld: /lib/x86_64-linux-gnu/libdl.so.2: error
            adding symbols: DSO missing from command line</span></div>
        <div><br>
        </div>
        <div>We need to add <span>-ldl</span> to the linker line after
          GDAL in order to resolve the linker problem. This can be done
          when adding the property</div>
        <div><br>
        </div>
        <span>  INTERFACE_LINK_LIBRARIES "dl"</span><br>
        <div><br>
        </div>
        <div>to the GDAL::GDAL imported target in <span>GDAL-targets-release.cmake</span>
          (this is a generated file); apparently it is not enough to add
          dl to the IMPORTED_LINK_DEPENDENT_LIBRARIES_RELEASE property.</div>
        <br>
        <div>Does GDAL depend publicly on dl?</div>
      </div>
    </blockquote>
    <p>Not that I'm aware of.</p>
    <p>Our CI runs ./autotest/postinstall/test_cmake.sh which in
      particular has a ./autotest/postinstall/test_cpp/CMakeLists.txt
      that has GDAL has a dependency</p>
    <p>Perhaps you could check how your setup is different from that ?<br>
    </p>
    <blockquote type="cite">
      <div dir="ltr">
        <div>We do not find the proper way to patch GDAL's CMake code to
          add that dependency in the generated config file.</div>
        <div><br>
        </div>
        <div>Thanks</div>
        <div>Javier<br>
        </div>
        <div><br>
        </div>
        <div>
          <div dir="ltr">.___ ._ ..._ .. . ._.  .___
            .. __ . _. . __..  ... .... ._ .__<br>
            Entre dos pensamientos racionales <br>
            hay infinitos pensamientos irracionales.<br>
            <br>
          </div>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <pre>_______________________________________________
gdal-dev mailing list
<a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a>
<a href="https://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a>
</pre>
    </blockquote>
    <pre cols="72">-- 
<a href="http://www.spatialys.com" target="_blank">http://www.spatialys.com</a>
My software is free, but my time generally not.</pre>
  </div>

</blockquote></div>
</blockquote></div>