The build enviroment is MinGW-w64 and MSYS2. When I build `emacs-24', Emacs is being configured with Should Emacs use the GNU version of malloc? yes Should Emacs use a relocating allocator for buffers? yes Should Emacs use mmap(2) for buffer allocation? no With this configuration the x64 version is built just fine, but the x86 version build fails with make[2]: Entering directory > '/c/Users/Haroogan/Projects/GitHub/MINGW-packages/mingw-w64-emacs/src/.build/i686-w64-mingw32/lisp' > Compiling > /C/Users/Haroogan/Projects/GitHub/MINGW-packages/mingw-w64-emacs/src/emacs/lisp/emacs-lisp/macroexp.el > Error: Could not reserve dynamic heap area. I've checked what is called in this case and it seems to be fine at the first glance: #else /* USE_LSB_TAG */ static char * allocate_heap (void) { #ifdef _WIN64 size_t size = 0x4000000000ull; /* start by asking for 32GB */ #else /* We used to start with 2GB here, but on Windows 7 that would leave too little room in the address space for threads started by Windows on our behalf, e.g. when we pop up the file selection dialog. */ size_t size = 0x68000000; /* start by asking for 1.7GB */ <<< This one is used. #endif void *ptr = NULL; while (!ptr && size > 0x00100000) { reserved_heap_size = size; ptr = VirtualAlloc (NULL, get_reserved_heap_size (), MEM_RESERVE, PAGE_NOACCESS); size -= 0x00800000; /* if failed, decrease request by 8MB */ } return ptr; } #endif /* USE_LSB_TAG */ Any ideas?