diff options
author | Elliott Hughes <enh@google.com> | 2014-06-19 13:54:10 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2014-06-19 13:54:10 -0700 |
commit | 5f564540a953a670925e058dabc521f68ffb997c (patch) | |
tree | 0269b23ca27a57f847e39f59a6dc439928c4d410 /libc/tzcode | |
parent | 942fa486f669da8bb5db724d5c4fdc93b4fb65d9 (diff) | |
download | bionic-5f564540a953a670925e058dabc521f68ffb997c.zip bionic-5f564540a953a670925e058dabc521f68ffb997c.tar.gz bionic-5f564540a953a670925e058dabc521f68ffb997c.tar.bz2 |
Build tzcode with -Werror.
Parts of this are just getting us in sync with upstream, but the
'const' stuff is our own mess. We should kill the *_tz functions
and lose this difference from upstream.
Change-Id: I17d26534ed3f54667143d78147a8c53be56d7b33
Diffstat (limited to 'libc/tzcode')
-rw-r--r-- | libc/tzcode/localtime.c | 43 | ||||
-rw-r--r-- | libc/tzcode/private.h | 43 | ||||
-rw-r--r-- | libc/tzcode/strftime.c | 41 |
3 files changed, 59 insertions, 68 deletions
diff --git a/libc/tzcode/localtime.c b/libc/tzcode/localtime.c index 4ba2968..2581c12 100644 --- a/libc/tzcode/localtime.c +++ b/libc/tzcode/localtime.c @@ -159,9 +159,9 @@ static const char * getoffset(const char * strp, int_fast32_t * offsetp); static const char * getrule(const char * strp, struct rule * rulep); static void gmtload(struct state * sp); static struct tm * gmtsub(const time_t * timep, int_fast32_t offset, - struct tm * tmp, const struct state * sp); // android-changed: added sp. + struct tm * tmp, struct state * sp); // android-changed: added sp. static struct tm * localsub(const time_t * timep, int_fast32_t offset, - struct tm * tmp, const struct state * sp); // android-changed: added sp. + struct tm * tmp, struct state * sp); // android-changed: added sp. static int increment_overflow(int * number, int delta); static int leaps_thru_end_of(int y) ATTRIBUTE_PURE; static int increment_overflow32(int_fast32_t * number, int delta); @@ -173,16 +173,16 @@ static int normalize_overflow(int * tensptr, int * unitsptr, static void settzname(void); static time_t time1(struct tm * tmp, struct tm * (*funcp)(const time_t *, - int_fast32_t, struct tm *, const struct state *), // android-changed: added state*. - int_fast32_t, const struct state * sp); // android-changed: added sp. + int_fast32_t, struct tm *, struct state *), // android-changed: added state*. + int_fast32_t, struct state * sp); // android-changed: added sp. static time_t time2(struct tm * tmp, struct tm * (*funcp)(const time_t *, - int_fast32_t, struct tm*, const struct state *), // android-changed: added state*. - int_fast32_t offset, int * okayp, const struct state * sp); // android-changed: added sp. + int_fast32_t, struct tm*, struct state *), // android-changed: added state*. + int_fast32_t offset, int * okayp, struct state * sp); // android-changed: added sp. static time_t time2sub(struct tm *tmp, struct tm * (*funcp) (const time_t *, - int_fast32_t, struct tm*, const struct state *), // android-changed: added state*. - int_fast32_t offset, int * okayp, int do_norm_secs, const struct state * sp); // android-change: added sp. + int_fast32_t, struct tm*, struct state *), // android-changed: added state*. + int_fast32_t offset, int * okayp, int do_norm_secs, struct state * sp); // android-change: added sp. static struct tm * timesub(const time_t * timep, int_fast32_t offset, const struct state * sp, struct tm * tmp); static int tmcomp(const struct tm * atmp, @@ -945,7 +945,6 @@ tzparse(const char * name, register struct state * const sp, register int load_result; static struct ttinfo zttinfo; - INITIALIZE(dstname); stdname = name; if (lastditch) { stdlen = strlen(name); /* length of standard zone name */ @@ -1284,7 +1283,7 @@ tzset(void) /*ARGSUSED*/ static struct tm * localsub(const time_t * const timep, const int_fast32_t offset, - struct tm * const tmp, const struct state * sp) // android-changed: added sp. + struct tm * const tmp, struct state * sp) // android-changed: added sp. { register const struct ttinfo * ttisp; register int i; @@ -1390,16 +1389,18 @@ localtime_r(const time_t * const timep, struct tm * tmp) static struct tm * gmtsub(const time_t * const timep, const int_fast32_t offset, - struct tm *const tmp, const struct state * sp __unused) // android-changed: added sp. + struct tm *const tmp, struct state * sp __unused) // android-changed: added sp. { register struct tm * result; if (!gmt_is_set) { - gmt_is_set = TRUE; #ifdef ALL_STATE gmtptr = malloc(sizeof *gmtptr); + gmt_is_set = gmtptr != NULL; +#else + gmt_is_set = TRUE; #endif /* defined ALL_STATE */ - if (gmtptr != NULL) + if (gmt_is_set) gmtload(gmtptr); } result = timesub(timep, offset, gmtptr, tmp); @@ -1710,10 +1711,10 @@ tmcomp(register const struct tm * const atmp, static time_t time2sub(struct tm * const tmp, - struct tm *(*const funcp)(const time_t*, int_fast32_t, struct tm*, const struct state*), + struct tm *(*const funcp)(const time_t*, int_fast32_t, struct tm*, struct state*), const int_fast32_t offset, int * const okayp, - const int do_norm_secs, const struct state * sp) // android-changed: added sp + const int do_norm_secs, struct state * sp) // android-changed: added sp { register int dir; register int i, j; @@ -1848,7 +1849,7 @@ time2sub(struct tm * const tmp, */ // BEGIN android-changed: support user-supplied sp if (sp == NULL) { - sp = (const struct state *) + sp = (struct state *) ((funcp == localsub) ? lclptr : gmtptr); } // END android-changed @@ -1889,9 +1890,9 @@ label: static time_t time2(struct tm * const tmp, - struct tm * (*const funcp)(const time_t *, int_fast32_t, struct tm *, const struct state *), // android-changed: added sp. + struct tm * (*const funcp)(const time_t *, int_fast32_t, struct tm *, struct state *), // android-changed: added sp. const int_fast32_t offset, - int *const okayp, const struct state* sp) // android-changed: added sp. + int *const okayp, struct state* sp) // android-changed: added sp. { time_t t; @@ -1906,8 +1907,8 @@ time2(struct tm * const tmp, static time_t time1(struct tm * const tmp, - struct tm * (* const funcp) (const time_t *, int_fast32_t, struct tm *, const struct state *), // android-changed: added sp. - const int_fast32_t offset, const struct state * sp) // android-changed: added sp. + struct tm * (* const funcp) (const time_t *, int_fast32_t, struct tm *, struct state *), // android-changed: added sp. + const int_fast32_t offset, struct state * sp) // android-changed: added sp. { register time_t t; register int samei, otheri; @@ -1944,7 +1945,7 @@ time1(struct tm * const tmp, */ // BEGIN android-changed: support user-supplied sp. if (sp == NULL) { - sp = (const struct state *) ((funcp == localsub) ? lclptr : gmtptr); + sp = (struct state *) ((funcp == localsub) ? lclptr : gmtptr); } // BEGIN android-changed if (sp == NULL) diff --git a/libc/tzcode/private.h b/libc/tzcode/private.h index 4eb0ab6..c30c711 100644 --- a/libc/tzcode/private.h +++ b/libc/tzcode/private.h @@ -19,7 +19,7 @@ /* ** Defaults for preprocessor symbols. -** You can override these in your C compiler options, e.g. `-DHAVE_ADJTIME=0'. +** You can override these in your C compiler options, e.g. '-DHAVE_ADJTIME=0'. */ #ifndef HAVE_ADJTIME @@ -62,9 +62,11 @@ #define HAVE_UTMPX_H 0 #endif /* !defined HAVE_UTMPX_H */ +#if !defined(__ANDROID__) #ifndef LOCALE_HOME #define LOCALE_HOME "/usr/lib/locale" #endif /* !defined LOCALE_HOME */ +#endif // __ANDROID__ #if HAVE_INCOMPATIBLE_CTIME_R #define asctime_r _incompatible_asctime_r @@ -120,8 +122,9 @@ */ #ifndef HAVE_STDINT_H #define HAVE_STDINT_H \ - (199901 <= __STDC_VERSION__ || \ - 2 < (__GLIBC__ + (0 < __GLIBC_MINOR__))) + (199901 <= __STDC_VERSION__ \ + || 2 < __GLIBC__ + (1 <= __GLIBC_MINOR__) \ + || __CYGWIN__) #endif /* !defined HAVE_STDINT_H */ #if HAVE_STDINT_H @@ -205,6 +208,10 @@ typedef unsigned long uintmax_t; #define INT32_MIN (-1 - INT32_MAX) #endif /* !defined INT32_MIN */ +#ifndef SIZE_MAX +#define SIZE_MAX ((size_t) -1) +#endif + #if 2 < __GNUC__ + (96 <= __GNUC_MINOR__) # define ATTRIBUTE_CONST __attribute__ ((const)) # define ATTRIBUTE_PURE __attribute__ ((__pure__)) @@ -347,29 +354,15 @@ static time_t const time_t_max = ** INITIALIZE(x) */ -#ifndef GNUC_or_lint #ifdef lint -#define GNUC_or_lint -#endif /* defined lint */ -#ifndef lint -#ifdef __GNUC__ -#define GNUC_or_lint -#endif /* defined __GNUC__ */ -#endif /* !defined lint */ -#endif /* !defined GNUC_or_lint */ - -#ifndef INITIALIZE -#ifdef GNUC_or_lint -#define INITIALIZE(x) ((x) = 0) -#endif /* defined GNUC_or_lint */ -#ifndef GNUC_or_lint -#define INITIALIZE(x) -#endif /* !defined GNUC_or_lint */ -#endif /* !defined INITIALIZE */ +# define INITIALIZE(x) ((x) = 0) +#else +# define INITIALIZE(x) +#endif /* ** For the benefit of GNU folk... -** `_(MSGID)' uses the current locale's message library string for MSGID. +** '_(MSGID)' uses the current locale's message library string for MSGID. ** The default is to use gettext if available, and use MSGID otherwise. */ @@ -381,9 +374,9 @@ static time_t const time_t_max = #endif /* !HAVE_GETTEXT */ #endif /* !defined _ */ -#ifndef TZ_DOMAIN -#define TZ_DOMAIN "tz" -#endif /* !defined TZ_DOMAIN */ +#if !defined TZ_DOMAIN && defined TZ_DOMAINDIR +# define TZ_DOMAIN "tz" +#endif #if HAVE_INCOMPATIBLE_CTIME_R #undef asctime_r diff --git a/libc/tzcode/strftime.c b/libc/tzcode/strftime.c index 967629d..a926164 100644 --- a/libc/tzcode/strftime.c +++ b/libc/tzcode/strftime.c @@ -1,12 +1,9 @@ -#ifndef lint -#ifndef NOID -static char elsieid[] = "@(#)strftime.c 8.1"; /* -** Based on the UCB version with the ID appearing below. +** Based on the UCB version with the copyright notice and sccsid +** appearing below. +** ** This is ANSIish only when "multibyte character == plain character". */ -#endif /* !defined NOID */ -#endif /* !defined lint */ #include "private.h" @@ -22,35 +19,27 @@ static char elsieid[] = "@(#)strftime.c 8.1"; ** by the University of California, Berkeley. The name of the ** University may not be used to endorse or promote products derived ** from this software without specific prior written permission. -** THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +** THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR ** IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ -#ifndef LIBC_SCCS -#ifndef lint -static const char sccsid[] = "@(#)strftime.c 5.4 (Berkeley) 3/14/89"; -#endif /* !defined lint */ -#endif /* !defined LIBC_SCCS */ - #include "tzfile.h" #include "fcntl.h" #include "locale.h" -#include <ctype.h> + +#if __ANDROID__ +/* Android: struct lc_time_T is defined as strftime_locale in "bionic_time.h" */ +#include "private/bionic_time.h" /* for strftime_tz */ +#define lc_time_T strftime_locale #if defined(__LP64__) #define time64_t time_t #define mktime64 mktime #else #include <time64.h> #endif -#include "private/bionic_time.h" /* for strftime_tz */ - -/* struct lc_time_T is now defined as strftime_locale - * in <time.h> - */ -#if 1 -#define lc_time_T strftime_locale -#else +#include <ctype.h> +#else // not __ANDROID__ struct lc_time_T { const char * mon[MONSPERYEAR]; const char * month[MONSPERYEAR]; @@ -65,7 +54,15 @@ struct lc_time_T { }; #endif +#if LOCALE_HOME +#include "sys/stat.h" +static struct lc_time_T localebuf; +static struct lc_time_T * _loc(void); +#define Locale _loc() +#endif /* defined LOCALE_HOME */ +#ifndef LOCALE_HOME #define Locale (&C_time_locale) +#endif /* !defined LOCALE_HOME */ static const struct lc_time_T C_time_locale = { { |