git: 5076e9b5463a - main - libc: Fix C23 version macro visibility

From: Dag-Erling Smørgrav <des_at_FreeBSD.org>
Date: Sun, 30 Aug 2026 17:57:15 UTC
The branch main has been updated by des:

URL: https://cgit.FreeBSD.org/src/commit/?id=5076e9b5463afa47cf2e7689431d3dd33e5b15cb

commit 5076e9b5463afa47cf2e7689431d3dd33e5b15cb
Author:     Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2026-08-30 17:56:51 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2026-08-30 17:56:51 +0000

    libc: Fix C23 version macro visibility
    
    In headers that existed prior to C23, these should be visible only in
    C23 or BSD mode.
    
    Fixes:          0fe73dcf7c32 ("libc: Add <assert.h> C23 feature test macro")
    Fixes:          1f09e354297c ("sys/limits.h: Add BOOL_MAX, BITINT_MAXWIDTH, and C23 feature test macro")
    Fixes:          cd0727ec709b ("libc: Add <stdio.h> C23 feature test macro")
    Fixes:          fc9d02cb29ed ("libc: Add <time.h> C23 feature test macro")
    Fixes:          4aeed6e9d213 ("libc: Add <setjmp.h> C23 feature test macro")
    Reviewed by:    fuz, kfv, dteske
    Differential Revision:  https://reviews.freebsd.org/D59272
---
 include/assert.h    | 2 ++
 include/limits.h    | 6 ++++--
 include/setjmp.h    | 6 ++++--
 include/stdio.h     | 6 ++++--
 include/time.h      | 6 ++++--
 sys/sys/stdatomic.h | 6 ++++--
 6 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/include/assert.h b/include/assert.h
index d474169719c6..06e771d24cf5 100644
--- a/include/assert.h
+++ b/include/assert.h
@@ -71,7 +71,9 @@
 #ifndef _ASSERT_H_
 #define _ASSERT_H_
 
+#if __ISO_C_VISIBLE >= 2023 || __BSD_VISIBLE
 #define __STDC_VERSION_ASSERT_H__	202311L
+#endif
 
 /*
  * Static assertions.  In principle we could define static_assert for
diff --git a/include/limits.h b/include/limits.h
index 5e7e0317d42e..0ab58086cd2a 100644
--- a/include/limits.h
+++ b/include/limits.h
@@ -32,10 +32,12 @@
 #ifndef _LIMITS_H_
 #define _LIMITS_H_
 
-#define __STDC_VERSION_LIMITS_H__	202311L
-
 #include <sys/cdefs.h>
 
+#if __ISO_C_VISIBLE >= 2023 || __BSD_VISIBLE
+#define __STDC_VERSION_LIMITS_H__	202311L
+#endif
+
 #if __POSIX_VISIBLE
 #define	_POSIX_ARG_MAX		4096
 #define	_POSIX_LINK_MAX		8
diff --git a/include/setjmp.h b/include/setjmp.h
index 108b47771160..45a3beeec6ec 100644
--- a/include/setjmp.h
+++ b/include/setjmp.h
@@ -37,10 +37,12 @@
 #ifndef _SETJMP_H_
 #define _SETJMP_H_
 
-#define __STDC_VERSION_SETJMP_H__	202311L
-
 #include <sys/cdefs.h>
 
+#if __ISO_C_VISIBLE >= 2023 || __BSD_VISIBLE
+#define __STDC_VERSION_SETJMP_H__	202311L
+#endif
+
 /* The size of the jmp_buf is machine dependent: */
 #include <machine/setjmp.h>
 
diff --git a/include/stdio.h b/include/stdio.h
index 566dddb76925..1c7b0b3d0e8b 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -35,12 +35,14 @@
 #ifndef	_STDIO_H_
 #define	_STDIO_H_
 
-#define __STDC_VERSION_STDIO_H__	202311L
-
 #include <sys/cdefs.h>
 #include <sys/_null.h>
 #include <sys/_types.h>
 
+#if __ISO_C_VISIBLE >= 2023 || __BSD_VISIBLE
+#define __STDC_VERSION_STDIO_H__	202311L
+#endif
+
 __NULLABILITY_PRAGMA_PUSH
 
 typedef	__off_t		fpos_t;
diff --git a/include/time.h b/include/time.h
index fed2805e03f1..6b304b6dd03b 100644
--- a/include/time.h
+++ b/include/time.h
@@ -37,13 +37,15 @@
 #ifndef _TIME_H_
 #define	_TIME_H_
 
-#define __STDC_VERSION_TIME_H__	202311L
-
 #include <sys/cdefs.h>
 #include <sys/_null.h>
 #include <sys/_types.h>
 #include <sys/_clock_id.h>
 
+#if __ISO_C_VISIBLE >= 2023 || __BSD_VISIBLE
+#define __STDC_VERSION_TIME_H__	202311L
+#endif
+
 #if __POSIX_VISIBLE > 0 && __POSIX_VISIBLE < 200112 || __BSD_VISIBLE
 /*
  * Frequency of the clock ticks reported by times().  Deprecated - use
diff --git a/sys/sys/stdatomic.h b/sys/sys/stdatomic.h
index cc1e31f658a4..e57fe3538bea 100644
--- a/sys/sys/stdatomic.h
+++ b/sys/sys/stdatomic.h
@@ -30,11 +30,13 @@
 #ifndef _STDATOMIC_H_
 #define _STDATOMIC_H_
 
-#define __STDC_VERSION_STDATOMIC_H__	202311L
-
 #include <sys/cdefs.h>
 #include <sys/_types.h>
 
+#if __ISO_C_VISIBLE >= 2023 || __BSD_VISIBLE
+#define __STDC_VERSION_STDATOMIC_H__	202311L
+#endif
+
 #if (__has_extension(c_atomic) || __has_extension(cxx_atomic)) && \
     defined(__clang__)
 #define	__CLANG_ATOMICS