diff options
author | Simon Marlow <marlowsd@gmail.com> | 2008-11-17 12:05:56 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2008-11-17 12:05:56 +0000 |
commit | 11f6f411b4a15b333423715b41b498f5f7745933 (patch) | |
tree | ef22fbd4c7f63372dbb7185fe57a17f7e5397be7 /includes | |
parent | cb90532723bd5801b8ac29973dd14e8e30b1e0a9 (diff) | |
download | haskell-11f6f411b4a15b333423715b41b498f5f7745933.tar.gz |
Attempt to fix #2512 and #2063; add +RTS -xm<address> -RTS option
On x86_64, the RTS needs to allocate memory in the low 2Gb of the
address space. On Linux we can do this with MAP_32BIT, but sometimes
this doesn't work (#2512) and other OSs don't support it at all
(#2063). So to work around this:
- Try MAP_32BIT first, if available.
- Otherwise, try allocating memory from a fixed address (by default
1Gb)
- We now provide an option to configure the address to allocate
from. This allows a workaround on machines where the default
breaks, and also provides a way for people to test workarounds
that we can incorporate in future releases.
Diffstat (limited to 'includes')
-rw-r--r-- | includes/RtsFlags.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/includes/RtsFlags.h b/includes/RtsFlags.h index 11133efe1f..55b00bb2a0 100644 --- a/includes/RtsFlags.h +++ b/includes/RtsFlags.h @@ -121,6 +121,8 @@ struct CONCURRENT_FLAGS { struct MISC_FLAGS { int tickInterval; /* in milliseconds */ rtsBool install_signal_handlers; + StgWord linkerMemBase; /* address to ask the OS for memory + * for the linker, NULL ==> off */ }; #ifdef PAR |