The following fails on hurd-amd64 with MAP_FAILED:

    void* ptr = mmap(NULL, 0x1000, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_32BIT, -1, 0);

This fails because the lower 32 bit address space has been marked PROT_NONE by hurd/exec/exec.c in order to catch pointer truncation on 64 bit. I can see that this protection is applied to any program that can be mapped anywhere and is therefore presumed to not specifically require the low 4GB address space.

Should MAP_32BIT be supported on hurd-amd64 ?

Mike.



Reply via email to