4 ms·
> It also relies on a new feature of macOS Catalina to allow the creation of 32-bit code segments in a 64-bit process. How was this never brought up during all
by Razengan 7y ago
> It also relies on a new feature of macOS Catalina to allow the creation of 32-bit code segments in a 64-bit process.
How was this never brought up during all the "Catalina killed 32-bit" pitchforkings? Seems like a very important point, that has enabled the ability to emulate 32-bit apps.
- saagarjha 7y agoIt’s gated by an undocumented entitlement.
- 4ad 7y agoSince wine is using it, it seems it's not gated enough.
- saagarjha 7y agoI don't think the changes have been upstreamed into Wine. Plus I believe that being able to use the entitlement requires SIP to be disabled.
- exikyut 7y agoI don't know how to mentally parse this sentence. (Not snark; stumped.)
- kevingadd 7y ago"entitlements" are OSX Catalina's new(ish?) permission grants that applications need in order to access certain features like JIT or specific syscalls. The entitlement needed for this feature to work is undocumented. See here: https://developer.apple.com/documentation/bundleresources/entitlements https://developer.apple.com/documentation/bundleresources/en...
- my123 7y agoEntitlements aren't new, they existed since ages (OS X 10.11 already used them quite a bit).
- hoistbypetard 7y agoCatalina makes them all-but-required, though, even for non-store apps, between SIP (System Integrity Protection) and the on-by-default enforcement of notarization. On previous versions of macOS, regular developers could mostly avoid needing to touch them by just not being a store app. iOS developers have had to think about them since the early days.
- saagarjha 7y agoSandboxed applications relied on them even before that.
- bonzini 7y agoFrom the article: > 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.)
- soraminazuki 7y agoAFAICT, this won't let people run existing 32 bit apps out of the box. Instead, it enables the creation of 32 bit stub libraries that can call their 64 bit counterparts in behalf of the application. Although it's possible in theory to run existing 32 bit apps by creating stub libraries for 32 bit APIs, it's likely to require so much effort that I doubt this is going to happen.