glibc/time
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/types
sys Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
Depend
Makefile Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
Versions
adjtime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
alt_digit.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
asctime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
bug-asctime.c
bug-asctime_r.c
bug-getdate1.c
bug-mktime1.c
bug-mktime4.c
clock.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
clock_getcpuclockid.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
clock_getres.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
clock_gettime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
clock_nanosleep.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
clock_settime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
clocktest.c
ctime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ctime_r.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
difftime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dysize.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
era.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ftime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
getdate.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
getitimer.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
gettimeofday.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
gmtime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
lc-time-cleanup.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
localtime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mktime-internal.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mktime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
offtime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
setitimer.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
settimeofday.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
settimezone.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
stime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strftime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strftime_l.c Cleanup some recently added whitespace. 2025-10-30 18:56:58 -07:00
strptime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strptime_l.c Cleanup some recently added whitespace. 2025-10-30 18:56:58 -07:00
test_time.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
time.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
time.h Define C23 header version macros 2025-11-27 19:32:49 +00:00
timegm.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
timespec_get.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
timespec_getres.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-adjtime-time64.c
tst-adjtime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-clock-time64.c
tst-clock.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-clock2-time64.c
tst-clock2.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-clock_gettime-time64.c Add tests of time, gettimeofday, clock_gettime 2024-10-30 16:48:38 +00:00
tst-clock_gettime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-clock_nanosleep-time64.c
tst-clock_nanosleep.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-clock_settime-time64.c
tst-clock_settime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-cpuclock1-time64.c
tst-cpuclock1.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-ctime-time64.c
tst-ctime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-difftime-time64.c
tst-difftime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-ftime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-ftime_l.c
tst-getdate.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-gettimeofday-time64.c Add tests of time, gettimeofday, clock_gettime 2024-10-30 16:48:38 +00:00
tst-gettimeofday.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-gmtime-time64.c
tst-gmtime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-itimer-time64.c
tst-itimer.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-mktime.c
tst-mktime2.c
tst-mktime3.c
tst-mktime4-time64.c
tst-mktime4.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-posixtz.c
tst-settimeofday-time64.c
tst-settimeofday.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strftime.c
tst-strftime2.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strftime3.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strftime4-time64.c
tst-strftime4.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strptime-whitespace.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strptime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-strptime2.c
tst-strptime3.c
tst-time-time64.c Add tests of time, gettimeofday, clock_gettime 2024-10-30 16:48:38 +00:00
tst-time.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-timegm-time64.c
tst-timegm.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-timespec_get-time64.c
tst-timespec_get.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-timespec_getres-time64.c
tst-timespec_getres.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-tzfile-fault.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-tzname.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-y2039-time64.c
tst-y2039.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst_wcsftime.c
tzfile.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tzset.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsftime.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wcsftime_l.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00