summaryrefslogtreecommitdiff
path: root/rts/Linker.c
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2021-02-13 16:44:19 +0800
committerMoritz Angermann <moritz.angermann@gmail.com>2021-02-17 21:09:55 +0800
commit9a1aa9fbee2fea8b85eeb5f80b748140efe9999e (patch)
tree06973ea9ea59104c970f87bb0fe54f2e45cd0d88 /rts/Linker.c
parent5109e87e13ab45d799db2013535f54ca35f1f4dc (diff)
downloadhaskell-wip/angerman/adjustor-alloc-mark-split.tar.gz
Allocate Adjustors and mark them readable in two stepswip/angerman/adjustor-alloc-mark-split
This drops allocateExec for darwin, and replaces it with a alloc, write, mark executable strategy instead. This prevents us from trying to allocate an executable range and then write to it, which X^W will prohibit on darwin. This will *only* work if we can use mmap.
Diffstat (limited to 'rts/Linker.c')
-rw-r--r--rts/Linker.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/Linker.c b/rts/Linker.c
index c0d28e6581..f0c72c3a2d 100644
--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -1484,7 +1484,7 @@ preloadObjectFile (pathchar *path)
*
* See also the misalignment logic for darwin below.
*/
-#if defined(ios_HOST_OS)
+#if defined(darwin_HOST_OS)
image = mmapForLinker(fileSize, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0);
#else
image = mmapForLinker(fileSize, PROT_READ|PROT_WRITE|PROT_EXEC,