about summary refs log tree commit diff
path: root/pkgs/development/compilers
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r--pkgs/development/compilers/ghc/8.0.2.nix4
-rw-r--r--pkgs/development/compilers/ghc/ghc-8.0.2-no-cpp-warnings.patch23
2 files changed, 26 insertions, 1 deletions
diff --git a/pkgs/development/compilers/ghc/8.0.2.nix b/pkgs/development/compilers/ghc/8.0.2.nix
index 605458e71859c..cc0b1d4eaddf7 100644
--- a/pkgs/development/compilers/ghc/8.0.2.nix
+++ b/pkgs/development/compilers/ghc/8.0.2.nix
@@ -19,7 +19,9 @@ stdenv.mkDerivation rec {
     sha256 = "1c8qc4fhkycynk4g1f9hvk53dj6a1vvqi6bklqznns6hw59m8qhi";
   };
 
-  patches = [] ++ stdenv.lib.optional stdenv.isLinux ./ghc-no-madv-free.patch;
+  patches = []
+    ++ stdenv.lib.optional stdenv.isLinux ./ghc-no-madv-free.patch
+    ++ stdenv.lib.optional stdenv.isDarwin ./ghc-8.0.2-no-cpp-warnings.patch;
 
   buildInputs = [ ghc perl hscolour sphinx ];
 
diff --git a/pkgs/development/compilers/ghc/ghc-8.0.2-no-cpp-warnings.patch b/pkgs/development/compilers/ghc/ghc-8.0.2-no-cpp-warnings.patch
new file mode 100644
index 0000000000000..90224df19f61e
--- /dev/null
+++ b/pkgs/development/compilers/ghc/ghc-8.0.2-no-cpp-warnings.patch
@@ -0,0 +1,23 @@
+--- b/includes/rts/storage/ClosureMacros.h        2017-05-21 12:54:09.000000000 +0200
++++ a/includes/rts/storage/ClosureMacros.h        2017-05-21 12:55:57.000000000 +0200
+@@ -499,8 +499,17 @@
+
+    -------------------------------------------------------------------------- */
+
+-#define ZERO_SLOP_FOR_LDV_PROF     (defined(PROFILING))
+-#define ZERO_SLOP_FOR_SANITY_CHECK (defined(DEBUG) && !defined(THREADED_RTS))
++#if defined(PROFILING)
++#define ZERO_SLOP_FOR_LDV_PROF 1
++#else
++#define ZERO_SLOP_FOR_LDV_PROF 0
++#endif
++
++#if defined(DEBUG) && !defined(THREADED_RTS)
++#define ZERO_SLOP_FOR_SANITY_CHECK 1
++#else
++#define ZERO_SLOP_FOR_SANITY_CHECK 0
++#endif
+
+ #if ZERO_SLOP_FOR_LDV_PROF || ZERO_SLOP_FOR_SANITY_CHECK
+ #define OVERWRITING_CLOSURE(c) overwritingClosure(c)
+