Andreas Fertig via llvm-dev
2018-May-31 17:37 UTC
[llvm-dev] Ubuntu trusty static linking error: undefined reference to `std::system_category()' with apt.llvm.org
Hello, I try to compile a clang-tool (C++ Insights) statically under Ubuntu trusty. Unfortunately, I end up with a lot of linker errors: /usr/lib/llvm-6.0/lib/libLLVMSupport.a(Program.cpp.o): In function `llvm::sys::ChangeStdoutToBinary()': (.text._ZN4llvm3sys20ChangeStdoutToBinaryEv+0x5): undefined reference to `std::system_category()' The same build system works with debian testing. I use the kindly provided LLVM apt repository to get LLVM and clang 6.0. Under Ubuntu trusty libLLVMSupport wants std::system_category, while libstdc++ provides std::_V2::system_category: nm -C /usr/lib/llvm-6.0/lib/libLLVMSupport.a | grep system_cat U std::system_category() ... U std::system_category() nm -C /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.a | grep system_cat nm: compatibility-debug_list-2.o: no symbols 0000000000000000 d (anonymous namespace)::system_category_instance 0000000000000000 T std::_V2::system_category() A look on the dependencies shows that llvm requires libstdc++6 but libclang libstdc++-4.9-dev: apt-cache depends llvm-6.0-dev llvm-6.0-dev Depends: libc6 Depends: libjsoncpp0 Depends: libllvm6.0 Depends: libstdc++6 Depends: libffi-dev Depends: llvm-6.0 Depends: libtinfo-dev Replaces: <llvm> apt-cache depends libclang-6.0-dev libclang-6.0-dev Depends: libstdc++-4.9-dev Depends: libgcc-4.9-dev Depends: libobjc-4.9-dev Depends: libclang1-6.0 Depends: libclang-common-6.0-dev Debian testing on the other hands gives this output: apt-cache depends llvm-7-dev llvm-7-dev Depends: libc6 Depends: libgcc1 Depends: libjsoncpp1 Depends: libllvm7 Depends: libstdc++6 Depends: libffi-dev Depends: llvm-7 Depends: libtinfo-dev libncurses-dev Replaces: <llvm> apt-cache depends libclang-7-dev libclang-7-dev Depends: libstdc++-6-dev Depends: libgcc-6-dev Depends: libobjc-6-dev Depends: libclang1-7 Depends: libclang-common-7-dev Here the two seem to match. Any advice how to get this sorted out? Looks like an ABI mismatch to me. Best regards, Andreas