From 828c72519f49b16b989886ef4f66859d12c46aa9 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Mon, 6 Jun 2022 14:47:03 +0000 Subject: [PATCH] Declare timegm for ISO C2X The next revision of the ISO C standard has added the timegm function (that was already supported in glibc). Update the feature test conditionals on its declaration in accordingly. Tested for x86_64. --- time/time.h | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/time/time.h b/time/time.h index 2cf89e6..d180891 100644 --- a/time/time.h +++ b/time/time.h @@ -240,21 +240,30 @@ extern long int timezone; ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) +#if defined __USE_MISC || __GLIBC_USE (ISOC2X) +# ifndef __USE_TIME_BITS64 +/* Like `mktime', but for TP represents Universal Time, not local time. */ +extern time_t timegm (struct tm *__tp) __THROW; +# else +# ifdef __REDIRECT_NTH +extern time_t __REDIRECT_NTH (timegm, (struct tm *__tp), __timegm64); +# else +# define timegm __timegm64 +# endif +# endif +#endif + + #ifdef __USE_MISC /* Miscellaneous functions many Unices inherited from the public domain localtime package. These are included only for compatibility. */ #ifndef __USE_TIME_BITS64 -/* Like `mktime', but for TP represents Universal Time, not local time. */ -extern time_t timegm (struct tm *__tp) __THROW; /* Another name for `mktime'. */ extern time_t timelocal (struct tm *__tp) __THROW; #else # ifdef __REDIRECT_NTH -extern time_t __REDIRECT_NTH (timegm, (struct tm *__tp), __timegm64); extern time_t __REDIRECT_NTH (timelocal, (struct tm *__tp), __mktime64); -# else -# define timegm __timegm64 # endif #endif -- 2.7.4