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

-- 
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