[llvm-dev] LLVM static libs

Andrew Wilkins via llvm-dev llvm-dev at lists.llvm.org
Sun Sep 20 22:42:45 PDT 2015


On Mon, 21 Sep 2015 at 13:07 Tim Northover via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> On 20 September 2015 at 13:32, Jauhien Piatlicki via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> > Is there any possibility to build LLVM both as static and shared
> libraries?
>
> I suspect not. Doing that simultaneously is a bit of a niche endeavour.
>

This is possible, but currently the only option is to get the monolithic
shared library (libLLVM.so) and individual static archives. Shared+static
everything is possible (I think there are options for this in Clang's
build?), but would require additional CMake changes.


> > What I see currently is that our ebuild makes LLVM to build shared libs
> > unconditionally. Is there a possibility (if it is impossible to build
> > both lib types) to at least give to user control on what kind of libs he
> > will have?
>
> We're trying to kill autotools, so I'll only give the answer from the
> CMake perspective (besides which, I have no idea how to get autotools
> to do what you want).
>
> You probably want to look at the "BUILD_SHARED_LIBS" CMake variable,
> and I think LLVM_BUILD_LLVM_DYLIB too (that one decides whether a
> unified libLLVM.so gets built as opposed to the dozens of smaller
> shared libs, I believe). You might also want to look at
> LLVM_ENABLE_PIC for the static builds (it defaults to on, but that can
> negatively affect .a builds, depending on target).
>

With BUILD_SHARED_LIBS=OFF (the default), and LLVM_BUILD_LLVM_DYLIB=ON,
you'll indeed get static archives and one libLLVM.so. If you want to link
executables and shared libraries to libLLVM.so, but also provide the static
archives, you can set LLVM_LINK_LLVM_DYLIB=ON.

Cheers,
Andrew
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150921/d1b2fe76/attachment.html>


More information about the llvm-dev mailing list