fune/taskcluster/scripts/misc/build-compiler-rt.sh
Mike Hommey 7025e04613 Bug 1706543 - Use native zstd to compress toolchain artifacts. r=firefox-build-system-reviewers,andi,mhentges
Now that docker images have been upgraded to Debian buster, we can
install a native zstd binary and use tar's native support rather than
relying on piping the output of tar to a python script that uses the
python-zstandard module. At least we can do that for toolchain tasks
that run on such docker images, which also means we can't on Mac and
Windows.

Differential Revision: https://phabricator.services.mozilla.com/D112894
2021-04-21 22:29:34 +00:00

96 lines
2.2 KiB
Bash
Executable file

#!/bin/sh
set -e
target=$1
shift
clang=$MOZ_FETCHES_DIR/clang/bin/clang
case "$target" in
aarch64-apple-darwin)
arch=arm64
sdk=11.0
compiler_wrapper() {
echo exec \$MOZ_FETCHES_DIR/clang/bin/$1 -mcpu=apple-a12 \"\$@\" > $1
chmod +x $1
}
compiler_wrapper clang
compiler_wrapper clang++
clang=$PWD/clang
;;
x86_64-apple-darwin)
arch=x86_64
sdk=10.12
;;
esac
case "$target" in
*-apple-darwin)
libdir=lib/darwin
EXTRA_CMAKE_FLAGS="
-DCMAKE_LINKER=$MOZ_FETCHES_DIR/cctools/bin/$target-ld
-DCMAKE_LIPO=$MOZ_FETCHES_DIR/cctools/bin/lipo
-DCMAKE_SYSTEM_NAME=Darwin
-DCMAKE_SYSTEM_VERSION=$sdk
-DCMAKE_OSX_SYSROOT=$MOZ_FETCHES_DIR/MacOSX$sdk.sdk
-DDARWIN_osx_ARCHS=$arch
-DDARWIN_osx_SYSROOT=$MOZ_FETCHES_DIR/MacOSX$sdk.sdk
-DDARWIN_macosx_OVERRIDE_SDK_VERSION=$sdk
-DDARWIN_osx_BUILTIN_ARCHS=$arch
"
# compiler-rt build script expects to find `codesign` in $PATH.
# Give it a fake one.
echo "#!/bin/sh" > codesign
chmod +x codesign
PATH="$PWD:$MOZ_FETCHES_DIR/cctools/bin:$PATH"
;;
aarch64-unknown-linux-gnu)
libdir=lib/linux
EXTRA_CMAKE_FLAGS="
-DCMAKE_SYSROOT=$MOZ_FETCHES_DIR/sysroot
-DCMAKE_LINKER=$MOZ_FETCHES_DIR/clang/bin/ld.lld
"
PATH="$MOZ_FETCHES_DIR/binutils/bin:$PATH"
;;
*)
echo $target is not supported yet
exit 1
;;
esac
if [ -n "$TOOLTOOL_MANIFEST" ]; then
. $GECKO_PATH/taskcluster/scripts/misc/tooltool-download.sh
fi
mkdir compiler-rt
cd compiler-rt
for patchfile in "$@"; do
patch -d $MOZ_FETCHES_DIR/llvm-project -p1 < $GECKO_PATH/$patchfile
done
cmake \
$MOZ_FETCHES_DIR/llvm-project/compiler-rt \
-GNinja \
-DCMAKE_C_COMPILER=$clang \
-DCMAKE_CXX_COMPILER=$clang++ \
-DCMAKE_C_COMPILER_TARGET=$target \
-DCMAKE_CXX_COMPILER_TARGET=$target \
-DCMAKE_ASM_COMPILER_TARGET=$target \
-DCMAKE_AR=$MOZ_FETCHES_DIR/clang/bin/llvm-ar \
-DCMAKE_RANLIB=$MOZ_FETCHES_DIR/clang/bin/llvm-ranlib \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_CONFIG_PATH=$MOZ_FETCHES_DIR/clang/bin/llvm-config \
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
$EXTRA_CMAKE_FLAGS
ninja -v
cd ..
tar caf compiler-rt.tar.zst compiler-rt/$libdir
mkdir -p "$UPLOAD_DIR"
mv "compiler-rt.tar.zst" "$UPLOAD_DIR"