macOS Catalina is said to have dropped support for 32-bit apps. It’s not clear how much support is dropped.
Is there any supported way for a 64-bit app to request the kernel to create a 32-bit code segment?
netkas has experimented with this here. It seems like Apple has not removed 32-bit capability from the Darwin kernel itself, but merely disabled it as well as removing all the 32-bit libraries from the system.
To re-enable 32-bit processing from the kernel, just disable Apple's disabling function by adding no32exec=0
to your boot-args (sudo nvram boot-args="no32exec=0"
if SIP is disabled, if not run the same command from Recovery mode).
To get the 32-bit libraries back, just copy them from Mojave
Sources: Bringing back 32-bit apps to life
Thanks to Ken Thomases from CodeWeavers, who has posted quite a bit of information on wine-devel
mailing list on how CrossOver runs Win32 apps on macOS Catalina, we now know that Apple enabled i386_set_ldt
syscall for 64-bit processes.
So, aside from doing hack described in Max Coplan's answer, it's possible to create 32-bit segments in 64-bit processes.
An excerpt from Ken's mail:
Speaking of code segments, the big thing that Catalina provides that enables this all to work is the ability to create 32-bit code segments in a 64-bit process. For that, they enabled the use of i386_set_ldt() in 64-bit processes. The big caveat though, is that this functionality is restricted by System Integrity Protection (SIP). For now, your best bet to get this working for yourself is to disable SIP. (CrossOver doesn't require that, but the mechanism by which we accomplish that is in flux internally to Apple. When it settles down, I'll update this thread.)
Unfortunately the answer is just flat no. As stated here and here Apple started requiring AppStore apps to be 64 bit in 2018. They have been working on this for a while and with Catalina they are finally shutting the door entirely.
Edit: This sheds more light on app development.
dyld
still recognize 32-bit mach-O? 4) Does dyld
still recognize fat binaries? 5) Is a fat libSystem
still shipped in Catalina? 6) How many other fat binaries does Catalina still ship? None of these were answered.
Commented
Sep 11, 2019 at 15:19