glibc/wcsmbs
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 Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
Depend
Makefile Implement C23 const-preserving standard library macros 2025-11-20 19:31:04 +00:00
Versions
btowc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
c8rtomb.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
c16rtomb.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
c32rtomb.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
isoc23_fwscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
isoc23_swscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
isoc23_vfwscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
isoc23_vswscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
isoc23_vwscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
isoc23_wscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
isoc99_fwscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
isoc99_swscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
isoc99_vfwscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
isoc99_vswscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
isoc99_vwscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
isoc99_wscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mbrlen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mbrtoc8.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mbrtoc16.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mbrtoc32.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mbrtowc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mbsinit.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mbsnrtowcs.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mbsrtowcs.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mbsrtowcs_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-c8rtomb.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-char-types.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-mbrtoc8.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-wcpcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-wcpncpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-wcscat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-wcschr.c
test-wcschrnul.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-wcscmp.c
test-wcscpy.c
test-wcscspn.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-wcsdup.c
test-wcslen.c
test-wcsncat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-wcsncmp-nonarray.c
test-wcsncmp.c
test-wcsncpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-wcsnlen-nonarray.c
test-wcsnlen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-wcspbrk.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-wcsrchr.c
test-wcsspn.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-wcsstr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-wmemchr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-wmemcmp.c
test-wmemset.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-btowc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-c16-surrogate.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-c16c32-1.c
tst-c32-state.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-fgetwc-after-eof.c
tst-mbrtowc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-mbrtowc2.c
tst-mbsrtowcs.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-mbstowcs.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wchar-h.c
tst-wcpncpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcrtomb.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcslcat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcslcat2.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcslcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcslcpy2.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcsnlen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcstod-nan-locale.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcstod-nan-sign.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcstod-round.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcstof.c
tst-wcstol-binary-c11.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcstol-binary-c23.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcstol-binary-gnu11.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcstol-binary-gnu23.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wcstol-locale.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wprintf-binary.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wprintf-intn.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wscanf-binary-c11.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wscanf-binary-c23.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wscanf-binary-gnu11.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wscanf-binary-gnu89.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wscanf-intn.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wscanf-to_inpunct.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
uchar.h Define C23 header version macros 2025-11-27 19:32:49 +00:00
wchar.h Define C23 header version macros 2025-11-27 19:32:49 +00:00
wcpcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcpncpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcrtomb.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcs-two-way.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsatcliff.c
wcscasecmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcscasecmp_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcscat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcschr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcschrnul.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcscmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcscoll.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcscoll_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcscpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcscspn.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsdup.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcslcat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcslcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcslen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsmbs-tst1.c
wcsmbsload.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsmbsload.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsncase.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsncase_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsncat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsncmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsncpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsnlen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsnrtombs.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcspbrk.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsrchr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsrtombs.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsspn.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsstr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstod.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstod_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstod_nan.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstof.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstof_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstof_nan.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstok.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstol.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstol_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstold.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstold_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstold_nan.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstoll.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstoll_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstoul.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstoul_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstoull.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcstoull_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcswidth.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsxfrm.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsxfrm_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wctob.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcwidth.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcwidth.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wmemchr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wmemcmp.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wmemcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wmemmove.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wmempcpy.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wmemset.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00