Skip to content

Commit

Permalink
build stub crt libs and avoid --sysroot
Browse files Browse the repository at this point in the history
  • Loading branch information
fw-immunant committed Oct 23, 2024
1 parent b510037 commit 2e55a4d
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions cross-build-rtlibs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,24 @@
# build compiler-rt, libcxx, libcxxabi, and libunwind with our patched clang
# see https://llvm.org/docs/HowToCrossCompileBuiltinsOnArm.html
set -x

# build stub crt object files to prevent wrong-arch ones from being selected
fake_crt_dir=$(pwd)/fake_crt
mkdir -p $fake_crt_dir
for crtobj in crtn.o crti.o Scrt1.o; do
aarch64-linux-gnu-gcc -c -x c /dev/null -o $fake_crt_dir/$crtobj
done

# build runtime libs
mkdir -p build-rtlibs
cd build-rtlibs
ls -l /usr/lib/gcc/aarch64-linux-gnu
find /usr/lib | fgrep crtbeginS.o

# find existing aarch64 crt for building test programs
crt_candidates="$(ls -d /usr/lib/gcc/aarch64-linux-gnu/*)
$(ls -d /usr/lib/gcc-cross/aarch64-linux-gnu/*)"
crt_dir=$(echo $crt_candidates | sort -V | tail -n1)

cross_flags="-B$crt_dir --sysroot=/usr/aarch64-linux-gnu --gcc-install-dir=$crt_dir -isystem /usr/aarch64-linux-gnu/include -march=armv8+memtag -ffixed-x18"
cross_flags="-B$fake_crt_dir -B$crt_dir --gcc-toolchain=/usr --gcc-triple=aarch64-linux-gnu -v -isystem /usr/aarch64-linux-gnu/include -march=armv8+memtag -ffixed-x18"
#--sysroot=/usr/aarch64-linux-gnu/ --gcc-install-dir=/usr/lib/gcc/aarch64-linux-gnu/14.1.0
export LDFLAGS="-L/usr/aarch64-linux-gnu/lib"
cmake -GNinja -DLLVM_TARGETS_TO_BUILD="AArch64" -DLLVM_DEFAULT_TARGET_TRIPLE="aarch64-linux-gnu" \
Expand Down

0 comments on commit 2e55a4d

Please sign in to comment.