summary refs log tree commit diff
path: root/pkgs/tools/package-management
diff options
context:
space:
mode:
authorDan Peebles <pumpkin@me.com>2017-04-08 16:54:16 -0400
committerDan Peebles <pumpkin@me.com>2017-04-08 16:54:16 -0400
commitfbdc4616ab2bf11d92411f2b59671699268e458a (patch)
treeaf01f8354c374b25836348f202686aba9c6091f6 /pkgs/tools/package-management
parent72d9016b8ba4934d6fdcb3a76ea7cae1ab5149b8 (diff)
nix: fix on LLVM 4.0
Diffstat (limited to 'pkgs/tools/package-management')
-rw-r--r--pkgs/tools/package-management/nix/default.nix12
1 files changed, 10 insertions, 2 deletions
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index dbd6a35213290..11edda06f1358 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -7,8 +7,8 @@
 
 let
 
-  common = { name, suffix ? "", src, fromGit ? false }: stdenv.mkDerivation rec {
-    inherit name src;
+  common = { name, suffix ? "", src, patchPhase, fromGit ? false }: stdenv.mkDerivation rec {
+    inherit name src patchPhase;
     version = lib.getVersion name;
 
     VERSION_SUFFIX = lib.optionalString fromGit suffix;
@@ -109,6 +109,14 @@ in rec {
       url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
       sha256 = "69e0f398affec2a14c47b46fec712906429c85312d5483be43e4c34da4f63f67";
     };
+
+    # 1.11.8 doesn't yet have the patch to work on LLVM 4, so we patch it for now. Take this out once
+    # we move to a higher version. I'd pull the specific patch from upstream but it doesn't apply cleanly.
+    patchPhase = ''
+      substituteInPlace src/libexpr/json-to-value.cc \
+        --replace 'std::less<Symbol>, gc_allocator<Value *>' \
+                  'std::less<Symbol>, gc_allocator<std::pair<const Symbol, Value *> >'
+    '';
   };
 
   nixUnstable = lib.lowPrio (common rec {