Skip to content

Commit 5071801

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 b7b835e + 874cbb8 commit 5071801

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

@@ -635,23 +638,6 @@ jobs:
635638
SCRIPT: python x.py dist
636639
<<: *job-windows-xl
637640

638-
auto-fallible:
639-
<<: *base-ci-job
640-
name: auto-fallible
641-
env:
642-
<<: [*shared-ci-variables, *dummy-variables]
643-
if: github.event_name == 'push' && github.ref == 'refs/heads/auto' && github.repository == 'rust-lang-ci/rust'
644-
strategy:
645-
fail-fast: false
646-
matrix:
647-
include:
648-
#############################
649-
# Linux/Docker builders #
650-
#############################
651-
652-
- name: aarch64-gnu
653-
<<: *job-aarch64-linux
654-
655641
try:
656642
<<: *base-ci-job
657643
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)