diff options
author | Ben Gamari <ben@smart-cactus.org> | 2018-10-30 20:38:24 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-10-30 22:07:10 -0400 |
commit | 82a716431cc680392e332bc2b1a1fd0d7faa4cd8 (patch) | |
tree | c04c7bc5e265603ca5d3abea21e91a9a5d0be54e /docs | |
parent | 9cbf6f2baf793e361d41b9c36497c5601ff22253 (diff) | |
download | haskell-82a716431cc680392e332bc2b1a1fd0d7faa4cd8.tar.gz |
Revert "Add a RTS option -xp to load PIC object anywhere in address space"
This reverts commit 5403a8636fe82f971234873564f3a05393b89b7a.
Diffstat (limited to 'docs')
-rw-r--r-- | docs/users_guide/8.8.1-notes.rst | 4 | ||||
-rw-r--r-- | docs/users_guide/runtime_control.rst | 28 |
2 files changed, 2 insertions, 30 deletions
diff --git a/docs/users_guide/8.8.1-notes.rst b/docs/users_guide/8.8.1-notes.rst index 75645e4690..37bad13b5b 100644 --- a/docs/users_guide/8.8.1-notes.rst +++ b/docs/users_guide/8.8.1-notes.rst @@ -80,10 +80,6 @@ Runtime system alignment, lower the amount of wasted memory and lower the amount of in use memory. See :ghc-ticket:`13617`. Note that committed memory may be slightly higher. -- A new flag ``-xp`` is added on x86_64. When it is passed, the runtime linker - can load object files compiled with ``-fPIC -fexternal-dynamic-refs`` - anywhere in the address space. This used to be restricted to the low 2Gb. - Template Haskell ~~~~~~~~~~~~~~~~ diff --git a/docs/users_guide/runtime_control.rst b/docs/users_guide/runtime_control.rst index 674b8f73ac..0c38ac5919 100644 --- a/docs/users_guide/runtime_control.rst +++ b/docs/users_guide/runtime_control.rst @@ -241,28 +241,6 @@ Miscellaneous RTS options crashes if exception handling are enabled. In order to get more information in compiled executables, C code or DLLs symbols need to be available. - -.. rts-flag:: -xp - - On 64-bit machines, the runtime linker usually needs to map object code - into the low 2Gb of the address space, due to the x86_64 small memory model - where most symbol references are 32 bits. The problem is that this 2Gb of - address space can fill up, especially if you're loading a very large number - of object files into GHCi. - - This flag offers a workaround, albeit a slightly convoluted one. To be able - to load an object file outside of the low 2Gb, the object code needs to be - compiled with ``-fPIC -fexternal-dynamic-refs``. When the ``+RTS -xp`` flag - is passed, the linker will assume that all object files were compiled with - ``-fPIC -fexternal-dynamic-refs`` and load them anywhere in the address - space. It's up to you to arrange that the object files you load (including - all packages) were compiled in the right way. If this is not the case for - an object, the linker will probably fail with an error message when the - problem is detected. - - On some platforms where PIC is always the case, e.g. x86_64 MacOS X, this - flag is enabled by default. - .. rts-flag:: -xm ⟨address⟩ .. index:: @@ -272,10 +250,8 @@ Miscellaneous RTS options This option is for working around memory allocation problems only. Do not use unless GHCi fails with a message like - “\ ``failed to mmap() memory below 2Gb``\ ”. Consider recompiling - the objects with ``-fPIC -fexternal-dynamic-refs`` and using the - ``-xp`` flag instead. If you need to use this option to get GHCi - working on your machine, please file a bug. + “\ ``failed to mmap() memory below 2Gb``\ ”. If you need to use this + option to get GHCi working on your machine, please file a bug. On 64-bit machines, the RTS needs to allocate memory in the low 2Gb of the address space. Support for this across different operating |