> I think the problem is that they changed the value of USER_CS and
> USER_DS (the selectors used when running in 32-bit mode). We use these
> to switch from 16 to 32-bit code, and their value is hardcoded in the
> relay code at compile-time.
> 
> So it will work as long as you also compile on a win4lin-patched
> kernel. But if you compile when running a normal kernel and run on the
> patched one, or the other way around, it will break.
> 
> --
> Alexandre Julliard
> [EMAIL PROTECTED]


This is EXACTLY what the problem was.  We changed USER_CS and USER_DS
because we needed to make room in the GDT for Windows selectors.  But
it turned out that we could leave USER_CS and USER_DS where they were
for non win4lin processes.  So that is what our new code does.  The
USER_CS and USER_DS values are now put back to what they were (at least
that is what the new patch will do).

Now, the new patch actually supports both the original and the moved
values so if you compiled a binary on a broken win4lin patch system
it will still work with new win4lin kernels.  BUT it will not work
on a non win4lin system.  Therefore, once we get the new patch out,
you really should recompile any binaries that use USER_CS and USER_DS.
Sorry about the screw-up folks.  Sigh....

Richard <rwb>

-- 
Richard Bass
NeTraverse, Inc.
mailto: [EMAIL PROTECTED]
_______________________________________________
Win4Lin-users mailing list
[EMAIL PROTECTED]
http://lists.trelos.com/mailman/listinfo/win4lin-users

Reply via email to