linux mmap bug ? not filling in allocation gaps

Mike McCormack mike at codeweavers.com
Wed Mar 22 02:31:23 CST 2006


Geoff Brimhall wrote:

> Wrote a test mmap binary to fill a process address
> space, it created a similar gap between the executable
> load address and the loaded shared libraries,
> eventually failing mmap calls when it hit the stack
> address space. When I updated the test app to
> explicitly mmap in the gap area via specifying the
> aligned start address, the mmap call succeeded.
> 
> I can't be the first person to notice this. Are there
> any TODO solutions for this ?

Wine's holey memory map has been discussed before:

http://www.winehq.com/pipermail/wine-devel/2006-February/044979.html

The "truely correct" solution is probably to implement Windows 
compatible memory allocation in the Linux kernel, but there's other 
hacks that could be done in user space.  Just a matter of finding 
something that Alexandre is willing to live with.

A preload-ish type thing that overrode libc's mmap/munmap calls seems 
pausible to me.

Mike



More information about the wine-devel mailing list