git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v4 3/3] compat/posix.h: simplify GIT_GNUC_PREREQ() comparison

From
DLDominik Loidolt <dominik.loidolt@univie.ac.at>
Date
Jun 13, 2026, 12:27 UTC
Message-ID
<20260613122711.38662-4-dominik.loidolt@univie.ac.at>
In-Reply-To
<20260613122711.38662-1-dominik.loidolt@univie.ac.at>

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>
---
 compat/posix.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/compat/posix.h b/compat/posix.h
index d2de5cedf5..2f01564b0d 100644
--- a/compat/posix.h
+++ b/compat/posix.h
@@ -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
-- 
2.54.0
Previous: Dominik LoidoltNext: Junio C Hamano
Message 18 of 20 in “compat/posix.h: enable UNUSED warning messages for Clang”
  1. compat/posix.h: enable UNUSED warning messages for ClangDominik Loidolt, May 3, 2026
  2. Junio C HamanoMay 4, 2026
  3. Junio C HamanoMay 4, 2026
  4. Dominik LoidoltJun 5, 2026
  5. compat/posix.h: enable UNUSED warning messages for ClangDominik Loidolt, Jun 5, 2026
  6. Patrick SteinhardtJun 5, 2026
  7. Dominik LoidoltJun 5, 2026
  8. Patrick SteinhardtJun 5, 2026
  9. Dominik LoidoltJun 5, 2026
  10. Patrick SteinhardtJun 8, 2026
  11. 1/2 compat/posix.h: enable UNUSED warning messages for ClangDominik Loidolt, Jun 8, 2026
  12. 2/2 compat/posix.h: simplify GIT_GNUC_PREREQ() comparisonDominik Loidolt, Jun 8, 2026
  13. Patrick SteinhardtJun 12, 2026
  14. Dominik LoidoltJun 12, 2026
  15. 0/3 compat/posix.h: enable UNUSED warning messages for ClangDominik Loidolt, Jun 13, 2026
  16. 2/3 compat/posix.h: clean up GIT_GNUC_PREREQ() and UNUSEDDominik Loidolt, Jun 13, 2026
  17. 1/3 compat/posix.h: enable UNUSED warning messages for ClangDominik Loidolt, Jun 13, 2026
  18. 3/3 compat/posix.h: simplify GIT_GNUC_PREREQ() comparisonDominik Loidolt, Jun 13, 2026
  19. Junio C HamanoJun 13, 2026
  20. Patrick SteinhardtJun 15, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.