After skipping updating my system for a longer period I could not update cmake. The build crashes. It seems like libjsoncpp uses LIBCXX_3.4.26 which was not installed on my system. Reproducible: Didn't try Steps to Reproduce: Probably install an older version of GLIBCXX and try to install cmake. Actual Results: /usr/lib/gcc/x86_64-pc-linux-gnu/8.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/libjsoncpp.so: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()@GLIBCXX_3.4.26' Linker error crashes the build. Expected Results: Normal installation. The dependency on glibcxx should be checked during the installation. My libstdc++.so.6 has: $ strings libstdc++.so.6 | grep LIBCXX GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20 GLIBCXX_3.4.21 GLIBCXX_3.4.22 GLIBCXX_3.4.23 GLIBCXX_3.4.24 GLIBCXX_3.4.25
Workaround: As expected changing the gcc in eselect from 8.4.0 to 9.3.0 works.
(In reply to APN-Pucky from comment #1) > Workaround: > > As expected changing the gcc in eselect from 8.4.0 to 9.3.0 works. The issue is you downgraded GCC. Binaries on your system were built using newer libstdc++ symbols. You need to use revdep-rebuild to rebuild everything linked against it if you wish to downgrade GCC.
I ran revdep-rebuild and it showed no error. However I think you are right as it seems like my dev-libs/jsoncpp was compiled some time ago with a higher version.