Skip to content

Instantly share code, notes, and snippets.

@theoparis
Last active November 20, 2022 09:00
Show Gist options
  • Save theoparis/c69daac82894fd1c6eefd54a771c0cd7 to your computer and use it in GitHub Desktop.
Save theoparis/c69daac82894fd1c6eefd54a771c0cd7 to your computer and use it in GitHub Desktop.
build llvm and clang 16 statically
#!/bin/sh
set -e
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lldb;lld;mlir" \
-DLLVM_DEFAULT_TARGET_TRIPLE="x86_64-unknown-linux-musl" \
-DCMAKE_EXE_LINKER_FLAGS="-static" \
-DLLVM_BUILD_STATIC=ON \
-DLLVM_USE_LINKER=mold \
-DLLVM_ENABLE_RUNTIMES="libc;libcxx;libcxxabi;libunwind;compiler-rt" \
-DLIBCXXABI_USE_LLVM_UNWINDER=YES \
-DLLVM_PARALLEL_LINK_JOBS=2 \
-DLLVM_ENABLE_LIBXML2=OFF \
-DLLVM_ENABLE_TERMINFO=OFF \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_C_COMPILER_TARGET=x86_64-unknown-linux-musl \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_CXX_COMPILER_TARGET=x86_64-unknown-linux-musl \
-DCMAKE_CROSSCOMPILING=ON \
-DCLANG_ENABLE_BOOTSTRAP=ON \
-DBOOTSTRAP_CMAKE_BUILD_TYPE=Release \
-DBOOTSTRAP_CLANG_DEFAULT_CXX_STDLIB=libc++ \
-DBOOTSTRAP_CLANG_DEFAULT_RTLIB=compiler-rt \
-DBOOTSTRAP_LIBCXX_USE_COMPILER_RT=YES \
-DBOOTSTRAP_LIBCXXABI_USE_COMPILER_RT=YES \
-DCMAKE_INSTALL_PREFIX=$PWD/../llvm-install \
-DBUILD_SHARED_LIBS=OFF \
-DLLVM_ENABLE_ZLIB=OFF \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DLIBCLANG_BUILD_STATIC=ON \
-DLLDB_ENABLE_PYTHON=OFF \
-DLLDB_ENABLE_CURSES=OFF \
-DLLDB_ENABLE_LIBXML2=OFF \
-DLLDB_ENABLE_LZMA=OFF \
-DLLDB_ENABLE_LUA=OFF
mold -run ninja -C build
mold -run ninja -C build install/strip
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment