[llvm-dev] Statically linking against libc++
Dimitry Andric via llvm-dev
llvm-dev at lists.llvm.org
Sun Apr 9 09:49:54 PDT 2017
On 9 Apr 2017, at 18:05, Carsten Mattner via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> While considering statically linking against libc++ (and
> other runtime libraries from LLVM), I rebuilt LLVM 4.0
> with -DBUILD_SHARED_LIBS=OFF.
>
> There are still some .so's in llvm/lib, and only one
> of them seems to exist exclusively as a DSO (libLTO).
> There's also livLLVMLTO.a, but I doubt LTO is used
> after linking a binary so this just looks odd to an
> uninformed LLVM outside and not insufficient or anything.
>
> My question is two-fold:
>
> 1. when building a C++ program with clang, maybe making use
> of clang-musl to avoid glibc as well, how do I statically
> link libc++ and get a C++ program that runs on any Linux
> kernel, allowing easy distribution of a single binary?
If you want to link just libc++ statically, you can use:
-Wl,-Bstatic -lc++ -Wl,-Bdynamic
in your link flags. Otherwise, just use -static.
> 2. should the following .so's be built with -DBUILD_SHARED_LIBS=OFF?
>
> $ ls *.so
> BugpointPasses.so
> LLVMHello.so
> LLVMPolly.so
> LLVMgold.so
> libLTO.so
> libc++.so
> libc++abi.so
> libclang.so
> libgomp.so
> libiomp5.so
> liblldb.so
> libomp.so
Indeed, those should probably be cleaned up. On the other hand, some
libraries do not really make sense as static ones, so those could be
completely disabled.
-Dimitry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 194 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170409/4d8b907c/attachment.sig>
More information about the llvm-dev
mailing list