WineHQ
Wine Forums

Board index » WineHQ » Wine Help » macOS




 Page 1 of 1 [ 8 posts ] 



 
Author Message
 Post Posted: Wed Jun 26, 2019 8:19 am 
Offline
Newbie
Newbie

Joined: Wed Jun 26, 2019 8:01 am
Posts: 2
With 32-bit program support going away on the Mac with Catalina we need to start seriously figuring out how to have WINE run on these newer systems so that reasonable instructions can be provided.

Right now we can use VMs (VirtualBox, Parallels, VM Fusion) using other operating systems (Ubuntu, Red Hat, or if you can actually get it to work an older version of the MacOS) thought doing this correctly is kind of 'uhhh, how do you do that?'

But is that the best (ie easiest) solution we can come up with or is there some other method on the table we could use?


Top 
 Post Posted: Wed Jun 26, 2019 7:13 pm 
Offline
Level 4
Level 4

Joined: Mon Dec 25, 2017 12:11 pm
Posts: 229
Multiple options are being looked into by CodeWeavers but no official announcement had been made.

Right now if someone wants to use wine they shouldn’t upgrade past Mojave if you want to use Wine natively on macOS.


Parallels Desktop (since that uses the native hypervisor.framework) can be used to run Windows with DirectX10 support at the moment maybe they will support DirectX11 sooner or later.

Booting Linux would also be an option but I would avoid Ubuntu (recent multilib debacle) instead picking Pop!_OS as its still Ubuntu/Debian based but includes much newer packages/libs and has Lutris/PlayOnLinux already in the store as well as Steam.


Top 
 Post Posted: Tue Jul 09, 2019 4:09 pm 
Offline
Level 7
Level 7
User avatar

Joined: Tue Nov 22, 2016 5:39 pm
Posts: 802
It's not really that we need to figure out what needs to be done, someone needs to actually do it. CodeWeavers is working on it, AFAIK.
All the options we have are pretty difficult - Apple was pretty throughout with removing 32bit support. What's left is virtualization and emulation, and integrating that is a PITA. 32bit <-> 64bit thunking is basically a must. And that takes time and a lot of effort. Not to mention getting the performance right...


Top 
 Post Posted: Tue Jul 09, 2019 8:54 pm 
Offline
Level 4
Level 4

Joined: Mon Dec 25, 2017 12:11 pm
Posts: 229
DarkShadow44 wrote:
It's not really that we need to figure out what needs to be done, someone needs to actually do it. CodeWeavers is working on it, AFAIK.
All the options we have are pretty difficult - Apple was pretty throughout with removing 32bit support. What's left is virtualization and emulation, and integrating that is a PITA. 32bit <-> 64bit thunking is basically a must. And that takes time and a lot of effort. Not to mention getting the performance right...


I agree. Catalina can’t even run 32Bit code natively as someone told me they tested running a 32Bit binary with all needed Dylibs/frameworks but it failed at the kernel level..

It’s possible to use hyperviser.framework but I haven’t seen any Public work on that being used for wine.

The trunking idea public code has even tested but no luck yet

For now anyone running macOS I would recommend not upgrading past macOS Mojave


Top 
 Post Posted: Wed Jul 10, 2019 3:16 am 
Offline
Level 7
Level 7
User avatar

Joined: Tue Nov 22, 2016 5:39 pm
Posts: 802
Gcenx wrote:
I agree. Catalina can’t even run 32Bit code natively as someone told me they tested running a 32Bit binary with all needed Dylibs/frameworks but it failed at the kernel level..

I've yet to check their GDT, but it seems they simply don't allow for 32bit segments anymore. If we could load a new GDT...
Would still require tons of thunking though.

Gcenx wrote:
The trunking idea public code has even tested but no luck yet

What do you mean? Hangover?


Top 
 Post Posted: Wed Jul 10, 2019 7:42 am 
Offline
Level 4
Level 4

Joined: Mon Dec 25, 2017 12:11 pm
Posts: 229
DarkShadow44 wrote:
I've yet to check their GDT, but it seems they simply don't allow for 32bit segments anymore. If we could load a new GDT...
Would still require tons of thunking though.

The kernel blocks 32Bit code execution. I’m not sure what actaniym you mean with GDT?

DarkShadow44 wrote:
What do you mean? Hangover?

Tried hangover on macOS and it’s useless at precent it actually loads less things then it does on an arm64 system.

No I’m talking about a custom version of llvm/clang that ccdavis worked with that’s looks like builtin trunking generation code and a new flag -mwine32.

At the moment -mwine32 is useless but the fact it has builtin support for ms_hook_proludge means it’s great for compiling wine as it’s now used within Phoenicis-Winebuild for the macOS environment after I brought it up with qparis.


Top 
 Post Posted: Wed Jul 10, 2019 1:33 pm 
Offline
Level 7
Level 7
User avatar

Joined: Tue Nov 22, 2016 5:39 pm
Posts: 802
Gcenx wrote:
The kernel blocks 32Bit code execution. I’m not sure what actaniym you mean with GDT?

I mean the Global Descriptor Table. AFAIK 32Bit support is a CPU feature, not a kernel feature. Even when running a 64bit process on linux/windows, you can switch to executing 32bit code easily. But in macOS you can't, because you need a corresponding entry for 32bit in the GDT.
If I'm not mistaken, that would allow us to run 32Bit code without needing emulation or virtualization.

Gcenx wrote:
No I’m talking about a custom version of llvm/clang that ccdavis worked with that’s looks like builtin trunking generation code and a new flag -mwine32.
At the moment -mwine32 is useless but the fact it has builtin support for ms_hook_proludge means it’s great for compiling wine as it’s now used within Phoenicis-Winebuild for the macOS environment after I brought it up with qparis.

I don't know about that, where'd you hear this? How does this address the conversion of structures inside the thunks?


Top 
 Post Posted: Wed Jul 10, 2019 2:35 pm 
Offline
Level 4
Level 4

Joined: Mon Dec 25, 2017 12:11 pm
Posts: 229
DarkShadow44 wrote:
I mean the Global Descriptor Table. AFAIK 32Bit support is a CPU feature, not a kernel feature. Even when running a 64bit process on linux/windows, you can switch to executing 32bit code easily. But in macOS you can't, because you need a corresponding entry for 32bit in the GDT.
If I'm not mistaken, that would allow us to run 32Bit code without needing emulation or virtualization.


Ah ok I was thinking of something else that’s what a lack of sleep does, while it’s true the CPU can still run 32Bit code but if the kernel doesn’t have any 32Bit features embeddd (This is Apple so I expect they didn’t include any 32Bit support within the new Kernel)

DarkShadow44 wrote:
I don't know about that, where'd you hear this? How does this address the conversion of structures inside the thunks?


It was mentioned on the last wine conference video I remember them talking about running 32Bit code within a 64bit thread and it ran at native speeds.

As for where I heard about the custom version of Clang I just checked what ccdavis had visible on github https://github.com/cdavis5e/clang/tree/wine32 and he also had a version of llvm to go with it also. Seems they want to use llvm to handle the trunking unless I’m not understanding something check out the code within clang and llvm. As I see mentioning of handling 32>64 bit structures and the reverse or just do a quick check over the commits


Top 
Display posts from previous:  Sort by  
 
 Page 1 of 1 [ 8 posts ] 




Board index » WineHQ » Wine Help » macOS


Who is online

Users browsing this forum: No registered users and 4 guests

 
 

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: