Collin Funk <collin.fu...@gmail.com> writes: > This patch broke Coreutils on some systems due to not defining > __GNU_PREREQ [1].
Forgot to attach the pushed patch Collin
>From a92aa179978a136fa9cc9023d02b5529b19a2210 Mon Sep 17 00:00:00 2001 From: Collin Funk <collin.fu...@gmail.com> Date: Sun, 11 May 2025 09:41:48 -0700 Subject: [PATCH] fts: Make sure __GNU_PREREQ is defined (regression yesterday). Reported by <nroycea+...@gmail.com> in <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78376>. * lib/fts_.h (__GNUC_PREREQ): Define macro on clang or if the system does not define it. --- ChangeLog | 8 ++++++++ lib/fts_.h | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/ChangeLog b/ChangeLog index 2db4885fb0..2ddb9c3ba9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2025-05-11 Collin Funk <collin.fu...@gmail.com> + + fts: Make sure __GNU_PREREQ is defined (regression yesterday). + Reported by <nroycea+...@gmail.com> in + <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78376>. + * lib/fts_.h (__GNUC_PREREQ): Define macro on clang or if the system + does not define it. + 2025-05-10 Bruno Haible <br...@clisp.org> string-desc: Fixes for string literals and older GCC versions. diff --git a/lib/fts_.h b/lib/fts_.h index 052858da7b..aa5b88f19c 100644 --- a/lib/fts_.h +++ b/lib/fts_.h @@ -66,6 +66,18 @@ # include <sys/cdefs.h> # endif # define __FLEXIBLE_ARRAY_MEMBER FLEXIBLE_ARRAY_MEMBER +# if defined __clang__ + /* clang really only groks GNU C 4.2, regardless of its value of __GNUC__. */ +# undef __GNUC_PREREQ +# define __GNUC_PREREQ(maj, min) ((maj) < 4 + ((min) <= 2)) +# endif +# ifndef __GNUC_PREREQ +# if defined __GNUC__ && defined __GNUC_MINOR__ +# define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__)) +# else +# define __GNUC_PREREQ(maj, min) 0 +# endif +# endif # ifndef __THROW # if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major__ >= 4) # if __cplusplus >= 201103L -- 2.49.0