Wine 64 bit

Alexandre Julliard julliard at winehq.org
Fri Jan 9 13:43:35 CST 2015


Ken Thomases <ken at codeweavers.com> writes:

> On Jan 9, 2015, at 6:01 AM, Maarten Lankhorst <maarten at mblankhorst.nl> wrote:
>
>> On 09-01-15 06:11, Ken Thomases wrote:
>> 
>>> The Mac driver crashes in a 64-bit build for reasons I haven't investigated, so you have to use the X11 driver.  You can do this using WINEDLLOVERRIDES="winemac.drv=d" or by setting this in the registry after the prefix is created:
>> Doesn't win64 and mac64 both use the %gs register for TLS?
>
> Yes, but this incarnation of Wine64 does not attempt to directly manipulate %gs.  My understanding is that it can't without a syscall, anyway.
>
>> Could that be related to the crash?
>
> It could be, but I don't think it is in this case.
>
> There is an incompatibility between the Win64 and OS X ABIs.  Win64
> apps are free to use %gs for their own purposes while OS X does not
> guarantee to leave it alone.  We're hoping that few actually do use
> %gs and, so, that they won't break.  We can't fix the problem but
> maybe it won't actually matter much in the real world.  That's the
> purpose of this experiment: to find out if that's so.

Actually, apps can't use it freely, it's always pointing to the TEB. Any
app that attempts direct TEB access will fail more or less mysteriously,
depending on what's at the same address in the OS X thread data.

Since 64-bit apps don't need the TEB exception chain, direct TEB access
should be less frequent than on 32-bit. Things like thread local storage
would presumably still use it though.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list