Windows allocates heap in low address space
@Phyx made a great observation on IRC: on Windows the MBlock allocator currently allocates MBlocks in low memory. This makes life significantly harder for the linker.
VirtualAlloc has a flag,
MAP_TOP_DOWN, to address this use-case. Fixing this should significantly improve the reliability of linking on Windows.