[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