mirror of
https://github.com/rust-lang/rust
synced 2024-11-02 11:53:40 +00:00
Add a cross-compiling aarch64-apple-darwin CI builder
This commit is contained in:
parent
fc42fb8e70
commit
225ec813a9
4 changed files with 80 additions and 3 deletions
24
.github/workflows/ci.yml
vendored
24
.github/workflows/ci.yml
vendored
|
@ -89,6 +89,9 @@ jobs:
|
||||||
- name: install sccache
|
- name: install sccache
|
||||||
run: src/ci/scripts/install-sccache.sh
|
run: src/ci/scripts/install-sccache.sh
|
||||||
if: success() && !env.SKIP_JOB
|
if: success() && !env.SKIP_JOB
|
||||||
|
- name: select Xcode
|
||||||
|
run: src/ci/scripts/select-xcode.sh
|
||||||
|
if: success() && !env.SKIP_JOB
|
||||||
- name: install clang
|
- name: install clang
|
||||||
run: src/ci/scripts/install-clang.sh
|
run: src/ci/scripts/install-clang.sh
|
||||||
if: success() && !env.SKIP_JOB
|
if: success() && !env.SKIP_JOB
|
||||||
|
@ -300,6 +303,18 @@ jobs:
|
||||||
NO_LLVM_ASSERTIONS: 1
|
NO_LLVM_ASSERTIONS: 1
|
||||||
NO_DEBUG_ASSERTIONS: 1
|
NO_DEBUG_ASSERTIONS: 1
|
||||||
os: macos-latest
|
os: macos-latest
|
||||||
|
- name: dist-aarch64-apple
|
||||||
|
env:
|
||||||
|
SCRIPT: "./x.py dist --stage 2"
|
||||||
|
RUST_CONFIGURE_ARGS: "--build=x86_64-apple-darwin --host=aarch64-apple-darwin --target=aarch64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc --set llvm.ninja=false --tools=rls,clippy,rustfmt,analysis,src"
|
||||||
|
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
|
||||||
|
SELECT_XCODE: /Applications/Xcode_12_beta.app
|
||||||
|
USE_XCODE_CLANG: 1
|
||||||
|
MACOSX_DEPLOYMENT_TARGET: 11.0
|
||||||
|
MACOSX_STD_DEPLOYMENT_TARGET: 11.0
|
||||||
|
NO_LLVM_ASSERTIONS: 1
|
||||||
|
NO_DEBUG_ASSERTIONS: 1
|
||||||
|
os: macos-latest
|
||||||
- name: x86_64-msvc-1
|
- name: x86_64-msvc-1
|
||||||
env:
|
env:
|
||||||
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --enable-profiler"
|
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --enable-profiler"
|
||||||
|
@ -437,6 +452,9 @@ jobs:
|
||||||
- name: install sccache
|
- name: install sccache
|
||||||
run: src/ci/scripts/install-sccache.sh
|
run: src/ci/scripts/install-sccache.sh
|
||||||
if: success() && !env.SKIP_JOB
|
if: success() && !env.SKIP_JOB
|
||||||
|
- name: select Xcode
|
||||||
|
run: src/ci/scripts/select-xcode.sh
|
||||||
|
if: success() && !env.SKIP_JOB
|
||||||
- name: install clang
|
- name: install clang
|
||||||
run: src/ci/scripts/install-clang.sh
|
run: src/ci/scripts/install-clang.sh
|
||||||
if: success() && !env.SKIP_JOB
|
if: success() && !env.SKIP_JOB
|
||||||
|
@ -544,6 +562,9 @@ jobs:
|
||||||
- name: install sccache
|
- name: install sccache
|
||||||
run: src/ci/scripts/install-sccache.sh
|
run: src/ci/scripts/install-sccache.sh
|
||||||
if: success() && !env.SKIP_JOB
|
if: success() && !env.SKIP_JOB
|
||||||
|
- name: select Xcode
|
||||||
|
run: src/ci/scripts/select-xcode.sh
|
||||||
|
if: success() && !env.SKIP_JOB
|
||||||
- name: install clang
|
- name: install clang
|
||||||
run: src/ci/scripts/install-clang.sh
|
run: src/ci/scripts/install-clang.sh
|
||||||
if: success() && !env.SKIP_JOB
|
if: success() && !env.SKIP_JOB
|
||||||
|
@ -648,6 +669,9 @@ jobs:
|
||||||
- name: install sccache
|
- name: install sccache
|
||||||
run: src/ci/scripts/install-sccache.sh
|
run: src/ci/scripts/install-sccache.sh
|
||||||
if: success() && !env.SKIP_JOB
|
if: success() && !env.SKIP_JOB
|
||||||
|
- name: select Xcode
|
||||||
|
run: src/ci/scripts/select-xcode.sh
|
||||||
|
if: success() && !env.SKIP_JOB
|
||||||
- name: install clang
|
- name: install clang
|
||||||
run: src/ci/scripts/install-clang.sh
|
run: src/ci/scripts/install-clang.sh
|
||||||
if: success() && !env.SKIP_JOB
|
if: success() && !env.SKIP_JOB
|
||||||
|
|
|
@ -149,6 +149,10 @@ x--expand-yaml-anchors--remove:
|
||||||
run: src/ci/scripts/install-sccache.sh
|
run: src/ci/scripts/install-sccache.sh
|
||||||
<<: *step
|
<<: *step
|
||||||
|
|
||||||
|
- name: select Xcode
|
||||||
|
run: src/ci/scripts/select-xcode.sh
|
||||||
|
<<: *step
|
||||||
|
|
||||||
- name: install clang
|
- name: install clang
|
||||||
run: src/ci/scripts/install-clang.sh
|
run: src/ci/scripts/install-clang.sh
|
||||||
<<: *step
|
<<: *step
|
||||||
|
@ -457,6 +461,34 @@ jobs:
|
||||||
NO_DEBUG_ASSERTIONS: 1
|
NO_DEBUG_ASSERTIONS: 1
|
||||||
<<: *job-macos-xl
|
<<: *job-macos-xl
|
||||||
|
|
||||||
|
# This target only needs to support 11.0 and up as nothing else supports the hardware
|
||||||
|
- name: dist-aarch64-apple
|
||||||
|
env:
|
||||||
|
SCRIPT: ./x.py dist --stage 2
|
||||||
|
RUST_CONFIGURE_ARGS: >-
|
||||||
|
--build=x86_64-apple-darwin
|
||||||
|
--host=aarch64-apple-darwin
|
||||||
|
--target=aarch64-apple-darwin
|
||||||
|
--enable-sanitizers
|
||||||
|
--enable-profiler
|
||||||
|
--set rust.jemalloc
|
||||||
|
--set llvm.ninja=false
|
||||||
|
--tools=rls,clippy,rustfmt,analysis,src
|
||||||
|
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
|
||||||
|
SELECT_XCODE: /Applications/Xcode_12_beta.app
|
||||||
|
USE_XCODE_CLANG: 1
|
||||||
|
MACOSX_DEPLOYMENT_TARGET: 11.0
|
||||||
|
MACOSX_STD_DEPLOYMENT_TARGET: 11.0
|
||||||
|
NO_LLVM_ASSERTIONS: 1
|
||||||
|
NO_DEBUG_ASSERTIONS: 1
|
||||||
|
# TODO: Cargo is disabled until OpenSSL 1.1.1 can be
|
||||||
|
# compiled for aarch64-apple-darwin::
|
||||||
|
# https://github.com/openssl/openssl/pull/12369. Once
|
||||||
|
# fixed, remove `--tools`, add back
|
||||||
|
# `--enable-full-tools`, and enable this again
|
||||||
|
# DIST_REQUIRE_ALL_TOOLS: 1
|
||||||
|
<<: *job-macos-xl
|
||||||
|
|
||||||
######################
|
######################
|
||||||
# Windows Builders #
|
# Windows Builders #
|
||||||
######################
|
######################
|
||||||
|
|
|
@ -12,10 +12,18 @@ source "$(cd "$(dirname "$0")" && pwd)/../shared.sh"
|
||||||
LLVM_VERSION="10.0.0"
|
LLVM_VERSION="10.0.0"
|
||||||
|
|
||||||
if isMacOS; then
|
if isMacOS; then
|
||||||
curl -f "${MIRRORS_BASE}/clang%2Bllvm-${LLVM_VERSION}-x86_64-apple-darwin.tar.xz" | tar xJf -
|
# If the job selects a specific Xcode version, use that instead of
|
||||||
|
# downloading our own version.
|
||||||
|
if [[ ${USE_XCODE_CLANG-0} -eq 1 ]]; then
|
||||||
|
bindir="$(xcode-select --print-path)/Toolchains/XcodeDefault.xctoolchain/usr/bin"
|
||||||
|
else
|
||||||
|
file="${MIRRORS_BASE}/clang%2Bllvm-${LLVM_VERSION}-x86_64-apple-darwin.tar.xz"
|
||||||
|
curl -f "${file}" | tar xJf -
|
||||||
|
bindir="$(pwd)/clang+llvm-${LLVM_VERSION}-x86_64-apple-darwin/bin"
|
||||||
|
fi
|
||||||
|
|
||||||
ciCommandSetEnv CC "$(pwd)/clang+llvm-${LLVM_VERSION}-x86_64-apple-darwin/bin/clang"
|
ciCommandSetEnv CC "${bindir}/clang"
|
||||||
ciCommandSetEnv CXX "$(pwd)/clang+llvm-${LLVM_VERSION}-x86_64-apple-darwin/bin/clang++"
|
ciCommandSetEnv CXX "${bindir}/clang++"
|
||||||
|
|
||||||
# macOS 10.15 onwards doesn't have libraries in /usr/include anymore: those
|
# macOS 10.15 onwards doesn't have libraries in /usr/include anymore: those
|
||||||
# are now located deep into the filesystem, under Xcode's own files. The
|
# are now located deep into the filesystem, under Xcode's own files. The
|
||||||
|
|
13
src/ci/scripts/select-xcode.sh
Executable file
13
src/ci/scripts/select-xcode.sh
Executable file
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# This script selects the Xcode instance to use.
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
|
source "$(cd "$(dirname "$0")" && pwd)/../shared.sh"
|
||||||
|
|
||||||
|
if isMacOS; then
|
||||||
|
if [[ -s "${SELECT_XCODE-}" ]]; then
|
||||||
|
sudo xcode-select -s "${SELECT_XCODE}"
|
||||||
|
fi
|
||||||
|
fi
|
Loading…
Reference in a new issue