Following piece of code does not work right on Alpine Linux:
#ifndef __cpp_lib_uncaught_exceptionsnamespace std { int uncaught_exceptions() noexcept { return std::uncaught_exception(); }}#endif
Error:
[ 89%] Linking CXX executable AdsLibTest.bin/usr/lib/gcc/x86_64-alpine-linux-musl/11.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/lib/gcc/x86_64-alpine-linux-musl/11.2.1/../../../../lib/libstdc++.a(eh_catch.o): in function `std::uncaught_exceptions()':/home/buildozer/aports/main/gcc/src/gcc-11.2.1_git20220219/libstdc++-v3/libsupc++/eh_catch.cc:149: multiple definition of `std::uncaught_exceptions()'; CMakeFiles/AdsLibTest.bin.dir/main.cpp.o:main.cpp:(.text+0x8d0): first defined herecollect2: error: ld returned 1 exit statusmake[2]: *** [_deps/ads-build/AdsLibTest/CMakeFiles/AdsLibTest.bin.dir/build.make:98: _deps/ads-build/AdsLibTest/AdsLibTest.bin] Error 1
It looks like GCC does not provide __cpp_lib_uncaught_exceptions
feature. Why this could happen?