summaryrefslogtreecommitdiffstats
path: root/taskcluster/scripts/misc/repack-clang-linux-macosx-cross.sh
blob: c06ddd14119439801125e4de2e13c915cc3723d7 (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
#!/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