summaryrefslogtreecommitdiffstats
path: root/taskcluster/scripts/misc/build-compiler-rt.sh
blob: 1b2cb3df35eb6ad8b794f16f76c9d41acd5d5a66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/sh

set -e

target=$1
shift

case "$target" in
aarch64-apple-darwin)
  arch=arm64
  sdk=11.0
  extra_flags="-mcpu=apple-a12"
  ;;
x86_64-apple-darwin)
  arch=x86_64
  sdk=10.12
  ;;
*)
  echo $target is not supported yet
  exit 1
  ;;
esac

export PATH="$MOZ_FETCHES_DIR/cctools/bin:$PATH"

if [ -n "$TOOLTOOL_MANIFEST" ]; then
  . $GECKO_PATH/taskcluster/scripts/misc/tooltool-download.sh
fi

mkdir compiler-rt
cd compiler-rt

compiler_wrapper() {
cat > $1 <<EOF
exec \$MOZ_FETCHES_DIR/clang/bin/$1 -target $target $extra_flags -isysroot \$MOZ_FETCHES_DIR/MacOSX$sdk.sdk "\$@"
EOF
chmod +x $1
}
compiler_wrapper clang
compiler_wrapper clang++

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=$PWD/clang \
  -DCMAKE_CXX_COMPILER=$PWD/clang++ \
  -DCMAKE_LINKER=$MOZ_FETCHES_DIR/cctools/bin/$target-ld \
  -DCMAKE_LIPO=$MOZ_FETCHES_DIR/cctools/bin/lipo \
  -DCMAKE_AR=$MOZ_FETCHES_DIR/cctools/bin/$target-ar \
  -DCMAKE_RANLIB=$MOZ_FETCHES_DIR/cctools/bin/$target-ranlib \
  -DCMAKE_BUILD_TYPE=Release \
  -DLLVM_ENABLE_ASSERTIONS=OFF \
  -DLLVM_CONFIG_PATH=$MOZ_FETCHES_DIR/clang/bin/llvm-config \
  -DCMAKE_SYSTEM_NAME=Darwin \
  -DCMAKE_SYSTEM_VERSION=$sdk \
  -DDARWIN_osx_ARCHS=$arch \
  -DDARWIN_osx_SYSROOT=$MOZ_FETCHES_DIR/MacOSX$sdk.sdk \
  -DLLVM_DEFAULT_TARGET_TRIPLE=$target \
  -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=$PATH:$PWD ninja -v

cd ..

tar -cf - compiler-rt/lib/darwin | python3 $GECKO_PATH/taskcluster/scripts/misc/zstdpy > "compiler-rt.tar.zst"

mkdir -p "$UPLOAD_DIR"
mv "compiler-rt.tar.zst" "$UPLOAD_DIR"