PackagingCon

Packaging LLVM
2021-11-09 , Room 4

The LLVM project encompasses the LLVM core libraries, clang, lld, lldb,
compiler-rt, flang and many other projects that gravitates around the use of theLLVM compiler infrastructure. As a whole, they aim at providing a complete tool
chain, and its modular structure as led to the developement of many third-party
packages such as the Zig language or the Source Trail code explorer.

Packaging LLVM leads to numerous choices, from configuration to build,
test, installation and granularity point of view. This talk discusses some of
these choices in the context of the Fedora distribution.


This talk is very likely to discuss the following topics :
- Why and how do we ship independent packages while LLVM uses a mono repo upstream
- Which versioning policy when upstream ships every 6 months?
- Building with Clang or with GCC?
- It's a compiler... Any bootstraping issue?
- How do we cope with the lack of ABI stability between majr version upstream
- What is the impact of shipping core components as shared libraries while upstream defaults to static libraries
- Any tip to deal with long build time, swapping during linkage and/or package size for large C++ libraries like libLLVM.so?
- How do we ensure decent (unit / integration) testing?

Sometimes a compiler engineer, sometimes a Fedora packager, sometimes a wood chopper