Bug 1690757 - Change compiler-rt cmake flags to better share with upcoming new platforms. r=firefox-build-system-reviewers,mhentges

- Switch to use llvm-ar and llvm-ranlib
- Use CMAKE_*_COMPILER_TARGET for --target
- Use CMAKE_OSX_SYSROOT for -isysroot
- Limit the compiler wrapper to adding -mcpu=apple-a12 on arm64
- Remove -DLLVM_DEFAULT_TARGET_TRIPLE and add -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
- Group all the flags that are OSX-only

Differential Revision: https://phabricator.services.mozilla.com/D104011
This commit is contained in:
Mike Hommey 2021-02-04 14:36:12 +00:00
parent 61d74bc90a
commit 250f0d4870

View File

@ -5,11 +5,19 @@ set -e
target=$1 target=$1
shift shift
clang=$MOZ_FETCHES_DIR/clang/bin/clang
case "$target" in case "$target" in
aarch64-apple-darwin) aarch64-apple-darwin)
arch=arm64 arch=arm64
sdk=11.0 sdk=11.0
extra_flags="-mcpu=apple-a12" 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) x86_64-apple-darwin)
arch=x86_64 arch=x86_64
@ -30,15 +38,6 @@ fi
mkdir compiler-rt mkdir compiler-rt
cd 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 for patchfile in "$@"; do
patch -d $MOZ_FETCHES_DIR/llvm-project -p1 < $GECKO_PATH/$patchfile patch -d $MOZ_FETCHES_DIR/llvm-project -p1 < $GECKO_PATH/$patchfile
done done
@ -46,20 +45,24 @@ done
cmake \ cmake \
$MOZ_FETCHES_DIR/llvm-project/compiler-rt \ $MOZ_FETCHES_DIR/llvm-project/compiler-rt \
-GNinja \ -GNinja \
-DCMAKE_C_COMPILER=$PWD/clang \ -DCMAKE_C_COMPILER=$clang \
-DCMAKE_CXX_COMPILER=$PWD/clang++ \ -DCMAKE_CXX_COMPILER=$clang++ \
-DCMAKE_LINKER=$MOZ_FETCHES_DIR/cctools/bin/$target-ld \ -DCMAKE_C_COMPILER_TARGET=$target \
-DCMAKE_LIPO=$MOZ_FETCHES_DIR/cctools/bin/lipo \ -DCMAKE_CXX_COMPILER_TARGET=$target \
-DCMAKE_AR=$MOZ_FETCHES_DIR/cctools/bin/$target-ar \ -DCMAKE_ASM_COMPILER_TARGET=$target \
-DCMAKE_RANLIB=$MOZ_FETCHES_DIR/cctools/bin/$target-ranlib \ -DCMAKE_AR=$MOZ_FETCHES_DIR/clang/bin/llvm-ar \
-DCMAKE_RANLIB=$MOZ_FETCHES_DIR/clang/bin/llvm-ranlib \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_CONFIG_PATH=$MOZ_FETCHES_DIR/clang/bin/llvm-config \ -DLLVM_CONFIG_PATH=$MOZ_FETCHES_DIR/clang/bin/llvm-config \
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
-DCMAKE_LINKER=$MOZ_FETCHES_DIR/cctools/bin/$target-ld \
-DCMAKE_LIPO=$MOZ_FETCHES_DIR/cctools/bin/lipo \
-DCMAKE_SYSTEM_NAME=Darwin \ -DCMAKE_SYSTEM_NAME=Darwin \
-DCMAKE_SYSTEM_VERSION=$sdk \ -DCMAKE_SYSTEM_VERSION=$sdk \
-DCMAKE_OSX_SYSROOT=$MOZ_FETCHES_DIR/MacOSX$sdk.sdk \
-DDARWIN_osx_ARCHS=$arch \ -DDARWIN_osx_ARCHS=$arch \
-DDARWIN_osx_SYSROOT=$MOZ_FETCHES_DIR/MacOSX$sdk.sdk \ -DDARWIN_osx_SYSROOT=$MOZ_FETCHES_DIR/MacOSX$sdk.sdk \
-DLLVM_DEFAULT_TARGET_TRIPLE=$target \
-DDARWIN_macosx_OVERRIDE_SDK_VERSION=$sdk \ -DDARWIN_macosx_OVERRIDE_SDK_VERSION=$sdk \
-DDARWIN_osx_BUILTIN_ARCHS=$arch -DDARWIN_osx_BUILTIN_ARCHS=$arch