about summary refs log tree commit diff
path: root/pkgs/development/tools/misc/creduce/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/misc/creduce/default.nix')
-rw-r--r--pkgs/development/tools/misc/creduce/default.nix39
1 files changed, 30 insertions, 9 deletions
diff --git a/pkgs/development/tools/misc/creduce/default.nix b/pkgs/development/tools/misc/creduce/default.nix
index 77493bd16647..918bd2efab73 100644
--- a/pkgs/development/tools/misc/creduce/default.nix
+++ b/pkgs/development/tools/misc/creduce/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, cmake, makeWrapper
+{ lib, stdenv, fetchurl, fetchpatch, cmake, makeWrapper
 , llvm, libclang
 , flex
 , zlib
@@ -15,6 +15,35 @@ stdenv.mkDerivation rec {
     sha256 = "2xwPEjln8k1iCwQM69UwAb89zwPkAPeFVqL/LhH+oGM=";
   };
 
+  patches = [
+    # Port to LLVM 15
+    (fetchpatch {
+      url = "https://github.com/csmith-project/creduce/commit/e507cca4ccb32585c5692d49b8d907c1051c826c.patch";
+      hash = "sha256-jO5E85AvHcjlErbUhzuQDXwQkhQsXklcTMQfWBd09OU=";
+    })
+    (fetchpatch {
+      url = "https://github.com/csmith-project/creduce/commit/8d56bee3e1d2577fc8afd2ecc03b1323d6873404.patch";
+      hash = "sha256-dRaBaJAYkvMyxKvfriOcg4D+4i6+6orZ85zws1AFx/s=";
+    })
+    # Port to LLVM 16
+    (fetchpatch {
+      url = "https://github.com/csmith-project/creduce/commit/8ab9a69caf13ce24172737e8bfd09de51a1ecb6a.patch";
+      hash = "sha256-gPNXxYHnsyUvXmC0CGtsulH2Fu/EMnDE4GdOYc0UbiQ=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace "-std=c++11" "-std=c++17"
+  ''
+  # On Linux, c-reduce's preferred way to reason about
+  # the cpu architecture/topology is to use 'lscpu',
+  # so let's make sure it knows where to find it:
+  + lib.optionalString stdenv.isLinux ''
+    substituteInPlace creduce/creduce_utils.pm --replace \
+      lscpu ${util-linux}/bin/lscpu
+  '';
+
   nativeBuildInputs = [ cmake makeWrapper llvm.dev ];
   buildInputs = [
     # Ensure stdenv's CC is on PATH before clang-unwrapped
@@ -24,14 +53,6 @@ stdenv.mkDerivation rec {
     flex zlib
   ] ++ (with perlPackages; [ perl ExporterLite FileWhich GetoptTabular RegexpCommon TermReadKey ]);
 
-  # On Linux, c-reduce's preferred way to reason about
-  # the cpu architecture/topology is to use 'lscpu',
-  # so let's make sure it knows where to find it:
-  postPatch = lib.optionalString stdenv.isLinux ''
-    substituteInPlace creduce/creduce_utils.pm --replace \
-      lscpu ${util-linux}/bin/lscpu
-  '';
-
   postInstall = ''
     wrapProgram $out/bin/creduce --prefix PERL5LIB : "$PERL5LIB"
   '';