summaryrefslogtreecommitdiff
path: root/rts/linker
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2017-03-21 10:58:28 -0400
committerBen Gamari <ben@smart-cactus.org>2017-03-26 21:37:22 -0400
commitfdbbd63db18cf3ba0cd8f0d61da904317ae5ae01 (patch)
tree205ad3859c59ba3a472f74fcc7e64316bf418f93 /rts/linker
parent140a2d1c463bd314c9afbeb8d60e739163ce576a (diff)
downloadhaskell-fdbbd63db18cf3ba0cd8f0d61da904317ae5ae01.tar.gz
Make mmap r+w only during preload for iOS.
While we do not yet enable mmap for ios builds. If we later do, we must not try to mmap r+w+x, on iOS as that clearly fails. This diff also adds a check for the successful mmaping. I don't think we can blanket change this to r+w for every case, unless we are absolutely sure that we are going to remap this and set +x where needed. This is just one of the pieces for the rts linker support for ios (aarch64-macho) --- The following diagram and legend tries to explain the dependencies a bit: ``` .- D3240 v D3255 <- D3252 <- D3251 <- D3239 ^ '- This ``` - In D3238 we started allowing preloading object code with mmap in iOS, where we can't have r+w+x. - In D3239 we introduced a richer extension of the object code data type to make working with mach-o files easier. - In D3240 we set the stage to allow loading archives (.a) on iOS - In D3251 we added init and deinit functions to populate and depopulate the enriched object code data structure for mach-o files. - In D3252 we refactored most of the MachO.c file to use the new types and data structure. - in D3255 we finally introduce the aarch64-mach-o linker. Reviewers: ezyang, austin, erikd, simonmar, bgamari, rwbarton Reviewed By: bgamari Subscribers: rwbarton, ryantrinkle, thomie Differential Revision: https://phabricator.haskell.org/D3238
Diffstat (limited to 'rts/linker')
0 files changed, 0 insertions, 0 deletions