[tbb-commits] [tor-browser-build/master] Bug 40307: Update macOS toolchain to switch to mozilla91
sysrqb at torproject.org
sysrqb at torproject.org
Wed Oct 6 22:22:28 UTC 2021
commit 5c4ec887367ad46464f35a35fc630b00e1b3180f
Author: Nicolas Vigier <boklm at torproject.org>
Date: Sat Aug 7 09:50:52 2021 +0200
Bug 40307: Update macOS toolchain to switch to mozilla91
Based on work from sysrqb (tor-browser-build!342).
---
projects/cctools/config | 2 +-
projects/firefox/mozconfig-osx-x86_64 | 2 +-
projects/libtapi/build | 3 +-
projects/libtapi/config | 2 +-
projects/macosx-toolchain/build | 75 ++++++++++++++++++++++++++++-------
projects/macosx-toolchain/config | 10 ++---
projects/ninja/build | 2 +-
projects/node/config | 4 ++
projects/rust/build | 2 +-
projects/rust/config | 2 +-
rbm.conf | 11 ++---
11 files changed, 83 insertions(+), 32 deletions(-)
diff --git a/projects/cctools/config b/projects/cctools/config
index 280e692..2725cfe 100644
--- a/projects/cctools/config
+++ b/projects/cctools/config
@@ -3,7 +3,7 @@ filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
version: '[% c("abbrev") %]'
# This can be found in
# taskcluster/ci/fetch/toolchains.yml
-git_hash: f2890afb8a52944dd8265e489a0691c7b0afdd54
+git_hash: 30518813875aed656aa7f18b6d485feee25f8f87
git_url: https://github.com/tpoechtrager/cctools-port
var:
diff --git a/projects/firefox/mozconfig-osx-x86_64 b/projects/firefox/mozconfig-osx-x86_64
index 4609839..6cbc76c 100644
--- a/projects/firefox/mozconfig-osx-x86_64
+++ b/projects/firefox/mozconfig-osx-x86_64
@@ -4,7 +4,7 @@ TOOLCHAIN_DIR=/var/tmp/dist/macosx-toolchain
mk_add_options "export LD_LIBRARY_PATH=$TOOLCHAIN_DIR/clang/lib"
CROSS_CCTOOLS_PATH=$TOOLCHAIN_DIR/cctools
-CROSS_SYSROOT=$TOOLCHAIN_DIR/MacOSX10.11.sdk
+CROSS_SYSROOT=$TOOLCHAIN_DIR/MacOSX10.12.sdk
CROSS_PRIVATE_FRAMEWORKS=$CROSS_SYSROOT/System/Library/PrivateFrameworks
HARDENING_FLAGS="-Werror=format -Werror=format-security -fstack-protector-strong -D_FORTIFY_SOURCE=2"
FLAGS="-target x86_64-apple-darwin -B $CROSS_CCTOOLS_PATH/bin -isysroot $CROSS_SYSROOT $HARDENING_FLAGS"
diff --git a/projects/libtapi/build b/projects/libtapi/build
index a0d9c3e..0d1bd1f 100644
--- a/projects/libtapi/build
+++ b/projects/libtapi/build
@@ -36,7 +36,8 @@ cmake $builddir/src/llvm \
-DCMAKE_INSTALL_PREFIX=$distdir \
-DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \
-DTAPI_REPOSITORY_STRING=$TAPI_REPOSITORY \
- -DTAPI_FULL_VERSION=$TAPI_VERSION
+ -DTAPI_FULL_VERSION=$TAPI_VERSION \
+ -DPYTHON_EXECUTABLE=/usr/bin/python3
ninja clangBasic
ninja libtapi install-libtapi install-tapi-headers
diff --git a/projects/libtapi/config b/projects/libtapi/config
index 6c4f5d0..17aaac3 100644
--- a/projects/libtapi/config
+++ b/projects/libtapi/config
@@ -3,7 +3,7 @@ filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
version: '[% c("abbrev") %]'
# This can be found in
# taskcluster/ci/fetch/toolchains.yml
-git_hash: 3efb201881e7a76a21e0554906cf306432539cef
+git_hash: b4f141a16c7c82f75973429c92242a8c7de3ddb1
git_url: https://github.com/tpoechtrager/apple-libtapi
var:
diff --git a/projects/macosx-toolchain/build b/projects/macosx-toolchain/build
index 5716a9e..c4d1937 100644
--- a/projects/macosx-toolchain/build
+++ b/projects/macosx-toolchain/build
@@ -9,31 +9,33 @@ tar -C /var/tmp/dist -xf [% c('input_files_by_name/ninja') %]
tar -C /var/tmp/dist -xf [% c('input_files_by_name/clang') %]
tar -C $distdir -xf [% c('input_files_by_name/SDK') %]
tar -C $distdir -xf [% c('input_files_by_name/cctools') %]
-tar -C $builddir -xf [% c('input_files_by_name/clang-source') %]
+tar -C $builddir -xf [% c('input_files_by_name/llvm-project') %]
+arch=x86_64
clangdir=/var/tmp/dist/clang/bin
cctoolsdir=$distdir/cctools/bin
-sysrootdir=$distdir/MacOSX10.11.sdk/
+sysrootdir=$distdir/MacOSX[% c("version") %].sdk/
+target=x86_64-apple-darwin
# We still need to put the cctoolsdir on the path. That's because of `lipo`. See
# the respective comment in the cctools build script.
export PATH="/var/tmp/dist/ninja:/var/tmp/dist/cmake/bin:$cctoolsdir:$PATH"
export MACOSX_DEPLOYMENT_TARGET=[% c("var/macosx_deployment_target") %]
+export MACH_USE_SYSTEM_PYTHON=1
-cd $builddir/clang-source/projects
+cd $builddir/clang-source
patch -p1 < $rootdir/compiler-rt-cross-compile.patch
patch -p1 < $rootdir/compiler-rt-no-codesign.patch
cd ..
-mkdir build
-cd build
+mkdir build_clang
+pushd build_clang
# We follow quite closely Mozilla's build/build-clang/build-clang.py with the
-# clang-macosx64.json flavor. This currently implies disabling Xray as it
-# requires an OSX 10.12 SDK (see: https://bugs.llvm.org/show_bug.cgi?id=38959).
+# clang-macosx64.json flavor.
cmake -GNinja \
-DCMAKE_C_COMPILER=$clangdir/clang \
-DCMAKE_CXX_COMPILER=$clangdir/clang++ \
-DCMAKE_ASM_COMPILER=$clangdir/clang \
-DCMAKE_LINKER=$clangdir/clang \
- -DCMAKE_AR=$cctoolsdir/x86_64-apple-darwin-ar \
+ -DCMAKE_AR=$cctoolsdir/$target-ar \
-DCMAKE_C_FLAGS="[% c('var/FLAGS') %] -I$sysrootdir/usr/include -iframework $sysrootdir/System/Library/Frameworks" \
-DCMAKE_CXX_FLAGS="-stdlib=libc++ [% c('var/FLAGS') %] -I$sysrootdir/usr/include -iframework $sysrootdir/System/Library/Frameworks" \
-DCMAKE_ASM_FLAGS="[% c('var/FLAGS') %] -I$sysrootdir/usr/include -iframework $sysrootdir/System/Library/Frameworks" \
@@ -43,15 +45,15 @@ cmake -GNinja \
-DCMAKE_INSTALL_PREFIX=$distdir/clang \
-DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \
-DLLVM_ENABLE_ASSERTIONS=OFF \
- -DPYTHON_EXECUTABLE=/usr/bin/python2.7 \
+ -DPYTHON_EXECUTABLE=/usr/bin/python3 \
-DLLVM_TOOL_LIBCXX_BUILD=ON \
-DLLVM_ENABLE_BINDINGS=OFF \
-DLLVM_ENABLE_LIBXML2=FORCE_ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
- -DCMAKE_RANLIB=$cctoolsdir/x86_64-apple-darwin-ranlib \
- -DCMAKE_LIBTOOL=$cctoolsdir/x86_64-apple-darwin-libtool \
+ -DCMAKE_RANLIB=$cctoolsdir/$target-ranlib \
+ -DCMAKE_LIBTOOL=$cctoolsdir/$target-libtool \
-DCMAKE_SYSTEM_NAME=Darwin \
- -DCMAKE_SYSTEM_VERSION=10.10 \
+ -DCMAKE_SYSTEM_VERSION=$MACOSX_DEPLOYMENT_TARGET \
-DLLVM_ENABLE_THREADS=OFF \
-DCOMPILER_RT_BUILD_XRAY=OFF \
-DLIBCXXABI_LIBCXX_INCLUDES=$builddir/clang-source/projects/libcxx/include \
@@ -61,10 +63,53 @@ cmake -GNinja \
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
-DCMAKE_MACOSX_RPATH=ON \
- -DCMAKE_OSX_ARCHITECTURES=x86_64 \
- -DDARWIN_osx_ARCHS=x86_64 \
+ -DCMAKE_OSX_ARCHITECTURES=$arch \
+ -DDARWIN_macosx_OVERRIDE_SDK_VERSION=$MACOSX_DEPLOYMENT_TARGET \
+ -DDARWIN_osx_ARCHS=$arch \
-DDARWIN_osx_SYSROOT=$sysrootdir \
- -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-apple-darwin $builddir/clang-source
+ -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-apple-darwin $builddir/clang-source/llvm
+
+ninja install -v
+
+popd
+mkdir build_compiler_rt
+pushd build_compiler_rt
+
+# And we build compiler-rt by following taskcluster/scripts/misc/build-compiler-rt.sh.
+cmake -GNinja \
+ -DCMAKE_C_COMPILER=$clangdir/clang \
+ -DCMAKE_CXX_COMPILER=$clangdir/clang++ \
+ -DCMAKE_C_COMPILER_TARGET=$target \
+ -DCMAKE_CXX_COMPILER_TARGET=$target \
+ -DCMAKE_ASM_COMPILER_TARGET=$target \
+ -DCMAKE_AR=$clangdir/llvm-ar \
+ -DCMAKE_RANLIB=$clangdir/llvm-ranlib \
+ -DCMAKE_C_FLAGS="[% c('var/FLAGS') %] -I$sysrootdir/usr/include -iframework $sysrootdir/System/Library/Frameworks" \
+ -DCMAKE_CXX_FLAGS="-stdlib=libc++ [% c('var/FLAGS') %] -I$sysrootdir/usr/include -iframework $sysrootdir/System/Library/Frameworks" \
+ -DCMAKE_ASM_FLAGS="[% c('var/FLAGS') %] -I$sysrootdir/usr/include -iframework $sysrootdir/System/Library/Frameworks" \
+ -DCMAKE_EXE_LINKER_FLAGS="[% c('var/LDFLAGS') %]" \
+ -DCMAKE_SHARED_LINKER_FLAGS="[% c('var/LDFLAGS') %]" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_ASSERTIONS=OFF \
+ -DCMAKE_INSTALL_PREFIX=$distdir/clang/lib/clang/[% pc("clang", "version") %]/ \
+ -DLLVM_CONFIG_PATH=$clangdir/llvm-config \
+ -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
+ -DCMAKE_LINKER=$cctoolsdir/$target-ld \
+ -DCMAKE_LIPO=$cctoolsdir/lipo \
+ -DCMAKE_SYSTEM_NAME=Darwin \
+ -DCMAKE_SYSTEM_VERSION=$MACOSX_DEPLOYMENT_TARGET \
+ -DDARWIN_macosx_OVERRIDE_SDK_VERSION=$MACOSX_DEPLOYMENT_TARGET \
+ -DDARWIN_osx_ARCHS=$arch \
+ -DDARWIN_osx_SYSROOT=$sysrootdir \
+ -DDARWIN_osx_BUILTIN_ARCHS=$arch \
+ -DCMAKE_OSX_SYSROOT=$sysrootdir \
+ -DCMAKE_FIND_ROOT_PATH=$sysrootdir \
+ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
+ -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
+ -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
+ -DDARWIN_osx_BUILTIN_ARCHS=$arch \
+ $builddir/clang-source/compiler-rt
+
ninja install -v
# We now have a native macosx64 toolchain.
diff --git a/projects/macosx-toolchain/config b/projects/macosx-toolchain/config
index 5f9a109..b42d190 100644
--- a/projects/macosx-toolchain/config
+++ b/projects/macosx-toolchain/config
@@ -1,13 +1,13 @@
# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-1-[% c("var/build_id") %].tar.gz'
-version: 10.11
+version: 10.12
var:
container:
use_container: 1
setup: |
mkdir -p /var/tmp/dist
tar -C /var/tmp/dist -xf $rootdir/[% c("compiler_tarfile") %]
- export sysrootdir=/var/tmp/dist/[% project %]/MacOSX10.11.sdk/
+ export sysrootdir=/var/tmp/dist/[% project %]/MacOSX[% c("version") %].sdk/
export clangdir=/var/tmp/dist/[% project %]/clang
export cctoolsdir=/var/tmp/dist/[% project %]/cctools/bin
export PATH="$clangdir/bin:$cctoolsdir:$PATH"
@@ -30,8 +30,8 @@ input_files:
# build/macosx/cross-mozconfig.common
- name: SDK
URL: 'https://people.torproject.org/~gk/mirrors/sources/MacOSX[% c("version") %].sdk.tar.bz2'
- sha256sum: d11e410d757d023be66d2fe7eaa85a1d232da3ac04f177eff3d8b8275cd9ffca
- - name: clang-source
- project: clang-source
+ sha256sum: d2ef4ae4f85675c08795d33f283e307b6299184d78d4b10bdbea39df6dca7d94
+ - name: llvm-project
+ project: llvm-project
- filename: compiler-rt-cross-compile.patch
- filename: compiler-rt-no-codesign.patch
diff --git a/projects/ninja/build b/projects/ninja/build
index 9fc0eaa..527f1b6 100644
--- a/projects/ninja/build
+++ b/projects/ninja/build
@@ -10,7 +10,7 @@ mkdir /var/tmp/build
tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
cd /var/tmp/build/[% project %]-[% c('version') %]
-[% IF c("var/windows") -%]
+[% IF c("var/windows") || c("var/osx") -%]
# Starting with Debian Bullseye, /usr/bin/python does not exist, so
# we need to use python3 explicitly
sed -i 's/env python$/env python3/' configure.py
diff --git a/projects/node/config b/projects/node/config
index ce058cf..2682fad 100644
--- a/projects/node/config
+++ b/projects/node/config
@@ -16,6 +16,10 @@ targets:
var:
arch_deps:
- python2
+ osx-x86_64:
+ var:
+ arch_deps:
+ - python2
input_files:
- project: container-image
diff --git a/projects/rust/build b/projects/rust/build
index 69bd0f4..213e1c1 100644
--- a/projects/rust/build
+++ b/projects/rust/build
@@ -31,7 +31,7 @@ export PATH="$distdir-rust-old/bin:$PATH"
cat > $distdir/helper/x86_64-apple-darwin-clang << 'EOF'
#!/bin/sh
BASEDIR=/var/tmp/dist/macosx-toolchain
-$BASEDIR/cctools/bin/x86_64-apple-darwin-clang -target x86_64-apple-darwin -B $BASEDIR/cctools/bin -isysroot $BASEDIR/MacOSX10.11.sdk/ -Wl,-syslibroot,$BASEDIR/MacOSX10.11.sdk/ -Wl,-dead_strip -Wl,-pie "$@"
+$BASEDIR/cctools/bin/x86_64-apple-darwin-clang -target x86_64-apple-darwin -B $BASEDIR/cctools/bin -isysroot $sysrootdir -Wl,-syslibroot,$sysrootdir -Wl,-dead_strip -Wl,-pie "$@"
EOF
chmod +x $distdir/helper/x86_64-apple-darwin-clang
diff --git a/projects/rust/config b/projects/rust/config
index 4995f1c..2a6657f 100644
--- a/projects/rust/config
+++ b/projects/rust/config
@@ -67,7 +67,7 @@ targets:
- libssl-dev
- pkg-config
- zlib1g-dev
- configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-apple-darwin --set=target.x86_64-apple-darwin.cc=x86_64-apple-darwin-clang
+ configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-unknown-linux-gnu,x86_64-apple-darwin --set=target.x86_64-apple-darwin.cc=x86_64-apple-darwin-clang
windows:
var:
diff --git a/rbm.conf b/rbm.conf
index c67fdc9..be891d0 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -476,28 +476,29 @@ targets:
torbrowser-osx-x86_64:
- osx-x86_64
+ - ff91esr
osx-x86_64:
arch: x86_64
var:
osx: 1
osname: osx-x86_64
container:
- suite: buster
+ suite: bullseye
arch: amd64
compiler: 'macosx-toolchain'
configure_opt: '--host=x86_64-apple-darwin CC="x86_64-apple-darwin-clang [% c("var/FLAGS") %]" CXX="x86_64-apple-darwin-clang++ [% c("var/FLAGS") %]" [% c("var/configure_opt_project") %]'
FLAGS: "-target x86_64-apple-darwin -B $cctoolsdir -isysroot $sysrootdir"
LDFLAGS: "-Wl,-syslibroot,$sysrootdir -Wl,-dead_strip -Wl,-pie"
- macosx_deployment_target: '10.9'
+ macosx_deployment_target: '10.12'
locale_ja: ja-JP-mac
- # We only support RLBox on the nightly channel for now
- rlbox: '[% c("var/nightly") %]'
+ rlbox: 0
# We only build snowflake on the alpha and nightly
# channels for now.
snowflake: '[% c("var/alpha") || c("var/nightly") %]'
deps:
- build-essential
- - python
+ - python3
+ - python3-distutils
- automake
- libtool
- zip
More information about the tbb-commits
mailing list