]> git.ipfire.org Git - thirdparty/git.git/commitdiff
compat/posix.h: simplify GIT_GNUC_PREREQ() comparison
authorDominik Loidolt <dominik.loidolt@univie.ac.at>
Sat, 13 Jun 2026 12:27:11 +0000 (14:27 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sat, 13 Jun 2026 15:45:27 +0000 (08:45 -0700)
GIT_GNUC_PREREQ() uses a glibc-style bit-shift version comparison,
which is harder to read than an explicit major/minor comparison.

Use an explicit comparison, as in many BSD <sys/cdefs.h> headers, and
drop the Linux header attribution comment because it no longer applies.

Signed-off-by: Dominik Loidolt <dominik.loidolt@univie.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/posix.h

index d2de5cedf5367e8311390cc0c54b80b35f8458fc..2f01564b0d8a601b3ae0e3c44e334b09102d6397 100644 (file)
@@ -4,7 +4,6 @@
 #define _FILE_OFFSET_BITS 64
 
 /*
- * Derived from Linux "Features Test Macro" header
  * Convenience macros to test the versions of GCC (or a compatible compiler).
  * Use them like this:
  *  #if GIT_GNUC_PREREQ (2,8)
@@ -19,7 +18,8 @@
  */
 #if defined(__GNUC__) && defined(__GNUC_MINOR__)
 # define GIT_GNUC_PREREQ(maj, min) \
-       ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+       ((__GNUC__ > (maj)) || \
+        (__GNUC__ == (maj) && __GNUC_MINOR__ >= (min)))
 #else
 # define GIT_GNUC_PREREQ(maj, min) 0
 #endif