Skip to content

Commit 0e724f2

Browse files
committed
build other runtime components to avoid any system code in our runtime dependencies
1 parent 29239a7 commit 0e724f2

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed
Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
#!/bin/sh
2+
# build compiler-rt, libcxx, libcxxabi, and libunwind with our patched clang
23
# see https://llvm.org/docs/HowToCrossCompileBuiltinsOnArm.html
3-
mkdir -p build-compiler-rt
4-
cd build-compiler-rt
5-
cross_flags="--gcc-toolchain=/usr -isystem /usr/aarch64-linux-gnu/include -march=armv8.5-a+memtag -ffixed-x18"
4+
mkdir -p build-rtlibs
5+
cd build-rtlibs
6+
cross_flags="--sysroot=/usr/aarch64-linux-gnu/ --gcc-install-dir=/usr/lib/gcc/aarch64-linux-gnu/14.1.0 --rtlib=compiler-rt -march=armv8+memtag -ffixed-x18"
67
export LDFLAGS="-L/usr/aarch64-linux-gnu/lib"
78
cmake -GNinja -DLLVM_TARGETS_TO_BUILD="AArch64" -DLLVM_DEFAULT_TARGET_TRIPLE="aarch64-linux-gnu" \
89
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
910
-DCMAKE_C_FLAGS="$cross_flags --target=aarch64-linux-gnu" -DCMAKE_CXX_FLAGS="$cross_flags --target=aarch64-linux-gnu" \
1011
-DCMAKE_C_COMPILER="$(pwd)/../build/bin/clang" -DCMAKE_CXX_COMPILER="$(pwd)/../build/bin/clang" \
1112
-DCMAKE_BUILD_WITH_INSTALL_RPATH=true \
12-
-DCOMPILER_RT_BUILD_SANITIZERS=OFF -DCOMPILER_RT_BUILD_MEMPROF=OFF -DCOMPILER_RT_BUILD_ORC=OFF \
13-
-DCOMPILER_RT_BUILD_XRAY=OFF -DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
14-
-DCOMPILER_RT_DEFAULT_TARGET_TRIPLE="aarch64-linux-gnu" \
15-
../compiler-rt
13+
-DCMAKE_EXE_LINKER_FLAGS='--rtlib=compiler-rt' \
14+
-DCOMPILER_RT_BUILD_BUILTINS=ON \
15+
-DLIBCXX_USE_COMPILER_RT=YES \
16+
-DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi;compiler-rt;libunwind' \
17+
../runtimes
1618
ninja
17-
cd lib/linux
19+
cd compiler-rt/lib/linux
1820
# rename CRT files to expected filenames
1921
cp -a clang_rt.crtend-aarch64.o crtendS.o
2022
cp -a clang_rt.crtbegin-aarch64.o crtbeginS.o

0 commit comments

Comments
 (0)