@@ -0,0 +1,14 @@
1+diff --git a/rts/Linker.c b/rts/Linker.c
2+index f1c0db7c92..10b0764b38 100644
3+--- a/rts/Linker.c
4++++ b/rts/Linker.c
5+@@ -1161,6 +1161,9 @@ void mmapForLinkerMarkExecutable(void *start, size_t len)
6+ IF_DEBUG(linker,
7+ debugBelch("mmapForLinkerMarkExecutable: protecting %" FMT_Word
8+ " bytes starting at %p\n", (W_)len, start));
9++ if (len == 0) {
10++ return;
11++ }
12+ if (mprotect(start, len, PROT_READ|PROT_EXEC) == -1) {
13+ barf("mmapForLinkerMarkExecutable: mprotect: %s\n", strerror(errno));
14+ }