18

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?

15

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

| improve this answer | |
5

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

| improve this answer | |
-2

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.

| improve this answer | |
  • 1
    You're talking about the organizational side of things which is what all the news are about, but the question is purely technical. – Grishka Jul 30 '19 at 20:42
  • @Grishka What are you talking about? There is only one side of this question, the technical side. Apps either work or they don't. What organizational side is there? – Thomas Nelson Jul 31 '19 at 0:53
  • 1
    32-bit apps don't work as is on an unmodified OS. There's a lot of components to 32-bit support on a 64-bit OS. The question is how much of those are removed, if any, and whether it is feasible/possible at all to restore this support by modifying the system. – Grishka Jul 31 '19 at 10:19
  • 6
    This answer is wrong and unhelpful. OP essentially asks 1) Does XNU still recognize 32-bit mach-O? 2) Does XNU still recognize fat binaries? 3) Does 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. – alexchandel Sep 11 '19 at 15:19
  • This should shine more light on it – Max Coplan Oct 31 '19 at 19:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .