about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorArlo Siemsen <arsiem@microsoft.com>2020-08-25 10:30:12 -0700
committerArlo Siemsen <arsiem@microsoft.com>2020-09-25 15:08:18 -0700
commit0a4dc8bc161c68320a60a6bde525adae258b6252 (patch)
tree2333eac1e48781da40ad5b0a52e48f7bb37d5fa6 /src
parent10ef7f9ebf8a497fe2ef8aa0d32b3776e85134a1 (diff)
downloadrust-0a4dc8bc161c68320a60a6bde525adae258b6252.tar.gz
rust-0a4dc8bc161c68320a60a6bde525adae258b6252.zip
Adds a GitHub Actions CI build for aarch64-pc-windows-msvc via cross-compilation on an x86_64 host.
This promotes aarch64-pc-windows-msvc from a Tier 2 Compilation Target (std) to a Tier 2 Development Platform (std+rustc+cargo+tools).

Fixes #72881
Diffstat (limited to 'src')
-rw-r--r--src/ci/github-actions/ci.yml14
-rwxr-xr-xsrc/ci/scripts/install-mingw.sh7
-rw-r--r--src/doc/rustc/src/platform-support.md2
3 files changed, 21 insertions, 2 deletions
diff --git a/src/ci/github-actions/ci.yml b/src/ci/github-actions/ci.yml
index ea7e65a1168..037bcb2a740 100644
--- a/src/ci/github-actions/ci.yml
+++ b/src/ci/github-actions/ci.yml
@@ -576,7 +576,7 @@ jobs:
               RUST_CONFIGURE_ARGS: >-
                 --build=x86_64-pc-windows-msvc
                 --host=x86_64-pc-windows-msvc
-                --target=x86_64-pc-windows-msvc,aarch64-pc-windows-msvc
+                --target=x86_64-pc-windows-msvc
                 --enable-full-tools
                 --enable-profiler
               SCRIPT: python x.py dist
@@ -595,6 +595,18 @@ jobs:
               DIST_REQUIRE_ALL_TOOLS: 1
             <<: *job-windows-xl
 
+          - name: dist-aarch64-msvc
+            env:
+              RUST_CONFIGURE_ARGS: >-
+                --build=x86_64-pc-windows-msvc
+                --host=aarch64-pc-windows-msvc
+                --enable-full-tools
+                --enable-profiler
+              SCRIPT: python x.py dist
+              # RLS does not build for aarch64-pc-windows-msvc. See rust-lang/rls#1693
+              DIST_REQUIRE_ALL_TOOLS: 0
+            <<: *job-windows-xl
+
           - name: dist-i686-mingw
             env:
               RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-full-tools --enable-profiler
diff --git a/src/ci/scripts/install-mingw.sh b/src/ci/scripts/install-mingw.sh
index ae85d5cab01..1685fbbbbba 100755
--- a/src/ci/scripts/install-mingw.sh
+++ b/src/ci/scripts/install-mingw.sh
@@ -42,6 +42,13 @@ if isWindows; then
             arch=x86_64
             mingw_archive="${MINGW_ARCHIVE_64}"
             ;;
+        *aarch64*)
+            # aarch64 is a cross-compiled target. Use the x86_64
+            # mingw, since that's the host architecture.
+            bits=64
+            arch=x86_64
+            mingw_archive="${MINGW_ARCHIVE_64}"
+            ;;
         *)
             echo "src/ci/scripts/install-mingw.sh can't detect the builder's architecture"
             echo "please tweak it to recognize the builder named '${CI_JOB_NAME}'"
diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md
index 9b2474a95df..43dcf05833d 100644
--- a/src/doc/rustc/src/platform-support.md
+++ b/src/doc/rustc/src/platform-support.md
@@ -60,7 +60,7 @@ target | std | host | notes
 `aarch64-apple-ios` | ✓[^apple] |  | ARM64 iOS
 `aarch64-fuchsia` | ✓ |  | ARM64 Fuchsia
 `aarch64-linux-android` | ✓ |  | ARM64 Android
-`aarch64-pc-windows-msvc` | ✓ |  | ARM64 Windows MSVC
+`aarch64-pc-windows-msvc` | ✓ | ✓ | ARM64 Windows MSVC
 `aarch64-unknown-linux-gnu` | ✓ | ✓ | ARM64 Linux (kernel 4.2, glibc 2.17)
 `aarch64-unknown-linux-musl` | ✓ | ✓ | ARM64 Linux with MUSL
 `aarch64-unknown-none` | * |  | Bare ARM64, hardfloat