glibc/string
Joseph Myers e535fb910c Define C23 header version macros
C23 defines library macros __STDC_VERSION_<header>_H__ to indicate
that a header has support for new / changed features from C23.  Now
that all the required library features are implemented in glibc,
define these macros.  I'm not sure this is sufficiently much of a
user-visible feature to be worth a mention in NEWS.

Tested for x86_64.

There are various optional C23 features we don't yet have, of which I
might look at the Annex H ones (floating-point encoding conversion
functions and _Float16 functions) next.

* Optional time bases TIME_MONOTONIC, TIME_ACTIVE, TIME_THREAD_ACTIVE.
  See
  <https://sourceware.org/pipermail/libc-alpha/2023-June/149264.html>
  - we need to review / update that patch.  (I think patch 2/2,
  inventing new names for all the nonstandard CLOCK_* supported by the
  Linux kernel, is rather more dubious.)

* Updating conform/ tests for C23.

* Defining the rounding mode macro FE_TONEARESTFROMZERO for RISC-V (as
  far as I know, the only architecture supported by glibc that has
  hardware support for this rounding mode for binary floating point)
  and supporting it throughout glibc and its tests (especially the
  string/numeric conversions in both directions that explicitly handle
  each possible rounding mode, and various tests that do likewise).

* Annex H floating-point encoding conversion functions.  (It's not
  entirely clear which are optional even given support for Annex H;
  there's some wording applied inconsistently about only being
  required when non-arithmetic interchange formats are supported; see
  the comments I raised on the WG14 reflector on 23 Oct 2025.)

* _Float16 functions (and other header and testcase support for this
  type).

* Decimal floating-point support.

* Fully supporting __int128 and unsigned __int128 as integer types
  wider than intmax_t, as permitted by C23.  Would need doing in
  coordination with GCC, see GCC bug 113887 for more discussion of
  what's involved.
2025-11-27 19:32:49 +00:00
..
bits Implement C23 memset_explicit (bug 32378) 2025-10-01 15:14:09 +00:00
Depend
Makefile Enable --enable-fortify-source with clang 2025-11-21 13:13:11 -03:00
Versions Implement C23 memset_explicit (bug 32378) 2025-10-01 15:14:09 +00:00
_strerror.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
argz-addsep.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
argz-append.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
argz-count.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
argz-create.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
argz-ctsep.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
argz-delete.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
argz-extract.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
argz-insert.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
argz-next.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
argz-replace.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
argz-stringify.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
argz.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
basename.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
bcopy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
bug-envz1.c
bug-strcoll1.c
bug-strcoll2.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
bug-strncat1.c
bug-strpbrk1.c
bug-strspn1.c
bug-strtok1.c
byteswap.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
bzero.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
endian.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
envz.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
envz.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
explicit_bzero.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ffs.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ffsll.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
inl-tester.c
memccpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memchr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memcmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memcmpeq.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memfrob.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memmem.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memmove.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memory.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mempcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memrchr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memset.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memset_explicit.c Implement C23 memset_explicit (bug 32378) 2025-10-01 15:14:09 +00:00
noinl-tester.c
rawmemchr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
sigabbrev_np.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
sigdescr_np.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
stpcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
stpncpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
str-two-way.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
stratcliff.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strcasecmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strcasecmp_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strcasestr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strcat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strchr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strchrnul.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strcmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strcoll.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strcoll_l.c Suppress -Wmaybe-uninitialized only for gcc 2025-10-21 09:24:05 -03:00
strcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strcspn.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strdup.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strerror.c Remove <libc-tsd.h> 2025-05-16 19:53:09 +02:00
strerror_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strerrordesc_np.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strerrorname_np.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strfry.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
string-inlines.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
string.h Define C23 header version macros 2025-11-27 19:32:49 +00:00
strings.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strlcat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strlcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strlen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strncase.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strncase_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strncat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strncmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strncpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strndup.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strnlen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strpbrk.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strrchr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strsep.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strsignal.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strspn.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strstr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strtok.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strtok_r.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strverscmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strxfrm.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strxfrm_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
swab.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-Xncmp-nonarray.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-Xnlen-nonarray.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-bcopy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-bzero.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-endian-file-scope.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-endian-sign-conversion.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-endian-types.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-explicit_bzero.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-ffs.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-memccpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-memchr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-memcmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-memcmpeq.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-memcpy-large.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-memcpy-support.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-memcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-memmem.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-memmove.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-mempcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-memrchr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-memset.c Implement C23 memset_explicit (bug 32378) 2025-10-01 15:14:09 +00:00
test-memset_explicit.c Implement C23 memset_explicit (bug 32378) 2025-10-01 15:14:09 +00:00
test-memswap.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-rawmemchr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-sig_np.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-stpcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-stpncpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strcasecmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strcasestr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strcat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strchr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strchrnul.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strcmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strcspn.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strdup.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strerror-errno.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-string.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strlen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strncasecmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strncat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strncmp-nonarray.c Enhanced test coverage for strncmp, wcsncmp 2024-08-01 09:08:32 +02:00
test-strncmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strncpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strndup.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strnlen-nonarray.c Enhance test coverage for strnlen, wcsnlen 2024-08-01 09:07:34 +02:00
test-strnlen.c Implement C23 const-preserving standard library macros 2025-11-20 19:31:04 +00:00
test-strpbrk.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strrchr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strspn.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-strstr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
testcopy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tester.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-bswap.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-cmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-const.c Implement C23 const-preserving standard library macros 2025-11-20 19:31:04 +00:00
tst-endian.c
tst-inlcall.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-memmove-overflow.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strcoll-overflow.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strerror-fail.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strerror.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strfry.c
tst-strlcat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strlcat2.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strlcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strlcpy2.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strlen.c
tst-strsignal.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strtok.c
tst-strtok_r.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strxfrm.c
tst-strxfrm2.c
tst-svc.c
tst-svc.expect
tst-svc.input
tst-svc2.c
tst-xbzero-opt.c Implement C23 memset_explicit (bug 32378) 2025-10-01 15:14:09 +00:00
tst-xmemset-opt.c Implement C23 memset_explicit (bug 32378) 2025-10-01 15:14:09 +00:00
wordcopy.c Suppress -Wmaybe-uninitialized only for gcc 2025-10-21 09:24:05 -03:00
xpg-strerror.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00