Ubuntu环境下LLVM13.0完全编译


# install ninja and cmake first, cmake's version required
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/llvm-project-10.0.1.tar.xz
tar -xvf llvm-project-10.0.1.tar.xz && cd llvm-project-10.0.1

mkdir -p llvm/tools/clang/tools/extra
cp -r clang-tools-extra/* llvm/tools/clang/tools/extra/

cp -r lld llvm/tools/
cp -r lldb llvm/tools/
cp -r polly llvm/tools/
ls llvm/projects/
cp -r libc llvm/projects/
cp -r libcxx llvm/projects/
cp -r libcxxabi llvm/projects/
cp -r libunwind llvm/projects/
cp -r openmp llvm/projects/

cd build
# there's compile error for libcxx in llvm projects 13
# cmake -G Ninja ../llvm -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~/opt/llvm -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi;compiler-rt;clang-tools-extra;openmp;lldb;lld"
cmake -G Ninja ../llvm -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~/opt/llvm -DLLVM_ENABLE_PROJECTS="clang;compiler-rt;clang-tools-extra;openmp;lldb;lld"
ninja -j4 && ninja install

Updated status:
When recompiled with clang/clang++, and with anaconda ENV/python 3.8. The compile success.

  • issue
# It need libpython3.8.so.1.0, copy the lib to /usr/lib before compile
tar xvf llvm-project-13.0.0.src.tar.xz && cd llvm-project-13.0.0.src && mkdir build && cd build
CC=clang CXX=clang++ cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~/opt/llvm -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;libclc;libcxx;libcxxabi;libunwind;lld;lldb;mlir;openmp;parallel-libs;polly;pstl" -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBCXX_USE_COMPILER_RT=ON -DLIBUNWIND_USE_COMPILER_RT=ON ../llvm
cmake --build . --config Release --target install --parallel

ref:

  • Compile LLVM 13.0 and Clang