"

Llvm5.0-devel -

Keep a Docker image with llvm5.0-devel in your back pocket. One day, a vendor will send you a tarball of ancient bytecode, and you’ll be glad you did.

FROM centos:7 RUN yum install -y llvm5.0-devel A frequent pain point with llvm5.0-devel is that many distributions built LLVM 5.0 with BUILD_SHARED_LIBS=OFF . This means when you link your custom tool, you might get a 500MB+ binary. llvm5.0-devel

The answer is simple:

If you are linking a tool against llvm5.0-devel , always use LLVM_STATIC = ON in your CMakeLists, or prepare for missing libLTO.so errors. The C++ ABI Landmine LLVM 5.0 was compiled with GCC 5.1 or GCC 6 (depending on the distro). This uses the CXXABI_1.3.9 (Itanium ABI with C++11 features). If your modern system uses GCC 11+ (CXXABI_1.3.13), you may experience std::string ABI incompatibilities. Keep a Docker image with llvm5

While the rest of the world has moved on, millions of lines of production code, proprietary GPU shaders, and embedded firmware still rely on the quirks and interfaces of LLVM 5.0. Let’s unpack what llvm5.0-devel actually is and when you might need to apt install or yum install it. llvm5.0-devel is the development package for LLVM version 5.0.0 (released September 2017). It contains the static libraries ( libLLVM-5.0.a ), headers ( llvm/*.h ), and CMake files required to build other compilers or tools against the LLVM 5.0 infrastructure. This means when you link your custom tool,