@@ -278,6 +278,11 @@ jobs:
278278 target : aarch64-pc-windows-msvc
279279 os : windows-11-arm
280280 # ------------------------------------------------------------
281+ # aarch64-pc-windows-gnullvm
282+ - rust : nightly
283+ target : aarch64-pc-windows-gnullvm
284+ os : windows-11-arm
285+ # ------------------------------------------------------------
281286 # aarch64_be-unknown-linux-gnu
282287 - rust : nightly
283288 target : aarch64_be-unknown-linux-gnu
@@ -314,11 +319,6 @@ jobs:
314319 - rust : nightly
315320 target : aarch64-linux-android
316321 # ------------------------------------------------------------
317- # aarch64-pc-windows-gnullvm
318- # TODO: flaky
319- # - rust: nightly
320- # target: aarch64-pc-windows-gnullvm
321- # ------------------------------------------------------------
322322 # armv5te-unknown-linux-gnueabi
323323 - rust : nightly-2021-08-21 # Rust 1.56, LLVM 12
324324 target : armv5te-unknown-linux-gnueabi
@@ -573,8 +573,10 @@ jobs:
573573 printf '%s\n' "RUSTDOCFLAGS=${RUSTDOCFLAGS} ${{ matrix.flags }}" >>"${GITHUB_ENV}"
574574 if: matrix.flags != ''
575575 - run : printf '%s\n' "RUSTFLAGS=${RUSTFLAGS} -D linker_messages" >>"${GITHUB_ENV}"
576- # Exclude aarch64-pc-windows-msvc due to "error: linker stdout: C:\a\portable-atomic\portable-atomic\target\debug\deps\portable_atomic-6f0d7f05900c9263.exe : warning LNK4072: section count 101 exceeds max (96); image may not run" error
577- if : matrix.rust == 'nightly' && matrix.target != 'aarch64-pc-windows-msvc'
576+ # TODO(aarch64-pc-windows-msvc): error: linker stdout: C:\a\portable-atomic\portable-atomic\target\debug\deps\portable_atomic-6f0d7f05900c9263.exe : warning LNK4072: section count 101 exceeds max (96); image may not run
577+ # TODO(aarch64-pc-windows-gnullvm): error: linker stderr: clang-18: argument unused during compilation: '-nolibc' [-Wunused-command-line-argument]␍
578+ # clang-18: argument unused during compilation: '-no-pie' [-Wunused-command-line-argument]␍
579+ if : matrix.rust == 'nightly' && !startsWith(matrix.target, 'aarch64-pc-windows-')
578580 # for f16 and f128
579581 # https://github.com/rust-lang/rust/blob/ffb9d94dcf4ade0d534842be3672d5e9f47e1333/compiler/rustc_codegen_llvm/src/llvm_util.rs#L373
580582 # https://github.com/rust-lang/rust/blob/ffb9d94dcf4ade0d534842be3672d5e9f47e1333/compiler/rustc_codegen_cranelift/src/lib.rs#L203
@@ -684,24 +686,21 @@ jobs:
684686 env :
685687 RUSTDOCFLAGS : ${{ env.RUSTDOCFLAGS }} -C target-feature=+lse
686688 RUSTFLAGS : ${{ env.RUSTFLAGS }} -C target-feature=+lse
687- # QEMU + Wine is slow so test only cases where OS-specific code is called.
688- if : (startsWith(matrix.target, 'aarch64') || startsWith(matrix.target, 'arm64')) && !contains(steps.prepare.outputs.cfgs, ',target_feature="lse",') && matrix.target != 'aarch64-pc-windows-gnullvm'
689+ if : (startsWith(matrix.target, 'aarch64') || startsWith(matrix.target, 'arm64')) && !contains(steps.prepare.outputs.cfgs, ',target_feature="lse",')
689690 # aarch64 +lse,+lse2
690691 # macOS is skipped because it is +lse,+lse2 by default
691692 - run : tools/test.sh -vv --tests ${TARGET:-} ${BUILD_STD:-} ${RELEASE:-}
692693 env :
693694 RUSTDOCFLAGS : ${{ env.RUSTDOCFLAGS }} -C target-feature=+lse,+lse2
694695 RUSTFLAGS : ${{ env.RUSTFLAGS }} -C target-feature=+lse,+lse2
695- # QEMU + Wine is slow so test only cases where OS-specific code is called.
696- if : (startsWith(matrix.target, 'aarch64') || startsWith(matrix.target, 'arm64')) && !contains(matrix.target, '-darwin') && matrix.target != 'aarch64-pc-windows-gnullvm'
696+ if : (startsWith(matrix.target, 'aarch64') || startsWith(matrix.target, 'arm64')) && !contains(matrix.target, '-darwin')
697697 # aarch64 +lse2,+lse128
698698 - run : tools/test.sh -vv --tests ${TARGET:-} ${BUILD_STD:-} ${RELEASE:-}
699699 env :
700700 RUSTDOCFLAGS : ${{ env.RUSTDOCFLAGS }} -C target-feature=+lse2,+lse128
701701 RUSTFLAGS : ${{ env.RUSTFLAGS }} -C target-feature=+lse2,+lse128
702- # QEMU + Wine is slow so test only cases where OS-specific code is called.
703702 # Only QEMU supports this, so skip other runners.
704- if : (startsWith(matrix.target, 'aarch64') || startsWith(matrix.target, 'arm64')) && !contains( matrix.target , '-darwin ') && ! contains(matrix.os, '-arm') && matrix.target != 'aarch64-pc-windows-gnullvm'
703+ if : (startsWith(matrix.target, 'aarch64') || startsWith(matrix.target, 'arm64')) && !(startsWith( matrix.os , 'macos ') || contains(matrix.os, '-arm'))
705704 # powerpc64 pwr7
706705 # powerpc64- (big-endian) is skipped because it is pre-pwr8 by default
707706 - run : tools/test.sh -vv --tests ${TARGET:-} ${BUILD_STD:-} ${RELEASE:-}
0 commit comments