[commit: ghc] wip/T16212-fixed, wip/sgraf-no-exnstr: Add a RTS option -xp to load PIC object anywhere in address space (e29b1ee)
git at git.haskell.org
git at git.haskell.org
Fri Feb 1 05:55:13 UTC 2019
Repository : ssh://git@git.haskell.org/ghc
On branches: wip/T16212-fixed,wip/sgraf-no-exnstr
Link : http://ghc.haskell.org/trac/ghc/changeset/e29b1ee72d77d5a06ac949f9dcc80108243a25c0/ghc
>---------------------------------------------------------------
commit e29b1ee72d77d5a06ac949f9dcc80108243a25c0
Author: Zejun Wu <watashi at fb.com>
Date: Fri Dec 28 20:37:13 2018 -0800
Add a RTS option -xp to load PIC object anywhere in address space
Summary:
This re-applies {D5195} with fixes for i386:
* Fix unused label warnings, see {D5230} or {D5273}
* Fix a silly bug introduced by moving `#if`
{P190}
Add a RTS option -xp to load PIC object anywhere in address space. We do
this by relaxing the requirement of <0x80000000 result of
`mmapForLinker` and implying USE_CONTIGUOUS_MMAP.
We also need to change calls to `ocInit` and `ocGetNames` to avoid
dangling pointers when the address of `oc->image` is changed by
`ocAllocateSymbolExtra`.
Test Plan:
See {D5195}, also test under i386:
```
$ uname -a
Linux watashi-arch32 4.18.5-arch1-1.0-ARCH #1 SMP PREEMPT Tue Aug 28
20:45:30 CEST 2018 i686 GNU/Linux
$ cd testsuite/tests/th/ && make test
...
```
will run `./validate` on stacked diff.
Reviewers: simonmar, bgamari, alpmestan, trommler, hvr, erikd
Reviewed By: simonmar
Subscribers: rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5289
>---------------------------------------------------------------
e29b1ee72d77d5a06ac949f9dcc80108243a25c0
docs/users_guide/8.8.1-notes.rst | 4 ++
docs/users_guide/runtime_control.rst | 28 +++++++++++-
includes/rts/Flags.h | 12 ++++++
libraries/base/GHC/RTS/Flags.hsc | 3 ++
rts/Linker.c | 84 ++++++++++++++++++------------------
rts/RtsFlags.c | 11 +++++
rts/linker/Elf.c | 25 ++---------
rts/linker/MachO.c | 21 +++++----
rts/linker/SymbolExtras.c | 61 ++++++++++++++++----------
9 files changed, 155 insertions(+), 94 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc e29b1ee72d77d5a06ac949f9dcc80108243a25c0
More information about the ghc-commits
mailing list