http://bugs.winehq.org/show_bug.cgi?id=2609
Vitaliy Margolen vitaliy@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WONTFIX
--- Comment #13 from Vitaliy Margolen vitaliy@kievinfo.com 2007-11-24 13:43:00 --- This will be won't fix. Wine is bound to windows address space. And it have to "protect" it from anything else taking it. Like all the shared libraries for example.
Wine uses preloader to map most of the lover 2GB of address space for it's needs. Preloader is a minimalistic program that does not use glibc to avoid loading of any shared libraries.
The reason preloader was written, is to cope with new address randomization security feature of some distros (now all distros using this). All and I repeat all windows programs load at fixed address. If that address unavailable programs just crash / refuse to run. Programs that are compiled to load at fixed address can not be relocated. That's just the way it is.
Also there are several "special" address spaces that are reserved for "system use". Again, some programs use these hard-coded addresses to access some system structures (like Shared User Data). Again this can not be relocated.
The only way to "reserve" address space required by Wine is to .. map it. This is what you have virtual memory for...