Skip to content

Commit e6fd074

Browse files
committed
ci: Test aarch64-pc-windows-gnullvm on Windows host
1 parent a0f9e1c commit e6fd074

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

.github/.cspell/project-dictionary.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ negs
122122
newrepo
123123
newtype
124124
nngrk
125+
nolibc
125126
nostartfiles
126127
opensbi
127128
osxsave
@@ -197,6 +198,7 @@ vtable
197198
vtables
198199
wfxt
199200
wokwi
201+
Wunused
200202
xadd
201203
xchg
202204
xgetbv

.github/workflows/ci.yml

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)