Skip to content
  • Zejun Wu's avatar
    Add a RTS option -xp to load PIC object anywhere in address space · e29b1ee7
    Zejun Wu authored and Ben Gamari's avatar Ben Gamari committed
    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