From da6b1b9cf2269e7e1e7aad1989716a5b72777bcf Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 21 Sep 2024 23:10:34 +0200 Subject: [PATCH] getopt-posix, crypto/md5-buffer: Fix __GNUC_PREREQ re clang. * lib/getopt-cdefs.in.h (__GNUC_PREREQ): Copy definition from lib/libc-config.h. * lib/md5.h (__GNUC_PREREQ): Likewise. --- ChangeLog | 7 +++++++ lib/getopt-cdefs.in.h | 8 ++++++-- lib/md5.h | 8 ++++++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index a49e9b255e..6ee448abff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2024-09-21 Bruno Haible + + getopt-posix, crypto/md5-buffer: Fix __GNUC_PREREQ re clang. + * lib/getopt-cdefs.in.h (__GNUC_PREREQ): Copy definition from + lib/libc-config.h. + * lib/md5.h (__GNUC_PREREQ): Likewise. + 2024-09-21 Henrik Lindström getopt-posix: Improve definition of __GNUC_PREREQ. diff --git a/lib/getopt-cdefs.in.h b/lib/getopt-cdefs.in.h index 95f06045f5..9d704a9f6e 100644 --- a/lib/getopt-cdefs.in.h +++ b/lib/getopt-cdefs.in.h @@ -46,10 +46,14 @@ # endif #endif +#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) \ - ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +# define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__)) # else # define __GNUC_PREREQ(maj, min) 0 # endif diff --git a/lib/md5.h b/lib/md5.h index 2f470703f5..94cc6994cc 100644 --- a/lib/md5.h +++ b/lib/md5.h @@ -52,10 +52,14 @@ #define MD5_DIGEST_SIZE 16 #define MD5_BLOCK_SIZE 64 +#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) \ - ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +# define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__)) # else # define __GNUC_PREREQ(maj, min) 0 # endif -- 2.39.5