>С mmap'ом тоже пока не выгорает. Должно выгореть с анонимным ммапом, MAP_ANON + (возможно) MAP_FIXED, и адрес соответственно адрес выше чем 0xffffffff.
То есть, где-то в программе надо объявить свои malloc/new free/delete работающие с памятью, полученной через mmap(0xffffffff, size, PROT_READ|WRITE, MAP_ANONYMOUS). Соответственно во free/delete делать munmap, размеры выделенных блоков либо хранить в какой-нибудь мапе, либо изначально создавать большой mmap() выше 4х гигов и в нём выделять память.
Интересная проблемка.