-
Notifications
You must be signed in to change notification settings - Fork 37
WIP: Enable and test AArch64 backend on Arm Windows machines #1175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
@rod-chapman - no need to review this one. @willieyz meant #1176 |
Yes...thank your for your heads-up, my apologies for the accidental click... |
@@ -175,7 +175,7 @@ jobs: | |||
strategy: | |||
fail-fast: false | |||
matrix: | |||
system: [windows-2025, windows-2022] | |||
system: [windows-2025, windows-2022, windows-11-arm] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we use MLK_FORCE_AARCH64
on windows-11-arm
to double-check that the system is detected as Arm?
@@ -175,7 +175,7 @@ jobs: | |||
strategy: | |||
fail-fast: false | |||
matrix: | |||
system: [windows-2025, windows-2022] | |||
system: [windows-2025, windows-2022, windows-11-arm] | |||
name: Quickcheck ${{ matrix.system }} | |||
runs-on: ${{ matrix.system }} | |||
steps: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Below, windows-latest
is used for mingw. Should we split this now and test with x86-Windows and Arm-Windows?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested forcing windows-11-arm
for the mingw test and setting MLK_FORCE_AARCH64
, but it fails. Any idea why? @mkannwischer @willieyz
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After dumping all preprocessor directives in the github summary of the mingw action, I doubt this is actually picking up an Arm instance: https://github.com/pq-code-package/mlkem-native/actions/runs/17483331582
Compiler location: /c/mingw64/bin/gcc
Compiler: gcc.exe (x86_64-posix-seh-rev2, Built by MinGW-W64 project) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiler directives:
#define DBL_MIN_EXP (-1021)
#define UINT_LEAST16_MAX 0xffff
#define FLT16_HAS_QUIET_NAN 1
#define __ATOMIC_ACQUIRE 2
...
#define __x86_64 1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See the comments -- I am not seeing any evidence yet that windows-11-arm
is actually picking up an Arm runner.
It appears that with the current MSVC setup job, an x86_64->x86_64 compiler is setup, which silently just works on To build an arm64 binary, one can pass I'm not sure if mingw64 supports Arm. |
Signed-off-by: willieyz <[email protected]>
73596b0
to
059364a
Compare
Signed-off-by: willieyz <[email protected]>
9283c9c
to
a618270
Compare
Hello @mkannwischer , @hanno-becker, This is the progress report about “Enable and test AArch64 backend on Windows Machine.” Thanks to Hanno’s suggestion, I added windows-11-arm to our quickcheck-windows CI job. passed To verify the functionality of
and compiling it with
worked fine.
For Next, we tried to use
needs to be rewritten without the trailing colon. (thanks for @mkannwischer 's suggestion)
But the output was not as expected. the result contained many blank lines and unrelated content (e.g., #pragma directives, typedefs like The following link contains the compiler option list for I am not sure yet if there are any useful options for our case. |
@willieyz Can you check in a minimal example if |
windows-11-arm
label inbase.yml
to enable the windows-11-arm CI testing