Tue Aug 30 17:20:58 CDT 2005
specifically provided by and anonymous mmap, presumably for performance
The proposed solution for this has been to prevent mmap from allocating over
the 3GB mark by reserving any free space over that limit with a chain of mmap
At least under Solaris there would appear to be two other "nicer" ways to
achieve the same result.
1. Allocate the windows heap with a call to libc malloc which at least under
Solaris maps memory from the stack top upward in memory.
2. For each mmap call locate a suitable unmapped memory area and then mmap
FIXED that area, a technique already used successfully in the Solaris
specific mmap code.
Of course none of this will prevent DSOs being loaded above the top of memory
but. from the wine codebase only the heap seems to be at issue.
For what it's worth I can't see Microsoft retaining this architecture since
the windows split is not likely to be the same into the future for example
with AMD64 and probably was different even for Alpha. I also acknowledge that
Alexandre and I disagree on this particular point.
More information about the wine-devel