Skip to content

Commit a8d4297

Browse files
authored
Rollup merge of rust-lang#78228 - pietroalbini:finally, r=Mark-Simulacrum
Promote aarch64-unknown-linux-gnu to Tier 1 This PR promotes the `aarch64-unknown-linux-gnu` target to Tier 1, as proposed by [RFC 2959]: * The `aarch64-gnu` CI job is moved from `auto-fallible` to `auto`. * The platform support documentation is updated, uplifting the target to Tiert 1 with a note about missing stack probes support. * Building the documentation is enabled for the target, as we produce the `rust-docs` component for all Tier 1 platforms. [RFC 2959]: rust-lang/rfcs#2959
2 parents e422bef + 874cbb8 commit a8d4297

File tree

5 files changed

+17
-130
lines changed

5 files changed

+17
-130
lines changed

.github/workflows/ci.yml

+5-110
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,11 @@ jobs:
154154
strategy:
155155
matrix:
156156
include:
157+
- name: aarch64-gnu
158+
os:
159+
- self-hosted
160+
- ARM64
161+
- linux
157162
- name: arm-android
158163
os: ubuntu-latest-xl
159164
env: {}
@@ -509,116 +514,6 @@ jobs:
509514
AWS_ACCESS_KEY_ID: "${{ env.ARTIFACTS_AWS_ACCESS_KEY_ID }}"
510515
AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.ARTIFACTS_AWS_ACCESS_KEY_ID)] }}"
511516
if: "success() && !env.SKIP_JOB && (github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1')"
512-
auto-fallible:
513-
name: auto-fallible
514-
env:
515-
CI_JOB_NAME: "${{ matrix.name }}"
516-
SCCACHE_BUCKET: rust-lang-gha-caches
517-
DEPLOY_BUCKET: rust-lang-gha
518-
TOOLSTATE_REPO: "https://github.com/pietroalbini/rust-toolstate"
519-
TOOLSTATE_ISSUES_API_URL: "https://api.github.com/repos/pietroalbini/rust-toolstate/issues"
520-
TOOLSTATE_PUBLISH: 1
521-
CACHES_AWS_ACCESS_KEY_ID: AKIA46X5W6CZOMUQATD5
522-
ARTIFACTS_AWS_ACCESS_KEY_ID: AKIA46X5W6CZH5AYXDVF
523-
CACHE_DOMAIN: ci-caches-gha.rust-lang.org
524-
if: "github.event_name == 'push' && github.ref == 'refs/heads/auto' && github.repository == 'rust-lang-ci/rust'"
525-
strategy:
526-
fail-fast: false
527-
matrix:
528-
include:
529-
- name: aarch64-gnu
530-
os:
531-
- self-hosted
532-
- ARM64
533-
- linux
534-
timeout-minutes: 600
535-
runs-on: "${{ matrix.os }}"
536-
steps:
537-
- name: disable git crlf conversion
538-
run: git config --global core.autocrlf false
539-
- name: checkout the source code
540-
uses: actions/checkout@v2
541-
with:
542-
fetch-depth: 2
543-
- name: configure the PR in which the error message will be posted
544-
run: "echo \"[CI_PR_NUMBER=$num]\""
545-
env:
546-
num: "${{ github.event.number }}"
547-
if: "success() && !env.SKIP_JOBS && github.event_name == 'pull_request'"
548-
- name: add extra environment variables
549-
run: src/ci/scripts/setup-environment.sh
550-
env:
551-
EXTRA_VARIABLES: "${{ toJson(matrix.env) }}"
552-
if: success() && !env.SKIP_JOB
553-
- name: decide whether to skip this job
554-
run: src/ci/scripts/should-skip-this.sh
555-
if: success() && !env.SKIP_JOB
556-
- name: configure GitHub Actions to kill the build when outdated
557-
uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
558-
with:
559-
github_token: "${{ secrets.github_token }}"
560-
if: "success() && !env.SKIP_JOB && github.ref != 'refs/heads/try'"
561-
- name: collect CPU statistics
562-
run: src/ci/scripts/collect-cpu-stats.sh
563-
if: success() && !env.SKIP_JOB
564-
- name: show the current environment
565-
run: src/ci/scripts/dump-environment.sh
566-
if: success() && !env.SKIP_JOB
567-
- name: install awscli
568-
run: src/ci/scripts/install-awscli.sh
569-
if: success() && !env.SKIP_JOB
570-
- name: install sccache
571-
run: src/ci/scripts/install-sccache.sh
572-
if: success() && !env.SKIP_JOB
573-
- name: select Xcode
574-
run: src/ci/scripts/select-xcode.sh
575-
if: success() && !env.SKIP_JOB
576-
- name: install clang
577-
run: src/ci/scripts/install-clang.sh
578-
if: success() && !env.SKIP_JOB
579-
- name: install WIX
580-
run: src/ci/scripts/install-wix.sh
581-
if: success() && !env.SKIP_JOB
582-
- name: ensure the build happens on a partition with enough space
583-
run: src/ci/scripts/symlink-build-dir.sh
584-
if: success() && !env.SKIP_JOB
585-
- name: disable git crlf conversion
586-
run: src/ci/scripts/disable-git-crlf-conversion.sh
587-
if: success() && !env.SKIP_JOB
588-
- name: install MSYS2
589-
run: src/ci/scripts/install-msys2.sh
590-
if: success() && !env.SKIP_JOB
591-
- name: install MinGW
592-
run: src/ci/scripts/install-mingw.sh
593-
if: success() && !env.SKIP_JOB
594-
- name: install ninja
595-
run: src/ci/scripts/install-ninja.sh
596-
if: success() && !env.SKIP_JOB
597-
- name: enable ipv6 on Docker
598-
run: src/ci/scripts/enable-docker-ipv6.sh
599-
if: success() && !env.SKIP_JOB
600-
- name: disable git crlf conversion
601-
run: src/ci/scripts/disable-git-crlf-conversion.sh
602-
if: success() && !env.SKIP_JOB
603-
- name: checkout submodules
604-
run: src/ci/scripts/checkout-submodules.sh
605-
if: success() && !env.SKIP_JOB
606-
- name: ensure line endings are correct
607-
run: src/ci/scripts/verify-line-endings.sh
608-
if: success() && !env.SKIP_JOB
609-
- name: run the build
610-
run: src/ci/scripts/run-build-from-ci.sh
611-
env:
612-
AWS_ACCESS_KEY_ID: "${{ env.CACHES_AWS_ACCESS_KEY_ID }}"
613-
AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }}"
614-
TOOLSTATE_REPO_ACCESS_TOKEN: "${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}"
615-
if: success() && !env.SKIP_JOB
616-
- name: upload artifacts to S3
617-
run: src/ci/scripts/upload-artifacts.sh
618-
env:
619-
AWS_ACCESS_KEY_ID: "${{ env.ARTIFACTS_AWS_ACCESS_KEY_ID }}"
620-
AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.ARTIFACTS_AWS_ACCESS_KEY_ID)] }}"
621-
if: "success() && !env.SKIP_JOB && (github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1')"
622517
try:
623518
name: try
624519
env:

src/ci/docker/host-x86_64/dist-aarch64-linux/Dockerfile

+1-2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,5 @@ ENV HOSTS=aarch64-unknown-linux-gnu
3535
ENV RUST_CONFIGURE_ARGS \
3636
--enable-full-tools \
3737
--enable-profiler \
38-
--enable-sanitizers \
39-
--disable-docs
38+
--enable-sanitizers
4039
ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS

src/ci/github-actions/ci.yml

+3-17
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,9 @@ jobs:
301301
# Linux/Docker builders #
302302
#############################
303303

304+
- name: aarch64-gnu
305+
<<: *job-aarch64-linux
306+
304307
- name: arm-android
305308
<<: *job-linux-xl
306309

@@ -653,23 +656,6 @@ jobs:
653656
SCRIPT: python x.py dist
654657
<<: *job-windows-xl
655658

656-
auto-fallible:
657-
<<: *base-ci-job
658-
name: auto-fallible
659-
env:
660-
<<: [*shared-ci-variables, *dummy-variables]
661-
if: github.event_name == 'push' && github.ref == 'refs/heads/auto' && github.repository == 'rust-lang-ci/rust'
662-
strategy:
663-
fail-fast: false
664-
matrix:
665-
include:
666-
#############################
667-
# Linux/Docker builders #
668-
#############################
669-
670-
- name: aarch64-gnu
671-
<<: *job-aarch64-linux
672-
673659
try:
674660
<<: *base-ci-job
675661
name: try

src/doc/rustc/src/platform-support.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ Specifically they will each satisfy the following requirements:
3434

3535
target | std | host | notes
3636
-------|-----|------|-------
37+
`aarch64-unknown-linux-gnu` | ✓ | ✓ | ARM64 Linux (kernel 4.2, glibc 2.17+) [^missing-stack-probes]
3738
`i686-pc-windows-gnu` | ✓ | ✓ | 32-bit MinGW (Windows 7+)
3839
`i686-pc-windows-msvc` | ✓ | ✓ | 32-bit MSVC (Windows 7+)
3940
`i686-unknown-linux-gnu` | ✓ | ✓ | 32-bit Linux (kernel 2.6.32+, glibc 2.11+)
@@ -42,6 +43,12 @@ target | std | host | notes
4243
`x86_64-pc-windows-msvc` | ✓ | ✓ | 64-bit MSVC (Windows 7+)
4344
`x86_64-unknown-linux-gnu` | ✓ | ✓ | 64-bit Linux (kernel 2.6.32+, glibc 2.11+)
4445

46+
[^missing-stack-probes]: Stack probes support is missing on
47+
`aarch64-unknown-linux-gnu`, but it's planned to be implemented in the near
48+
future. The implementation is tracked on [issue #77071][77071].
49+
50+
[77071]: https://github.com/rust-lang/rust/issues/77071
51+
4552
## Tier 2
4653

4754
Tier 2 platforms can be thought of as "guaranteed to build". Automated tests
@@ -62,7 +69,6 @@ target | std | host | notes
6269
`aarch64-fuchsia` | ✓ | | ARM64 Fuchsia
6370
`aarch64-linux-android` | ✓ | | ARM64 Android
6471
`aarch64-pc-windows-msvc` | ✓ | ✓ | ARM64 Windows MSVC
65-
`aarch64-unknown-linux-gnu` | ✓ | ✓ | ARM64 Linux (kernel 4.2, glibc 2.17)
6672
`aarch64-unknown-linux-musl` | ✓ | ✓ | ARM64 Linux with MUSL
6773
`aarch64-unknown-none` | * | | Bare ARM64, hardfloat
6874
`aarch64-unknown-none-softfloat` | * | | Bare ARM64, softfloat

src/tools/build-manifest/src/main.rs

+1
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ static TARGETS: &[&str] = &[
155155
];
156156

157157
static DOCS_TARGETS: &[&str] = &[
158+
"aarch64-unknown-linux-gnu",
158159
"i686-apple-darwin",
159160
"i686-pc-windows-gnu",
160161
"i686-pc-windows-msvc",

0 commit comments

Comments
 (0)