This should work better with glibc. * lib/mktime.c: Do not include verify.h. Use static_assert instead of verify. * modules/mktime (Depends-on): Depend on assert-h, not verify. --- ChangeLog | 6 ++++++ lib/mktime.c | 7 +++---- modules/mktime | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/ChangeLog b/ChangeLog index 08a452130d..4316c1bed4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2024-10-03 Paul Eggert <egg...@cs.ucla.edu> + mktime: prefer static_assert to verify + This should work better with glibc. + * lib/mktime.c: Do not include verify.h. + Use static_assert instead of verify. + * modules/mktime (Depends-on): Depend on assert-h, not verify. + mktime: refactor convert_time This is to better merge with a future version of glibc. This merges a glibc patch by Florian Weimer in: diff --git a/lib/mktime.c b/lib/mktime.c index a4974de63f..561c948713 100644 --- a/lib/mktime.c +++ b/lib/mktime.c @@ -51,7 +51,6 @@ #include <string.h> #include <intprops.h> -#include <verify.h> #ifndef NEED_MKTIME_INTERNAL # define NEED_MKTIME_INTERNAL 0 @@ -124,7 +123,7 @@ typedef long int long_int; # else typedef long long int long_int; # endif -verify (INT_MAX <= TYPE_MAXIMUM (long_int) / 4 / 366 / 24 / 60 / 60); +static_assert (INT_MAX <= TYPE_MAXIMUM (long_int) / 4 / 366 / 24 / 60 / 60); /* Shift A right by B bits portably, by dividing A by 2**B and truncating towards minus infinity. B should be in the range 0 <= B @@ -157,7 +156,7 @@ static long_int const mktime_max # define EPOCH_YEAR 1970 # define TM_YEAR_BASE 1900 -verify (TM_YEAR_BASE % 100 == 0); +static_assert (TM_YEAR_BASE % 100 == 0); /* Is YEAR + TM_YEAR_BASE a leap year? */ static bool @@ -206,7 +205,7 @@ static long_int ydhms_diff (long_int year1, long_int yday1, int hour1, int min1, int sec1, int year0, int yday0, int hour0, int min0, int sec0) { - verify (-1 / 2 == 0); + static_assert (-1 / 2 == 0); /* Compute intervening leap days correctly even if year is negative. Take care to avoid integer overflow here. */ diff --git a/modules/mktime b/modules/mktime index e5c4c05687..6d924477c5 100644 --- a/modules/mktime +++ b/modules/mktime @@ -10,12 +10,12 @@ Depends-on: time-h c99 multiarch +assert-h [test $REPLACE_MKTIME = 1] intprops [test $REPLACE_MKTIME = 1] libc-config [test $REPLACE_MKTIME = 1] stdbool [test $REPLACE_MKTIME = 1] stdckdint [test $REPLACE_MKTIME = 1] time_r [test $REPLACE_MKTIME = 1] -verify [test $REPLACE_MKTIME = 1] configure.ac: gl_FUNC_MKTIME -- 2.43.0