Project:LLVM/Multilib
The LLVM packages use multilib support for two goals. The toolchain packages use multilib support to provide dependency libraries for multilib packages — support for all multilib targets matching LLVM_TARGET is enabled unconditionally, e.g. X86 backend can always emit 32-bit, 64-bit and x32 code. The runtime packages use multilib support to provide multilib-capable compiler runtime.
For example, to build 32-bit packages on amd64, you do not need abi_x86_32 on toolchain packages (LLVM and clang). However, you either need multilib-enabled GCC or abi_x86_32 on appropriate runtime packages.
Multilib dependencies on LLVM
As explained above, multilib dependency on toolchain packages should be only used when non-native libraries are used.
In the 3.9 branch, some of the runtime packages additionally depended on multilib sys-devel/llvm to provide CMake files needed for their build. However, in 4.0.0 the upstream build system has been fixed to support using the CMake files from the native install, and therefore the dependencies are no longer necessary.
Multilib support in LLVM packages
Package | Multilib | Notes |
---|---|---|
Toolchain packages | ||
sys-devel/llvm | Yes | needed for media-libs/mesa |
sys-devel/clang | Yes | needed for media-libs/mesa |
dev-util/lldb | No | |
sys-devel/lld | No | |
Auxiliary packages | ||
dev-ml/llvm-ocaml | No | |
dev-python/clang-python | No | |
dev-python/lit | n/a | |
sys-devel/clang-common | n/a | |
sys-devel/llvm-common | n/a | |
sys-devel/llvmgold | n/a | |
Runtime packages | ||
sys-devel/clang-runtime | Yes | |
sys-libs/compiler-rt | Implicit | the build system selects targets implicitly |
sys-libs/compiler-rt-sanitizers | implicit | the build system selects targets implicitly |
sys-libs/libcxx | Yes | |
sys-libs/libcxxabi | Yes | |
sys-libs/libomp | Yes | |
sys-libs/llvm-libunwind | Yes |