diff options
Diffstat (limited to 'rts/Linker.c')
-rw-r--r-- | rts/Linker.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/rts/Linker.c b/rts/Linker.c index ef08a282dc..6873b1a9b7 100644 --- a/rts/Linker.c +++ b/rts/Linker.c @@ -1080,7 +1080,7 @@ mmap_again: fixed = MAP_FIXED; goto mmap_again; #else - errorBelch("loadObj: failed to mmap() memory below 2Gb; " + errorBelch("mmapForLinker: failed to mmap() memory below 2Gb; " "asked for %lu bytes at %p. " "Try specifying an address with +RTS -xm<addr> -RTS", size, map_addr); @@ -1140,6 +1140,16 @@ mmap_again: return result; } +/* + * Map read/write pages in low memory. Returns NULL on failure. + */ +void * +mmapAnonForLinker (size_t bytes) +{ + return mmapForLinker (bytes, PROT_READ|PROT_WRITE, MAP_ANONYMOUS, -1, 0); +} + + /* Note [Memory protection in the linker] * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * For many years the linker would simply map all of its memory |