From f7ccae9b660e70c33c217c0c5312e76498e43708 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Wed, 14 May 2025 13:05:29 -0600 Subject: [PATCH] package/unifdef: fix build with gcc 15 Add a patch fixing compilation on hosts with gcc 15. Signed-off-by: James Hilliard Signed-off-by: Julien Olivain (cherry picked from commit 22cd2e0bc4545d46d92936e5bb5c98f1e22d58f8) Signed-off-by: Thomas Perale --- ...0002-Don-t-use-C23-constexpr-keyword.patch | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 package/unifdef/0002-Don-t-use-C23-constexpr-keyword.patch diff --git a/package/unifdef/0002-Don-t-use-C23-constexpr-keyword.patch b/package/unifdef/0002-Don-t-use-C23-constexpr-keyword.patch new file mode 100644 index 0000000000..5b5c9690da --- /dev/null +++ b/package/unifdef/0002-Don-t-use-C23-constexpr-keyword.patch @@ -0,0 +1,60 @@ +From d616741e6b0d5b57b66447e85ad32b283b28adde Mon Sep 17 00:00:00 2001 +From: Sam James +Date: Sun, 17 Nov 2024 01:26:27 +0000 +Subject: [PATCH] Don't use C23 constexpr keyword + +This fixes building with upcoming GCC 15 which defaults to -std=gnu23. + +Signed-off-by: James Hilliard +Upstream: https://github.com/fanf2/unifdef/pull/19 +--- + unifdef.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/unifdef.c b/unifdef.c +index dc145a2..4bd3bda 100644 +--- a/unifdef.c ++++ b/unifdef.c +@@ -202,7 +202,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 is_constexpr; /* constant #if expression */ + static bool zerosyms; /* to format symdepth output */ + static bool firstsym; /* ditto */ + +@@ -1086,7 +1086,7 @@ eval_unary(const struct ops *ops, long *valp, const char **cpp) + *valp = (value[sym] != NULL); + lt = *valp ? LT_TRUE : LT_FALSE; + } +- constexpr = false; ++ is_constexpr = false; + } else if (!endsym(*cp)) { + debug("eval%d symbol", prec(ops)); + sym = findsym(&cp); +@@ -1103,7 +1103,7 @@ eval_unary(const struct ops *ops, long *valp, const char **cpp) + lt = *valp ? LT_TRUE : LT_FALSE; + cp = skipargs(cp); + } +- constexpr = false; ++ is_constexpr = false; + } else { + debug("eval%d bad expr", prec(ops)); + return (LT_ERROR); +@@ -1170,10 +1170,10 @@ ifeval(const char **cpp) + long val = 0; + + debug("eval %s", *cpp); +- constexpr = killconsts ? false : true; ++ is_constexpr = 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 (is_constexpr ? LT_IF : ret == LT_ERROR ? LT_IF : ret); + } + + /* +-- +2.34.1 +