Skip to content

Commit b60c798

Browse files
committed
configure-llvm
1 parent dbd4ddc commit b60c798

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

home/bin/configure-llvm

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/zsh
22
dry_run=
3-
PROJECTS=(-DLLVM_ENABLE_PROJECTS='bolt;clang;clang-tools-extra;flang;lld;compiler-rt;mlir;polly;libc;cross-project-tests' -DLLVM_ENABLE_RUNTIMES='openmp;libcxx;libcxxabi;libunwind')
3+
PROJECTS=(-DLLVM_ENABLE_PROJECTS='bolt;clang;clang-tools-extra;flang;lld;mlir;polly;libc;cross-project-tests' -DLLVM_ENABLE_RUNTIMES='compiler-rt;openmp;libcxx;libcxxabi;libunwind')
44
SLIM=(-DCLANG_ENABLE_OBJC_REWRITER=off -DCLANG_ENABLE_STATIC_ANALYZER=off -DCLANG_PLUGIN_SUPPORT=off)
55

66
while (($#)); do
@@ -15,9 +15,14 @@ while (($#)); do
1515
done
1616

1717
LLVM=(-GNinja "${PROJECTS[@]}" "${SLIM[@]}" -DCMAKE_CXX_COMPILER=$HOME/Stable/bin/clang++ -DCMAKE_C_COMPILER=$HOME/Stable/bin/clang -DCMAKE_CXX_ARCHIVE_CREATE="$HOME/Stable/bin/llvm-ar qc --thin <TARGET> <OBJECTS>" -DCMAKE_CXX_ARCHIVE_FINISH=:
18+
-DLLVM_TARGETS_TO_BUILD=host
1819
-DLLVM_OPTIMIZED_TABLEGEN=On -DLLVM_APPEND_VC_REV=OFF -DLLVM_ENABLE_LLD=On -DLLVM_ENABLE_UNWIND_TABLES=off -DPython3_EXECUTABLE=/usr/bin/python3
1920
-DLIBOMPTARGET_BUILD_DEVICERTL_BCLIB=off -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=off -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=off -DCMAKE_BUILD_WITH_INSTALL_RPATH=on)
20-
[[ $(uname -a) =~ 'x86_64 GNU' ]] && LLVM=(${LLVM[@]} -DCMAKE_CXX_FLAGS='--start-no-unused-arguments -Wa,--crel,--allow-experimental-crel --end-no-unused-arguments' -DCMAKE_EXE_LINKER_FLAGS='-no-pie' -DCMAKE_SHARED_LINKER_FLAGS='-Wl,-z,pack-relative-relocs')
21+
[[ $(uname -a) =~ 'x86_64 GNU' ]] && LLVM=(${LLVM[@]} -DCMAKE_EXE_LINKER_FLAGS='-no-pie' -DCMAKE_SHARED_LINKER_FLAGS='-Wl,-z,pack-relative-relocs')
22+
if [[ $1 != custom* ]]; then
23+
[[ $(uname -a) =~ 'x86_64 GNU' ]] && LLVM=(${LLVM[@]} -DCMAKE_CXX_FLAGS='--start-no-unused-arguments -Wa,--crel,--allow-experimental-crel --end-no-unused-arguments')
24+
fi
25+
2126
for i in "${LLVM[@]}"; do
2227
(($LLVM[(Ie)$i])) && LLVMFULL+=("$i")
2328
done
@@ -41,17 +46,17 @@ if [[ $1 == stable ]]; then
4146

4247
# Build with stable clang/lld
4348
elif [[ $1 == preset ]]; then
44-
cmake -Sllvm -B/tmp/Rel -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/tmp/opt/Rel ${LLVMFULL} -DLLVM_BUILD_EXAMPLES=on -DLLVM_ENABLE_ASSERTIONS=on -DLLVM_ENABLE_{CURL,HTTPLIB,SPHINX}=ON -DLLVM_BINUTILS_INCDIR=$HOME/Dev/binutils-gdb/include -DLLVM_OPTIMIZED_TABLEGEN=Off -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='ARC;AVR;CSKY;DirectX;LoongArch;M68k;SPIRV;Xtensa' -DLIBCXX_ABI_VERSION=2
45-
cmake -Sllvm -B/tmp/Debug -DBUILD_SHARED_LIBS=On -DCMAKE_BUILD_TYPE=Debug ${LLVM} -DCMAKE_EXPORT_COMPILE_COMMANDS=On -DCOMPILER_RT_DEBUG=On -DLLVM_USE_SPLIT_DWARF=On -DLLVM_BINUTILS_INCDIR=$HOME/Dev/binutils-gdb/include -DLLVM_OPTIMIZE_SANITIZED_BUILDS=OFF -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='ARC;AVR;LoongArch;M68k;Xtensa'
49+
cmake -Sllvm -B/tmp/Rel -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/tmp/opt/Rel ${LLVMFULL} -DLLVM_BUILD_EXAMPLES=on -DLLVM_ENABLE_ASSERTIONS=on -DLLVM_ENABLE_{CURL,HTTPLIB,SPHINX}=ON -DLLVM_BINUTILS_INCDIR=$HOME/Dev/binutils-gdb/include -DLLVM_OPTIMIZED_TABLEGEN=Off -DLLVM_TARGETS_TO_BUILD=all -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='ARC;AVR;CSKY;DirectX;LoongArch;M68k;SPIRV;Xtensa' -DLIBCXX_ABI_VERSION=2
50+
cmake -Sllvm -B/tmp/Debug -DBUILD_SHARED_LIBS=On -DCMAKE_BUILD_TYPE=Debug ${LLVM} -DCMAKE_EXPORT_COMPILE_COMMANDS=On -DCOMPILER_RT_DEBUG=On -DLLVM_USE_SPLIT_DWARF=On -DLLVM_BINUTILS_INCDIR=$HOME/Dev/binutils-gdb/include -DLLVM_OPTIMIZE_SANITIZED_BUILDS=OFF -DLLVM_TARGETS_TO_BUILD=all -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='ARC;AVR;LoongArch;M68k;Xtensa'
4651
elif [[ $1 == release ]]; then
47-
cmake -Sllvm -Bout/release -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=off ${LLVM} -DLLVM_TARGETS_TO_BUILD=host -DLLVM_ENABLE_PROJECTS='clang;lld' -DLLVM_OPTIMIZED_TABLEGEN=Off -DLLVM_ENABLE_PIC=off -DCMAKE_EXE_LINKER_FLAGS=$HOME/Dev/mimalloc/out/release/libmimalloc.a -DCMAKE_CXX_STANDARD=20
52+
cmake -Sllvm -Bout/release -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=off ${LLVM} -DLLVM_ENABLE_PROJECTS='clang;lld' -DLLVM_OPTIMIZED_TABLEGEN=Off -DLLVM_ENABLE_PIC=off -DCMAKE_EXE_LINKER_FLAGS=$HOME/Dev/mimalloc/out/release/libmimalloc.a -DCMAKE_CXX_STANDARD=20
4853
elif [[ $1 == laptop ]]; then
4954
cmake -Sllvm -B$HOME/llvm/out/debug -DBUILD_SHARED_LIBS=On -DCMAKE_BUILD_TYPE=Debug ${LLVM} -DCMAKE_CXX_COMPILER=$HOME/Stable/bin/clang++ -DCMAKE_C_COMPILER=$HOME/Stable/bin/clang -DCMAKE_CXX_ARCHIVE_CREATE="$HOME/Stable/bin/llvm-ar qc --thin <TARGET> <OBJECTS>" -DCMAKE_CXX_ARCHIVE_FINISH=: -DCMAKE_EXPORT_COMPILE_COMMANDS=On -DCOMPILER_RT_DEBUG=On -DLLVM_ENABLE_PROJECTS='clang;clang-tools-extra;lld' -DLLVM_TARGETS_TO_BUILD='AArch64;X86;RISCV' -DLLVM_PARALLEL_LINK_JOBS=2 -DLLVM_USE_SPLIT_DWARF=On -DLLVM_OPTIMIZE_SANITIZED_BUILDS=OFF
5055
elif [[ $1 == static-debug ]]; then
5156
cmake -Sllvm -B/tmp/StaticDebug -DCMAKE_BUILD_TYPE=Debug ${LLVM} -DCMAKE_CXX_FLAGS_DEBUG='-g -fno-limit-debug-info' -DCMAKE_EXE_LINKER_FLAGS=-Wl,--gdb-index -DCMAKE_SHARED_LINKER_FLAGS='-no-pie -Wl,--gdb-index' -DCOMPILER_RT_DEBUG=On -DLLVM_USE_SPLIT_DWARF=On -DLLVM_BINUTILS_INCDIR=$HOME/Dev/binutils-gdb/include "${@:2}"
5257

5358
elif [[ $1 == asan ]]; then
54-
cmake -Sllvm -Bout/asan -DCMAKE_BUILD_TYPE=RelWithDebInfo ${LLVM} -DCMAKE_CXX_FLAGS_DEBUG='-g1' -DLLVM_USE_SANITIZER=Address -DLLVM_OPTIMIZE_SANITIZED_BUILDS=Off -DLLVM_ENABLE_PROJECTS='clang;lld;clang-tools-extra'
59+
cmake -Sllvm -B/tmp/out/asan -DCMAKE_BUILD_TYPE=RelWithDebInfo ${LLVM} -DCMAKE_CXX_FLAGS_DEBUG='-g' -DLLVM_USE_SANITIZER=Address -DLLVM_OPTIMIZE_SANITIZED_BUILDS=Off -DLLVM_ENABLE_PROJECTS='clang;lld;clang-tools-extra' -DLLVM_USE_SPLIT_DWARF=On
5560
elif [[ $1 == tsan ]]; then
5661
cmake -Sllvm -B/tmp/out/tsan -DCMAKE_BUILD_TYPE=RelWithDebInfo ${LLVM} -DCMAKE_CXX_FLAGS_DEBUG='-g -fno-limit-debug-info' -DLLVM_USE_SANITIZER=Thread -DLLVM_ENABLE_PROJECTS='clang;lld'
5762
elif [[ $1 == ubsan ]]; then
@@ -74,7 +79,7 @@ elif [[ $1 == s2-asan* ]]; then
7479
cmake -Sllvm -B/tmp/out/$1 -DCMAKE_BUILD_TYPE=RelWithDebInfo ${LLVM} -DCMAKE_CXX_COMPILER=/tmp/Rel/bin/clang++ -DCMAKE_C_COMPILER=/tmp/Rel/bin/clang -DLLVM_USE_SANITIZER=Address -DLLVM_OPTIMIZE_SANITIZED_BUILDS=Off -DLLVM_ENABLE_PROJECTS='clang;lld;clang-tools-extra;mlir'
7580
elif [[ $1 == s2-ubsan* ]]; then
7681
# ninja clang lld ubsan compiler-rt-headers
77-
cmake -Sllvm -B/tmp/out/$1 -DCMAKE_BUILD_TYPE=RelWithDebInfo ${LLVM} -DCMAKE_CXX_COMPILER=/tmp/Rel/bin/clang++ -DCMAKE_C_COMPILER=/tmp/Rel/bin/clang -DLLVM_USE_SANITIZER=Undefined -DLLVM_OPTIMIZE_SANITIZED_BUILDS=Off -DLLVM_ENABLE_PROJECTS='clang;lld;clang-tools-extra'
82+
cmake -Sllvm -B/tmp/out/$1 -DCMAKE_BUILD_TYPE=RelWithDebInfo ${LLVM} -DCMAKE_CXX_COMPILER=$HOME/llvm/out/stable/bin/clang++ -DCMAKE_C_COMPILER=$HOME/llvm/out/stable/bin/clang -DLLVM_USE_SANITIZER=Undefined -DLLVM_OPTIMIZE_SANITIZED_BUILDS=Off -DLLVM_ENABLE_PROJECTS='clang;lld;clang-tools-extra'
7883
elif [[ $1 == s2-custom* ]]; then
7984
rm -fr /tmp/out/$1
8085
cmake -Sllvm -B/tmp/out/$1 -DCMAKE_BUILD_TYPE=Release ${LLVM} -DCMAKE_CXX_COMPILER=/tmp/Rel/bin/clang++ -DCMAKE_C_COMPILER=/tmp/Rel/bin/clang "${@:2}"

0 commit comments

Comments
 (0)