about summary refs log tree commit diff
path: root/pkgs/development/compilers/ghc/D2710.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/ghc/D2710.patch')
-rw-r--r--pkgs/development/compilers/ghc/D2710.patch19
1 files changed, 19 insertions, 0 deletions
diff --git a/pkgs/development/compilers/ghc/D2710.patch b/pkgs/development/compilers/ghc/D2710.patch
new file mode 100644
index 000000000000..0ee1b06c7346
--- /dev/null
+++ b/pkgs/development/compilers/ghc/D2710.patch
@@ -0,0 +1,19 @@
+diff --git a/rts/LinkerInternals.h b/rts/LinkerInternals.h
+--- a/rts/LinkerInternals.h
++++ b/rts/LinkerInternals.h
+@@ -303,4 +303,14 @@
+ #  define OBJFORMAT_MACHO
+ #endif
+ 
++/* In order to simplify control flow a bit, some references to mmap-related
++   definitions are blocked off by a C-level if statement rather than a CPP-level
++   #if statement. Since those are dead branches when !RTS_LINKER_USE_MMAP, we
++   just stub out the relevant symbols here
++*/
++#if !RTS_LINKER_USE_MMAP
++#define munmap(x,y) /* nothing */
++#define MAP_ANONYMOUS 0
++#endif
++
+ #endif /* LINKERINTERNALS_H */
+