[MapServer-users] 8.2 compile issue: libgdal.so: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30'

Herzmann, Daryl E [AGRON] akrherz at iastate.edu
Wed Jul 10 05:52:32 PDT 2024


Thank you for the response Even,

Setting `-DBUILD_FUZZER_REPRODUCER=OFF` results in a successful build(!?!?).  I should also note that I set `-DBUILD_TESTING=OFF` for this same reason, without it I get the same error:

[ 94%] Building CXX object CMakeFiles/unit_test.dir/tests/unit/test.cpp.o
[ 95%] Linking CXX executable unit_test
/usr/bin/ld: /opt/miniconda3/envs/prod/lib/libgdal.so: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30'
collect2: error: ld returned 1 exit status

I guess I am wondering why I can build Mapserver 8.0, but not 8.2?

I should also note that my mapserver-feedstock repository on conda-forge appears to be cleanly building mapserver 8.2 there.  More boggling ahead!

daryl

________________________________________
From: Even Rouault <even.rouault at spatialys.com>
Sent: Wednesday, July 10, 2024 7:24 AM
To: Herzmann, Daryl E [AGRON]; mapserver-users at lists.osgeo.org
Subject: Re: [MapServer-users] 8.2 compile issue: libgdal.so: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30'

Daryl,

does the build issue happen only on the shapefuzzer_reproducer target ?
If so, you can try setting the BUILD_FUZZER_REPRODUCER CMake variable to
OFF.

But I guess you would then need an error for the mapserv target or the
other binaries. I feels like some inconsistent mix of libstdc++ where
your GDAL version would have built against a libstdc++ higher than the
one of your compiler

Even

Le 10/07/2024 à 14:18, Herzmann, Daryl E [AGRON] via MapServer-users a
écrit :
> Howdy Mapserver folks,
>
> I am having trouble getting mapserver 8.2 to compile with a procedure that has worked for many moons and I now just confirmed it works with 8.0.  I caution that perhaps my luck is running out with an ugly mix of OS provided compilers / libraries and those provided by conda/conda-forge.  The error is:
>
> [ 96%] Linking CXX executable shapefuzzer_reproducer
> /usr/bin/ld: /opt/miniconda3/envs/prod/lib/libgdal.so: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30'
> collect2: error: ld returned 1 exit status
>
> I am doing the following build procedure:
>
> mkdir build
> cd build
> export PREFIX=/opt/miniconda3/envs/prod
>
> export PKG_CONFIG_LIBDIR=$PREFIX/lib
>
> cmake .. \
> -DBUILD_TESTING=OFF \
> -DMAPSERVER_CONFIG_FILE=$PREFIX/etc/mapserver.conf \
> -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \
> -DWITH_CLIENT_WFS=1 \
> -DWITH_CLIENT_WMS=1 \
> -DWITH_GIF=1 \
> -DWITH_PHPNG=1 \
> -DWITH_PYTHON=1 \
> -DWITH_PROTOBUFC=0 \
> -DWITH_FRIBIDI=1 \
> -DWITH_FCGI=1 \
> -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \
> -DPNG_LIBRARY=$PREFIX/lib/libpng.so \
> -DPNG_INCLUDE_DIR=$PREFIX/include \
> -DJPEG_LIBRARY=$PREFIX/lib/libjpeg.so \
> -DJPEG_INCLUDE_DIR=$PREFIX/include \
> -DFREETYPE_LIBRARY=$PREFIX/lib/libfreetype.so \
> -DFREETYPE_INCLUDE_DIR=$PREFIX/include \
> -DGIF_LIBRARY=$PREFIX/lib/libgif.so \
> -DGIF_INCLUDE_DIR=$PREFIX/include \
> -DCAIRO_LIBRARY=$PREFIX/lib/libcairo.so \
> -DCAIRO_INCLUDE_DIR=$PREFIX/include/cairo/ \
> -DCURL_LIBRARY=$PREFIX/lib/libcurl.so \
> -DCURL_INCLUDE_DIR=$PREFIX/include \
> -DPROJ_LIBRARY=$PREFIX/lib/libproj.so \
> -DPROJ_INCLUDE_DIR=$PREFIX/include \
> -DLIBXML2_LIBRARY=$PREFIX/lib/libxml2.so \
> -DLIBXML2_INCLUDE_DIR=$PREFIX/include/libxml2/ \
> -DHARFBUZZ_LIBRARY=$PREFIX/lib/libharfbuzz.so \
> -DHARFBUZZ_INCLUDE_DIR=$PREFIX/include/harfbuzz/ \
> -DZLIB_LIBRARY=$PREFIX/lib/libz.so \
> -DZLIB_INCLUDE_DIR=$PREFIX/include \
> -DGEOS_LIBRARY=$PREFIX/lib/libgeos_c.so \
> -DGEOS_INCLUDE_DIR=$PREFIX/include \
> -DGDAL_LIBRARY=$PREFIX/lib/libgdal.so \
> -DGDAL_INCLUDE_DIR=$PREFIX/include \
> -DPostgreSQL_LIBRARY=$PREFIX/lib/libpq.so \
> -DPostgreSQL_INCLUDE_DIR=$PREFIX/include
>
> My OS is Rocky Linux 9.4 and I am using the OS provided compilers, not conda-forge's, I believe.
>
> thank you!
> daryl
> _______________________________________________
> MapServer-users mailing list
> MapServer-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-users

--
http://www.spatialys.com
My software is free, but my time generally not.



More information about the MapServer-users mailing list