Hi, compiling binaries with the LARGE_ADDRESS_AWARE flag set is not enough to be able to use more than 2GB user space. To behave like WindowsXP booted with the /3GB option, at least the lpMaximumApplicationAddress in GetSystemInfo has to be changed to 0xBFFEFFFF and the virtual user space has to be reserved in mmap_init in mmap.c up to that address.
See Windows memory management:
http://ymei.freeshell.org/gopher/Book/Programming%20Applications%20for%20MS%... http://codeidol.com/other/inside-windows-2000/Memory-Management/Address-Spac...
I am quite sure that my proposed hack is not complete to behave like the /3GB option, but as stated in cpu.c 384 /* FIXME: the two entries below should be computed somehow... */ 385 cachedsi.lpMinimumApplicationAddress = (void *)0x00010000; 386 cachedsi.lpMaximumApplicationAddress = (void *)0x7FFEFFFF;
we should look at this in order to be able to use more than 2GB user space for apps that need it.
Regards Stefan Reimer