From c6ad49622e42b4b80ba5fbad40a0776ec74e9ec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B6rn=20SVENSSON=20via=20Newlib?= Date: Mon, 5 Oct 2020 14:50:13 +0200 Subject: [PATCH] libc/time: Move internal newlib tz-structs into own header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As discussed in GCC bug 97088 (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97088), parameters in prototypes of library functions should use reserved names, or no name at all. This patch moves the internal struct __tzrule_struct to its own internal header sys/_tz_structs.h. This is included from newlib's time code as well as from Cygwin's localtime wrapper. Signed-off-by: Torbjörn SVENSSON Signed-off-by: Corinna Vinschen --- newlib/libc/include/sys/_tz_structs.h | 24 ++++++++++++++++++++++++ newlib/libc/include/time.h | 20 -------------------- newlib/libc/sys/linux/include/time.h | 20 -------------------- newlib/libc/sys/phoenix/include/time.h | 17 ----------------- newlib/libc/time/local.h | 1 + winsup/cygwin/tzcode/localtime_wrapper.c | 1 + 6 files changed, 26 insertions(+), 57 deletions(-) create mode 100644 newlib/libc/include/sys/_tz_structs.h diff --git a/newlib/libc/include/sys/_tz_structs.h b/newlib/libc/include/sys/_tz_structs.h new file mode 100644 index 000000000000..9610b06819e1 --- /dev/null +++ b/newlib/libc/include/sys/_tz_structs.h @@ -0,0 +1,24 @@ +#ifndef _SYS__TZ_STRUCTS_H_ +#define _SYS__TZ_STRUCTS_H_ + +typedef struct __tzrule_struct +{ + char ch; + int m; /* Month of year if ch=M */ + int n; /* Week of month if ch=M */ + int d; /* Day of week if ch=M, day of year if ch=J or ch=D */ + int s; /* Time of day in seconds */ + time_t change; + long offset; /* Match type of _timezone. */ +} __tzrule_type; + +typedef struct __tzinfo_struct +{ + int __tznorth; + int __tzyear; + __tzrule_type __tzrule[2]; +} __tzinfo_type; + +__tzinfo_type *__gettzinfo (void); + +#endif /* _SYS__TZ_STRUCTS_H_ */ diff --git a/newlib/libc/include/time.h b/newlib/libc/include/time.h index 3031590b441c..ed6cc70fec94 100644 --- a/newlib/libc/include/time.h +++ b/newlib/libc/include/time.h @@ -102,26 +102,6 @@ void tzset (void); #endif void _tzset_r (struct _reent *); -typedef struct __tzrule_struct -{ - char ch; - int m; - int n; - int d; - int s; - time_t change; - long offset; /* Match type of _timezone. */ -} __tzrule_type; - -typedef struct __tzinfo_struct -{ - int __tznorth; - int __tzyear; - __tzrule_type __tzrule[2]; -} __tzinfo_type; - -__tzinfo_type *__gettzinfo (void); - /* getdate functions */ #ifdef HAVE_GETDATE diff --git a/newlib/libc/sys/linux/include/time.h b/newlib/libc/sys/linux/include/time.h index 5e61d2b65057..917a35858285 100644 --- a/newlib/libc/sys/linux/include/time.h +++ b/newlib/libc/sys/linux/include/time.h @@ -84,26 +84,6 @@ char *strptime (const char *, const char *, struct tm *); void tzset (void); void _tzset_r (struct _reent *); -typedef struct __tzrule_struct -{ - char ch; - int m; - int n; - int d; - int s; - time_t change; - long offset; /* Match type of _timezone. */ -} __tzrule_type; - -typedef struct __tzinfo_struct -{ - int __tznorth; - int __tzyear; - __tzrule_type __tzrule[2]; -} __tzinfo_type; - -__tzinfo_type *__gettzinfo (void); - /* getdate functions */ #ifndef _REENT_ONLY diff --git a/newlib/libc/sys/phoenix/include/time.h b/newlib/libc/sys/phoenix/include/time.h index 3a9449c77540..41fb137e4391 100644 --- a/newlib/libc/sys/phoenix/include/time.h +++ b/newlib/libc/sys/phoenix/include/time.h @@ -40,23 +40,6 @@ extern char *_tzname[2]; #define tzname _tzname #endif -typedef struct __tzrule_struct { - char ch; - int m; - int n; - int d; - int s; - time_t change; - long offset; -} __tzrule_type; - -typedef struct __tzinfo_struct { - int __tznorth; - int __tzyear; - __tzrule_type __tzrule[2]; -} __tzinfo_type; - -__tzinfo_type *__gettzinfo(); void tzset(); clock_t clock(); diff --git a/newlib/libc/time/local.h b/newlib/libc/time/local.h index dce51cda29bf..bfe06e62230d 100644 --- a/newlib/libc/time/local.h +++ b/newlib/libc/time/local.h @@ -1,6 +1,7 @@ /* local header used by libc/time routines */ #include <_ansi.h> #include +#include #define SECSPERMIN 60L #define MINSPERHOUR 60L diff --git a/winsup/cygwin/tzcode/localtime_wrapper.c b/winsup/cygwin/tzcode/localtime_wrapper.c index 3ac8f8cb00ea..4e784480b0f4 100644 --- a/winsup/cygwin/tzcode/localtime_wrapper.c +++ b/winsup/cygwin/tzcode/localtime_wrapper.c @@ -11,6 +11,7 @@ details. */ #include "tz_posixrules.h" #include #include +#include static NO_COPY SRWLOCK tzset_guard = SRWLOCK_INIT; -- 2.26.2