On Nov 21 10:15, Jeremy Drake via Cygwin wrote: > On Thu, 21 Nov 2024, Corinna Vinschen via Cygwin wrote: > > > > 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. > > > > > ARM ARM64 -WOW64-ARM64 > > > > 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. > > > Interesting. So basically disregard the wincap.is_wow64 (which is gone > anyway in supported versions), and only look at the host arch, appending a > tag only when it's different from Cygwin's own arch, with the special case > that x64 is called "WOW64"? (Maybe the special case should be if the host > is x64 AND Cygwin is i686, otherwise use x64, just in case MS does > something useful like adding ARM64 emulation to x86_64)
I bet, they won't. There's no reason to. These emulators are meant to enable old, paid applications to run on a new system. Now consider that 99.9% of Windows apps are x86{_64} and 0.01% of apps are ARM64. Of these 0.01%, 100% are available as x86{_64} app anyway. IMHO: if (IsWow64Process2 (GetCurrentProcess (), &emulated, &hosted)) && emulated != IMAGE_FILE_MACHINE_UNKNOWN) if (hosted == IMAGE_FILE_MACHINE_AMD64) strcat (sysname, "-WOW64"); else if (hosted == IMAGE_FILE_MACHINE_ARM64) strcat (sysname, "-ARM64"); else stract (sysname, "-WTF"); } And the target machine is in the machine field, so the info should be sufficient to identify the emulation environment. 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