Skip to content

Commit d68a535

Browse files
committed
[win][arm64ec] Add testing for Arm64EC Windows
* Add a native and cross-build Arm64EC job, using beta as stable doesn't have <rust-lang/rust#143387>. * Add a dedicated arm64ec.asm test file with correctly mangled names. * Pass the correct cl and lib flags to the NMake test to build as Arm64EC.
1 parent ca81dcc commit d68a535

File tree

4 files changed

+31
-2
lines changed

4 files changed

+31
-2
lines changed

.github/workflows/main.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,15 @@ jobs:
105105
os: windows-11-arm
106106
rust: stable
107107
target: aarch64-pc-windows-msvc
108+
- build: cross-windows-arm64ec
109+
os: windows-latest
110+
rust: beta
111+
target: arm64ec-pc-windows-msvc
112+
no_run: --no-run
113+
- build: windows-arm64ec
114+
os: windows-11-arm
115+
rust: beta
116+
target: arm64ec-pc-windows-msvc
108117
- build: cross-win64
109118
os: windows-11-arm
110119
rust: stable

dev-tools/cc-test/build.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,18 @@ fn main() {
134134
.arg("/fsrc/NMakefile")
135135
.env("OUT_DIR", &out)
136136
.env("CC_FRONTEND", cc_frontend)
137+
.env(
138+
"EXTRA_CFLAGS",
139+
if arch == "arm64ec" { "-arm64EC" } else { "" },
140+
)
141+
.env(
142+
"EXTRA_LIBFLAGS",
143+
if arch == "arm64ec" {
144+
"-machine:arm64ec"
145+
} else {
146+
""
147+
},
148+
)
137149
.status()
138150
.unwrap();
139151
assert!(status.success());

dev-tools/cc-test/src/NMakefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
all: $(OUT_DIR)/msvc.lib $(OUT_DIR)/msvc.exe
22

33
!IF "$(CC_FRONTEND)" == "MSVC"
4-
EXTRA_CFLAGS=-nologo
4+
EXTRA_CFLAGS=$(EXTRA_CFLAGS) -nologo
55
CFLAG_OUTPUT=-Fo
66
!ELSE
77
CFLAG_OUTPUT=-o
88
!ENDIF
99

1010
$(OUT_DIR)/msvc.lib: $(OUT_DIR)/msvc.o
11-
lib -nologo -out:$(OUT_DIR)/msvc.lib $(OUT_DIR)/msvc.o
11+
lib $(EXTRA_LIBFLAGS) -nologo -out:$(OUT_DIR)/msvc.lib $(OUT_DIR)/msvc.o
1212

1313
$(OUT_DIR)/msvc.o: src/msvc.c
1414
$(CC) $(EXTRA_CFLAGS) -c $(CFLAG_OUTPUT)$@ src/msvc.c -MD

dev-tools/cc-test/src/arm64ec.asm

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
AREA |.text|, CODE, READONLY
2+
GLOBAL |#asm|
3+
ALIGN 4
4+
|#asm| PROC
5+
mov w0, #7
6+
ret
7+
ENDP
8+
END

0 commit comments

Comments
 (0)