about summary refs log tree commit diff
path: root/pkgs/development/compilers
diff options
context:
space:
mode:
authorPeter Simons <simons@cryp.to>2017-06-12 12:32:33 +0200
committerGitHub <noreply@github.com>2017-06-12 12:32:32 +0200
commitd8f2284808e20e307ac40d71e21ab4ca8850c220 (patch)
tree269901c9946fbf6176f881abaa697f97a2191a03 /pkgs/development/compilers
parent9b6e82efbab65d8a69a28096e8ef45b836c29189 (diff)
parentd45aff53276d263ff1df73c001873f0ed64bffd3 (diff)
Merge pull request #25998 from czyzykowski/fix/25139-ghc-warnings
ghc: 8.0.2 without link warnings
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)
+