I mentioned this briefly on cygwin-patches during the review of the fix
for a deadlock when running under emulation on ARM64 hosts, but I wanted
to discuss it more thoroughly here now that that is merged.

It seems like it would be useful, perhaps for stats tracking purposes like
MSYS2 does [1], to indicate when Cygwin is running under emulation in
uname.  When i686 Cygwin was supported, there was a `-WOW64` tag appended
to the sysname field (uname -s) when it was running under WOW64, so it
seems to make sense to me to do something similar (say, appending
`-ARM64`).

There was some concern that appending -ARM64 might cause confusion with a
future native ARM64 version of Cygwin [2], but technically it would not
because the architecture of Cygwin is reported in the "machine" field of
uname (uname -m), while my proposal is to append the host architecture to
the sysname field (uname -s), only when it doesn't match the architecture
of Cygwin iteself.

I'm prototyping this based on Cygwin 3.3.6, because still supporting i686
results in a more complete test matrix (I don't want to come up with
something that isn't extensible if Microsoft ever adds something new to
the matrix):

Cygwin  Host    Suffix
i686    i686    (N/A)
i686    x86_64  -WOW64-x64 (or omit arch to match existing?)
i686    ARM64   -WOW64-ARM64
x86_64  x86_64  (N/A)
x86_64  ARM64   -ARM64 (x86_64-on-ARM64 is not considered WOW64 by MS)
Theoretical:
ARM64   ARM64   (N/A)
Not worth worrying about:
ARM     ARM64   -WOW64-ARM (?)
I'm mostly just curious how the algorithm would act there, there should be
*zero* interest in actually porting Cygwin to 32-bit ARM, MS just dropped
support for 32-bit ARM binaries on ARM64 in Windows 11 24H2.

Thoughts?

[1]: https://github.com/msys2/MSYS2-packages/discussions/2832
[2]: https://github.com/msys2/msys2-runtime/issues/238#issuecomment-2481438646

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to