From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by sourceware.org (Postfix) with ESMTP id 374A53857821 for ; Thu, 15 Oct 2020 10:21:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 374A53857821 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-176-mX0HDXxTO8GFBGTWH9l_WA-1; Thu, 15 Oct 2020 06:21:42 -0400 X-MC-Unique: mX0HDXxTO8GFBGTWH9l_WA-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5F64D64094; Thu, 15 Oct 2020 10:21:41 +0000 (UTC) Received: from calimero.vinschen.de (ovpn-114-205.ams2.redhat.com [10.36.114.205]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D392876666; Thu, 15 Oct 2020 10:21:40 +0000 (UTC) Received: by calimero.vinschen.de (Postfix, from userid 500) id 5D533A82BC2; Thu, 15 Oct 2020 12:21:39 +0200 (CEST) Date: Thu, 15 Oct 2020 12:21:39 +0200 From: Corinna Vinschen To: Torbjorn SVENSSON Cc: newlib@sourceware.org Subject: Re: [PATCH v2] libc/time: Move internal newlib tz-structs to local.h Message-ID: <20201015102139.GI26704@calimero.vinschen.de> Reply-To: newlib@sourceware.org Mail-Followup-To: Torbjorn SVENSSON , newlib@sourceware.org References: <20201005125011.28344-1-torbjorn.svensson@st.com> MIME-Version: 1.0 In-Reply-To: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="/NkBOFFp2J2Af1nK" Content-Disposition: inline X-Spam-Status: No, score=-13.1 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Oct 2020 10:21:46 -0000 --/NkBOFFp2J2Af1nK Content-Type: text/plain; charset=utf-8 Content-Disposition: inline On Oct 15 06:52, Torbjorn SVENSSON via Newlib wrote: > Ping! Due to vacation I only just checked now. The patch breaks the Cygwin build. Especially __tzinfo_type has to be exposed from a public header in newlib. So what about the attached patch instead? Corinna --/NkBOFFp2J2Af1nK Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="0001-libc-time-Move-internal-newlib-tz-structs-into-own-h.patch" Content-Transfer-Encoding: 8bit >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 --/NkBOFFp2J2Af1nK--