Native stack overlapping system heap base address on some systems

Mike Hearn mh at codeweavers.com
Wed Mar 23 05:24:01 CST 2005


Hi,

Bug #2741 comes from a user who was able to grab a dump of the VM mappings
when the following error occurred:

  HEAP_CreateSystemHeap system heap base address 0x80000000 not available

I know people have been seeing this intermittently for a while now, we
have a few CodeWeavers support tickets with this problem too. The issue
seems to be that the Linux native (main thread) stack was allocated here:

   7fffb000     20K rwx--    [ stack ]

Surprise surprise, 0x7fffb000 + (1024 * 20) == 0x80000000

Unfortunately I lack enough knowledge about the kernels VM algorithms to
say why it's being allocated here. For comparison on my Fedora Core 3
machine:

   fef0d000     16K rwx--    [ stack ]

One other thing I don't understand. It seems the stack and the system heap
overlap by exactly 1 byte, otherwise the mmap would not fail. But, this
area is (theoretically) being protected by the preloader: so how can this
be? There is something I'm missing here, I suspect an off-by-one error in
my arithmetic.

thanks -mike




More information about the wine-devel mailing list