include tag in uname -s for ARM64 hosts
Corinna Vinschen
corinna-cygwin@cygwin.com
Thu Nov 21 10:10:36 GMT 2024
On Nov 20 11:34, Jeremy Drake via Cygwin wrote:
> 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?)
Just -WOW64
For backward compat and it's a sole representative of an intel-intel
emulation anyway. I think we may safely ignore "WOW"
> i686 ARM64 -WOW64-ARM64
Just -ARM64
The suffix already indicates an emulator, the target CPU is in the
machine field.
> x86_64 x86_64 (N/A)
> x86_64 ARM64 -ARM64 (x86_64-on-ARM64 is not considered WOW64 by MS)
Yep, -ARM64. The target CPU is in the machine field.
> Theoretical:
> ARM64 ARM64 (N/A)
> Not worth worrying about:
> ARM ARM64 -WOW64-ARM (?)
Apart from not supporting 32 bit targets anymore (the tiny address space
is simply not feasible anymore) just -ARM64. Again, the target CPU is
in the machine field.
Corinna
More information about the Cygwin
mailing list