• Zejun Wu's avatar
    Add a RTS option -xp to load PIC object anywhere in address space · e29b1ee7
    Zejun Wu authored
    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
    e29b1ee7
Name
Last commit
Last update
..
rts Loading commit data...
stg Loading commit data...
.dir-locals.el Loading commit data...
Cmm.h Loading commit data...
CodeGen.Platform.hs Loading commit data...
HsFFI.h Loading commit data...
MachDeps.h Loading commit data...
Makefile Loading commit data...
Rts.h Loading commit data...
RtsAPI.h Loading commit data...
Stg.h Loading commit data...
ghc.mk Loading commit data...
ghcconfig.h Loading commit data...