forked from mirrors/gecko-dev
The new toolchain contains both aarch64 and x86_64 compiler-rts. We could have a separate for each, but compiler-rt is small enough that entirely separate toolchains is not warranted. Differential Revision: https://phabricator.services.mozilla.com/D101079
30 lines
1.1 KiB
Bash
Executable file
30 lines
1.1 KiB
Bash
Executable file
#!/bin/bash
|
|
set -x -e -v
|
|
|
|
# This script is for building clang for macOS targets on a Linux host,
|
|
# including native macOS Compiler-RT libraries.
|
|
|
|
cd $MOZ_FETCHES_DIR
|
|
|
|
# We have a native linux64 toolchain in $MOZ_FETCHES_DIR/clang
|
|
# We have a native aarch64 macos compiler-rt in $MOZ_FETCHES_DIR/aarch64/compiler-rt
|
|
# We have a native x86_64 macos compiler-rt in $MOZ_FETCHES_DIR/x86_64/compiler-rt
|
|
clang_lib=$(echo clang/lib/clang/*/lib)
|
|
mkdir -p $clang_lib/darwin
|
|
find {aarch64,x86_64}/compiler-rt/lib/darwin -type f -printf '%f\n' | sort -u | while read f; do
|
|
f=compiler-rt/lib/darwin/$f
|
|
if [ -f aarch64/$f -a -f x86_64/$f ]; then
|
|
# For compiler-rt files that exist on both ends, merge them
|
|
$MOZ_FETCHES_DIR/cctools/bin/lipo -create {aarch64,x86_64}/$f -output $clang_lib/darwin/${f##*/}
|
|
elif [ -f aarch64/$f ]; then
|
|
# For compiler-rt files that exist on either end, copy the existing one
|
|
cp aarch64/$f $clang_lib/darwin
|
|
else
|
|
cp x86_64/$f $clang_lib/darwin
|
|
fi
|
|
done
|
|
|
|
tar -cf - clang | python3 $GECKO_PATH/taskcluster/scripts/misc/zstdpy > clang.tar.zst
|
|
|
|
mkdir -p $UPLOAD_DIR
|
|
mv clang.tar.zst $UPLOAD_DIR
|