From 30b6d6393a531a786ee17c31b72a77ec594527d7 Mon Sep 17 00:00:00 2001 From: Xiangyan Sun Date: Fri, 8 May 2026 21:18:57 -0700 Subject: [PATCH 1/2] creduce: fix build with gcc15 --- .../tools/misc/creduce/default.nix | 5 ++ .../tools/misc/creduce/fix-gcc15.patch | 53 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 pkgs/development/tools/misc/creduce/fix-gcc15.patch diff --git a/pkgs/development/tools/misc/creduce/default.nix b/pkgs/development/tools/misc/creduce/default.nix index 23d88f07cdcb..731e5b457099 100644 --- a/pkgs/development/tools/misc/creduce/default.nix +++ b/pkgs/development/tools/misc/creduce/default.nix @@ -23,6 +23,11 @@ stdenv.mkDerivation { hash = "sha256-RbxFqZegsCxnUaIIA5OfTzx1wflCPeF+enQt90VwMgA="; }; + patches = [ + # https://github.com/csmith-project/creduce/pull/290 + ./fix-gcc15.patch + ]; + postPatch = '' substituteInPlace {clex,clang_delta,delta,unifdef,creduce,.}/CMakeLists.txt --replace-fail \ "cmake_minimum_required(VERSION 2.8.12)" "cmake_minimum_required(VERSION 3.10)" diff --git a/pkgs/development/tools/misc/creduce/fix-gcc15.patch b/pkgs/development/tools/misc/creduce/fix-gcc15.patch new file mode 100644 index 000000000000..42bd32aae05d --- /dev/null +++ b/pkgs/development/tools/misc/creduce/fix-gcc15.patch @@ -0,0 +1,53 @@ +From 1c715fef9113d5a5291694eab739d4a743ab08d5 Mon Sep 17 00:00:00 2001 +From: Bradley Walters +Date: Fri, 2 Jan 2026 22:02:30 -0800 +Subject: [PATCH] unifdef: constexpr is reserved in C23 + +--- + unifdef/unifdef.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/unifdef/unifdef.c b/unifdef/unifdef.c +index 5c67cd44..692a1640 100644 +--- a/unifdef/unifdef.c ++++ b/unifdef/unifdef.c +@@ -201,7 +201,7 @@ static int depth; /* current #if nesting */ + static int delcount; /* count of deleted lines */ + static unsigned blankcount; /* count of blank lines */ + static unsigned blankmax; /* maximum recent blankcount */ +-static bool constexpr; /* constant #if expression */ ++static bool isconstexpr; /* constant #if expression */ + static bool zerosyms; /* to format symdepth output */ + static bool firstsym; /* ditto */ + +@@ -1078,7 +1078,7 @@ eval_unary(const struct ops *ops, long *valp, const char **cpp) + *valp = (value[sym] != NULL); + lt = *valp ? LT_TRUE : LT_FALSE; + } +- constexpr = false; ++ isconstexpr = false; + } else if (!endsym(*cp)) { + debug("eval%d symbol", prec(ops)); + sym = findsym(&cp); +@@ -1095,7 +1095,7 @@ eval_unary(const struct ops *ops, long *valp, const char **cpp) + lt = *valp ? LT_TRUE : LT_FALSE; + cp = skipargs(cp); + } +- constexpr = false; ++ isconstexpr = false; + } else { + debug("eval%d bad expr", prec(ops)); + return (LT_ERROR); +@@ -1162,10 +1162,10 @@ ifeval(const char **cpp) + long val = 0; + + debug("eval %s", *cpp); +- constexpr = killconsts ? false : true; ++ isconstexpr = killconsts ? false : true; + ret = eval_table(eval_ops, &val, cpp); + debug("eval = %d", val); +- return (constexpr ? LT_IF : ret == LT_ERROR ? LT_IF : ret); ++ return (isconstexpr ? LT_IF : ret == LT_ERROR ? LT_IF : ret); + } + + /* From 3e46802cf57d51836fcd039c4987f0e5cd7f9065 Mon Sep 17 00:00:00 2001 From: Xiangyan Sun Date: Fri, 8 May 2026 21:25:19 -0700 Subject: [PATCH 2/2] creduce: migrate to by-name --- .../misc => by-name/cr}/creduce/fix-gcc15.patch | 0 .../default.nix => by-name/cr/creduce/package.nix} | 12 +++++++----- pkgs/top-level/all-packages.nix | 4 ---- 3 files changed, 7 insertions(+), 9 deletions(-) rename pkgs/{development/tools/misc => by-name/cr}/creduce/fix-gcc15.patch (100%) rename pkgs/{development/tools/misc/creduce/default.nix => by-name/cr/creduce/package.nix} (94%) diff --git a/pkgs/development/tools/misc/creduce/fix-gcc15.patch b/pkgs/by-name/cr/creduce/fix-gcc15.patch similarity index 100% rename from pkgs/development/tools/misc/creduce/fix-gcc15.patch rename to pkgs/by-name/cr/creduce/fix-gcc15.patch diff --git a/pkgs/development/tools/misc/creduce/default.nix b/pkgs/by-name/cr/creduce/package.nix similarity index 94% rename from pkgs/development/tools/misc/creduce/default.nix rename to pkgs/by-name/cr/creduce/package.nix index 731e5b457099..03f135937da5 100644 --- a/pkgs/development/tools/misc/creduce/default.nix +++ b/pkgs/by-name/cr/creduce/package.nix @@ -4,13 +4,15 @@ fetchFromGitHub, cmake, makeWrapper, - llvm, - libclang, + llvmPackages_18, flex, zlib, perlPackages, util-linux, }: +let + llvmPackages = llvmPackages_18; +in stdenv.mkDerivation { pname = "creduce"; @@ -44,14 +46,14 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake makeWrapper - llvm.dev + llvmPackages.llvm.dev ]; buildInputs = [ # Ensure stdenv's CC is on PATH before clang-unwrapped stdenv.cc # Actual deps: - llvm - libclang + llvmPackages.llvm + llvmPackages.libclang flex zlib ] diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 001ee576682d..1a3c94cfb214 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5542,10 +5542,6 @@ with pkgs; credstash = with python3Packages; toPythonApplication credstash; - creduce = callPackage ../development/tools/misc/creduce { - inherit (llvmPackages_18) llvm libclang; - }; - css-html-js-minify = with python3Packages; toPythonApplication css-html-js-minify; cvise = python3Packages.callPackage ../development/tools/misc/cvise {