aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS7
-rw-r--r--bits/fenv.h2
-rw-r--r--bits/libc-header-start.h36
-rw-r--r--include/features.h44
-rw-r--r--include/limits.h6
-rw-r--r--include/stdio.h2
-rw-r--r--include/stdlib.h4
-rw-r--r--include/wchar.h4
-rw-r--r--libio/bits/stdio-ldbl.h8
-rw-r--r--libio/stdio.h6
-rw-r--r--manual/arith.texi22
-rw-r--r--manual/creature.texi10
-rw-r--r--manual/stdbit.texi30
-rw-r--r--manual/stdio.texi16
-rw-r--r--manual/time.texi6
-rw-r--r--math/bits/mathcalls.h14
-rw-r--r--math/fenv.h8
-rwxr-xr-xmath/gen-tgmath-tests.py4
-rw-r--r--math/libm-test-pow.inc2
-rw-r--r--math/math.h24
-rw-r--r--math/tgmath.h46
-rw-r--r--resolv/tst-inet_addr-binary.c2
-rw-r--r--stdio-common/Makefile5
-rw-r--r--stdio-common/tst-scanf-binary-c11.c4
-rw-r--r--stdio-common/tst-scanf-binary-c2x.c10
-rw-r--r--stdio-common/tst-scanf-binary-gnu11.c4
-rw-r--r--stdio-common/tst-scanf-binary-gnu89.c4
-rw-r--r--stdio-common/tst-scanf-binary-main.c6
-rw-r--r--stdlib/Makefile7
-rw-r--r--stdlib/bits/stdlib-ldbl.h2
-rw-r--r--stdlib/inttypes.h6
-rw-r--r--stdlib/stdint.h2
-rw-r--r--stdlib/stdlib.h6
-rw-r--r--stdlib/strtol.c4
-rw-r--r--stdlib/strtol_l.c4
-rw-r--r--stdlib/strtoll_l.c4
-rw-r--r--stdlib/strtoul_l.c4
-rw-r--r--stdlib/strtoull_l.c4
-rw-r--r--stdlib/tst-strtol-binary-c11.c4
-rw-r--r--stdlib/tst-strtol-binary-c2x.c8
-rw-r--r--stdlib/tst-strtol-binary-gnu11.c12
-rw-r--r--stdlib/tst-strtol-binary-gnu2x.c4
-rw-r--r--stdlib/tst-strtol-binary-main.c4
-rw-r--r--string/string.h6
-rw-r--r--sysdeps/aarch64/bits/fenv.h2
-rw-r--r--sysdeps/alpha/fpu/bits/fenv.h2
-rw-r--r--sysdeps/arm/bits/fenv.h2
-rw-r--r--sysdeps/csky/bits/fenv.h2
-rw-r--r--sysdeps/hppa/fpu/bits/fenv.h2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/Makefile10
-rw-r--r--sysdeps/ieee754/ldbl-opt/Makefile10
-rw-r--r--sysdeps/loongarch/bits/fenv.h2
-rw-r--r--sysdeps/m68k/bits/fenv.h2
-rw-r--r--sysdeps/microblaze/bits/fenv.h2
-rw-r--r--sysdeps/mips/bits/fenv.h2
-rw-r--r--sysdeps/nios2/bits/fenv.h2
-rw-r--r--sysdeps/powerpc/bits/fenv.h2
-rw-r--r--sysdeps/riscv/bits/fenv.h2
-rw-r--r--sysdeps/s390/fpu/bits/fenv.h2
-rw-r--r--sysdeps/sh/bits/fenv.h2
-rw-r--r--sysdeps/sparc/fpu/bits/fenv.h2
-rw-r--r--sysdeps/x86/fpu/bits/fenv.h2
-rw-r--r--time/time.h8
-rw-r--r--wcsmbs/Makefile7
-rw-r--r--wcsmbs/bits/wchar-ldbl.h8
-rw-r--r--wcsmbs/tst-wcstol-binary-c11.c4
-rw-r--r--wcsmbs/tst-wcstol-binary-c2x.c8
-rw-r--r--wcsmbs/tst-wcstol-binary-gnu11.c12
-rw-r--r--wcsmbs/tst-wcstol-binary-gnu2x.c4
-rw-r--r--wcsmbs/tst-wscanf-binary-c11.c4
-rw-r--r--wcsmbs/tst-wscanf-binary-c2x.c10
-rw-r--r--wcsmbs/tst-wscanf-binary-gnu11.c4
-rw-r--r--wcsmbs/tst-wscanf-binary-gnu89.c4
-rw-r--r--wcsmbs/uchar.h8
-rw-r--r--wcsmbs/wchar.h12
-rw-r--r--wcsmbs/wcstol_l.c4
-rw-r--r--wcsmbs/wcstoll_l.c4
-rw-r--r--wcsmbs/wcstoul_l.c4
-rw-r--r--wcsmbs/wcstoull_l.c4
79 files changed, 300 insertions, 278 deletions
diff --git a/NEWS b/NEWS
index 39a55f5767..2d8eaffc58 100644
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,13 @@ Major new features:
in order to support unsigned __int128 and/or unsigned _BitInt(N) operands
with arbitrary precisions when supported by the target.
+* The GNU C Library now supports a feature test macro _ISOC23_SOURCE to
+ enable features from the ISO C23 standard. Only some features from
+ this standard are supported by the GNU C Library. The older name
+ _ISOC2X_SOURCE is still supported. Features from C23 are also enabled
+ by _GNU_SOURCE, or by compiling with the GCC options -std=c23,
+ -std=gnu23, -std=c2x or -std=gnu2x.
+
Deprecated and removed features, and other changes affecting compatibility:
[Add deprecations, removals and changes affecting compatibility here]
diff --git a/bits/fenv.h b/bits/fenv.h
index 9f19295d65..aa0c549d4a 100644
--- a/bits/fenv.h
+++ b/bits/fenv.h
@@ -54,7 +54,7 @@ fenv_t;
/* If the default argument is used we use this value. */
#define FE_DFL_ENV ((const fenv_t *) -1l)
-#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */
typedef unsigned int femode_t;
diff --git a/bits/libc-header-start.h b/bits/libc-header-start.h
index d841f5d8cf..4ab1304b0d 100644
--- a/bits/libc-header-start.h
+++ b/bits/libc-header-start.h
@@ -44,23 +44,23 @@
/* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
macro. Most but not all symbols enabled by that macro in TS
- 18661-1 are enabled unconditionally in C2X. In C2X, the symbols in
+ 18661-1 are enabled unconditionally in C23. In C23, the symbols in
Annex F still require a new feature test macro
- __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define
+ __STDC_WANT_IEC_60559_EXT__ instead (C23 does not define
__STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS
- 18661-1 are not included in C2X (and thus should depend on
- __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are
+ 18661-1 are not included in C23 (and thus should depend on
+ __STDC_WANT_IEC_60559_BFP_EXT__ even when C23 features are
enabled).
__GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS
- 18661-1 not included in C2X.
+ 18661-1 not included in C23.
- __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS
- 18661-1 that are also included in C2X (with no feature test macro
- required in C2X).
+ __GLIBC_USE (IEC_60559_BFP_EXT_C23) controls those features from TS
+ 18661-1 that are also included in C23 (with no feature test macro
+ required in C23).
__GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1
- that are included in C2X but conditional on
+ that are included in C23 but conditional on
__STDC_WANT_IEC_60559_EXT__. (There are currently no features
conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS
18661-1.) */
@@ -70,11 +70,11 @@
#else
# define __GLIBC_USE_IEC_60559_BFP_EXT 0
#endif
-#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X
-#if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC2X)
-# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1
+#undef __GLIBC_USE_IEC_60559_BFP_EXT_C23
+#if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC23)
+# define __GLIBC_USE_IEC_60559_BFP_EXT_C23 1
#else
-# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 0
+# define __GLIBC_USE_IEC_60559_BFP_EXT_C23 0
#endif
#undef __GLIBC_USE_IEC_60559_EXT
#if __GLIBC_USE (IEC_60559_BFP_EXT) || defined __STDC_WANT_IEC_60559_EXT__
@@ -86,18 +86,18 @@
/* ISO/IEC TS 18661-4:2015 defines the
__STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction
functions, the symbols from this TS are enabled unconditionally in
- C2X. */
+ C23. */
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT
#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__
# define __GLIBC_USE_IEC_60559_FUNCS_EXT 1
#else
# define __GLIBC_USE_IEC_60559_FUNCS_EXT 0
#endif
-#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X
-#if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC2X)
-# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1
+#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C23
+#if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC23)
+# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 1
#else
-# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 0
+# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 0
#endif
/* ISO/IEC TS 18661-3:2015 defines the
diff --git a/include/features.h b/include/features.h
index fc164d332a..d92503dfed 100644
--- a/include/features.h
+++ b/include/features.h
@@ -24,7 +24,8 @@
__STRICT_ANSI__ ISO Standard C.
_ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
_ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
- _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
+ _ISOC23_SOURCE Extensions to ISO C99 from ISO C23.
+ _ISOC2X_SOURCE Old name for _ISOC23_SOURCE.
__STDC_WANT_LIB_EXT2__
Extensions to ISO C99 from TR 27431-2:2010.
__STDC_WANT_IEC_60559_BFP_EXT__
@@ -34,7 +35,7 @@
__STDC_WANT_IEC_60559_TYPES_EXT__
Extensions to ISO C11 from TS 18661-3:2015.
__STDC_WANT_IEC_60559_EXT__
- ISO C2X interfaces defined only in Annex F.
+ ISO C23 interfaces defined only in Annex F.
_POSIX_SOURCE IEEE Std 1003.1.
_POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
@@ -148,10 +149,10 @@
#undef __USE_GNU
#undef __USE_FORTIFY_LEVEL
#undef __KERNEL_STRICT_NAMES
-#undef __GLIBC_USE_ISOC2X
+#undef __GLIBC_USE_ISOC23
#undef __GLIBC_USE_DEPRECATED_GETS
#undef __GLIBC_USE_DEPRECATED_SCANF
-#undef __GLIBC_USE_C2X_STRTOL
+#undef __GLIBC_USE_C23_STRTOL
<