On Sat, May 14, 2022 at 4:04 PM Eddie Hillenbrand eddie@graphdyne.com wrote:
Stefan Dösinger stefandoesinger@gmail.com writes:
[[PGP Signed Part:Undecided]] Am Mittwoch, 20. April 2022, 15:55:13 EAT schrieb Eddie Hillenbrand:
My goal is to compile everything on Catalina and to run 32bit Wine on Catalina. I can compile 64bit Wine without a problem and 32bit Wine compiles against the MacOSX10.13.sdk.
However, the PE split is making progress in Wine, and winex11.drv is now split into a .so and .dll file. winemac.drv will be next. [...] Once the graphics driver is in place GUI apps won't be far away.
How do I get involved and help with that effort?
https://www.winehq.org/getinvolved
Studying how it was done in winex11.drv may be instructive.
How does a change in executable format get around the WindowServer limitation?
Simple: Wine will now run 32-bit programs as a 64-bit process, using 64-bit system interfaces. This is, in fact, how Windows itself supports 32-bit programs on a 64-bit kernel.
The program-facing parts of Wine (*.dll files) will be in PE32 format. But the host-facing parts (*.so files) will still be in the native binary format of the host system--in the case of Mac OS, that's 64-bit Mach-O. The PE parts enter the Unix parts by making a "syscall" (i.e. not a real host syscall, just a sequence that looks a lot like an NT syscall to user-mode code), so from the program's point of view, all the host-specific code runs in "kernel mode." 32-bit programs are supported the same way they are in Windows, namely, with the Windows-on-Win64 subsystem, using thunks inside special WOW64 DLLs (wow64*.dll).