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
Showing
- docs/users_guide/8.8.1-notes.rst 4 additions, 0 deletionsdocs/users_guide/8.8.1-notes.rst
- docs/users_guide/runtime_control.rst 26 additions, 2 deletionsdocs/users_guide/runtime_control.rst
- includes/rts/Flags.h 12 additions, 0 deletionsincludes/rts/Flags.h
- libraries/base/GHC/RTS/Flags.hsc 3 additions, 0 deletionslibraries/base/GHC/RTS/Flags.hsc
- rts/Linker.c 43 additions, 41 deletionsrts/Linker.c
- rts/RtsFlags.c 11 additions, 0 deletionsrts/RtsFlags.c
- rts/linker/Elf.c 4 additions, 21 deletionsrts/linker/Elf.c
- rts/linker/MachO.c 13 additions, 8 deletionsrts/linker/MachO.c
- rts/linker/SymbolExtras.c 39 additions, 22 deletionsrts/linker/SymbolExtras.c
Loading
Please register or sign in to comment