Carsten Mattner via llvm-dev
2018-Feb-26 22:59 UTC
[llvm-dev] Linking libc++(abi) (ideally statically) on non-llvm OS
I've been unsuccessfully trying tell g++ or clang++ to use libc++(abi) when building a C++ source file (single file for test purposes) when the host cc and c++ are all configured to use glibc and libstdc++. My goal is to statically links musl libc and libc++(abi) and create binaries for Linux that just work anywhere. Naturally, I'm not building a .so or depending on dynamic libs. My last attempt was something along the lines of: -nodefaultlibs -lc++ -lc++abi -lc -lgcc_s -lgcc where, obviously, I hadn't tried to put musl libc into the equation yet. First, I wanted to make sure I can use libc++(abi) dynamically. Then, if there's no vestige of libstdc++ (right now there is), try to link libc++.a and libc++abi.a. If that all works, go to step two, which is getting rid of gcc's runtime support libs and the glibc dependencies. The test file was a dumb hello-world: #include <iostream> int main(int, char**) { std::cout << "Hello, LLVM!" << std::endl; return 0; } The questions I have are: 1. how do I use libc++(abi) exclusively on a Linux distro where llvm's toolchain isn't the default host toolchain? In FreeBSD it is the default, if you're wondering what I mean here. 2. how do I link libc++(abi).a when using clang++ and avoid any C++ stdlib runtime dependency.