32bit Wine on macOS Catalina

Charles Davis cdavis5x at gmail.com
Sat May 14 17:49:21 CDT 2022


On Sat, May 14, 2022 at 4:04 PM Eddie Hillenbrand <eddie at graphdyne.com> wrote:
>
>
> Stefan Dösinger <stefandoesinger at 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).


-- 
Chip



More information about the wine-devel mailing list