Michael Cardenas wrote:
Why would address space separation break the native user dll? Shouldn't wine's address space handling be the same as windows? Maybe there's something I'm not understanding...
Well, there's Windows and then there's Windows ;-)
In Win9x, address spaces are handled in a peculiar way: the lower 2 GB of the address space are changed on context switch, while the upper 2 GB remain the same across all processes.
In particular, all 16-bit segments and certain 32-bit DLLs are de facto mapped shared across all 32-bit processes. The user.exe implementation relies on this fact, as I mentioned previously.
Before address space separation, we were handling things somewhat like Win 3.1 (with win32s), in that everything shared one space. After address space separation, we are handling things more like Win NT, in that nothing is shared between processes by default, except for explicit shared mappings (and shared PE sections).
In particular, 16-bit segments are not shared between processes (like they aren't in Win NT), which means that user.exe won't work.
Implementing the weird Win9x address space handling exactly under Linux would be difficult, and in any case we *want* to be more like Win NT for stability reasons ...
Bye, Ulrich