diff options
author | Roland McGrath <roland@gnu.org> | 2005-10-17 05:22:03 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2005-10-17 05:22:03 +0000 |
commit | b50fedc465a51795afd731e67f72a7eeebebce1b (patch) | |
tree | 7c3009db9169b0842002ef05f25bc293f0aedf33 | |
parent | 7dce326c64d91c0237ae20657d3a65c114627eed (diff) | |
download | glibc-b50fedc465a51795afd731e67f72a7eeebebce1b.tar.gz glibc-b50fedc465a51795afd731e67f72a7eeebebce1b.tar.xz glibc-b50fedc465a51795afd731e67f72a7eeebebce1b.zip |
Updated to fedora-glibc-2_3-20051017T0518
53 files changed, 1138 insertions, 598 deletions
diff --git a/ChangeLog b/ChangeLog index 7d907ffbf6..7bcd7a7b4c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,10 @@ forward decl out of function body. * sysdeps/mach/hurd/profil.c: Likewise. +2005-09-30 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/i386/fpu/libm-test-ulps: Update for GCC 4.0.x. + 2005-09-19 Richard Henderson <rth@redhat.com> [BZ #1358] @@ -15,6 +19,49 @@ * sysdeps/alpha/ldiv.S (lldiv): Add alias. +2005-09-17 Andreas Jaeger <aj@suse.de> + + * timezone/zdump.c: Include ctype.h. + +2005-09-07 Alexandre Oliva <aoliva@redhat.com> + + * timezone/test-tz.c: Update to match tzdata2005m. + * timezone/tst-timezone.c: Likewise. + +2005-09-06 Ulrich Drepper <drepper@redhat.com> + + * timezone/africa: Update from tzdata2005m. + * timezone/asia: Likewise. + * timezone/australasia: Likewise. + * timezone/backward: Likewise. + * timezone/europe: Likewise. + * timezone/northamerica: Likewise. + * timezone/southamerica: Likewise. + * timezone/zone.tab: Likewise. + * timezone/zdump.c: Update from tzcode2005m. + +2005-08-05 Ulrich Drepper <drepper@redhat.com> + + * timezone/checktab.awk: Update from tzcode2005k. + * timezone/private.h: Likewise. + * timezone/scheck.c: Likewise. + * timezone/tzselect.ksh: Likewise. + * timezone/zdump.c: Likewise. + * timezone/zic.c: Likewise. + * timezone/africa: Update from tzdata2005k. + * timezone/antarctica: Likewise. + * timezone/asia: Likewise. + * timezone/australasia: Likewise. + * timezone/europe: Likewise. + * timezone/iso3166.tab: Likewise. + * timezone/leapseconds: Likewise. + * timezone/northamerica: Likewise. + * timezone/solar87: Likewise. + * timezone/solar88: Likewise. + * timezone/solar89: Likewise. + * timezone/southamerica: Likewise. + * timezone/zone.tab: Likewise. + 2005-08-05 Roland McGrath <roland@frob.com> [BZ #1251] @@ -30,6 +77,12 @@ [BZ #1137] * misc/error.c [_LIBC]: Include <stdbool.h> and <stdint.h>. +2005-09-26 Steven Munroe <sjmunroe@us.ibm.com> + + [BZ #1384] + * sysdeps/powerpc/fpu/libm-test-ulps: Adjust expected y1, y1f, yn, + ynf results. + 2005-07-20 Ulrich Drepper <drepper@redhat.com> [BZ #1138] @@ -142,6 +195,9 @@ * sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c (__have_no_truncate64): Renamed from have_no_truncate64. + * sysdeps/powerpc/fpu/libm-test-ulps: Adjust ulps for complex + float functions for gcc 4. + 2005-06-17 Ulrich Drepper <drepper@redhat.com> [BZ #1106] @@ -251,6 +307,15 @@ instead of [SALEN]. (gaih_inet): Likewise. +2005-04-13 Andreas Schwab <schwab@suse.de> + + [BZ #721] + * sysdeps/ia64/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE) + [PROF]: Open code strong_alias because the original name is not + visible to the compiler. + * sysdeps/powerpc/powerpc64/dl-machine.h + (ELF_MACHINE_RUNTIME_TRAMPOLINE) [PROF]: Likewise. + 2005-05-06 Jakub Jelinek <jakub@redhat.com> [BZ #934] @@ -260,6 +325,10 @@ * posix/regcomp.c (re_compile_internal): Add __libc_lock_init. * posix/regexec.c (regexec, re_search_stub): Add locking. +2005-05-03 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/fpu/libm-test-ulps: Adjust for gcc 4. + 2005-04-29 Jakub Jelinek <jakub@redhat.com> [BZ #1083] @@ -453,6 +522,24 @@ * pwd/putpwent.c (putpwent): Don't write 0 as user or group ID if user name starts with + or -. +2005-04-29 Roland McGrath <roland@redhat.com> + + * timezone/africa: Update from tzdata2005i. + * timezone/asia: Likewise. + * timezone/northamerica: Likewise. + * timezone/yearistype: Likewise. + +2005-04-15 Roland McGrath <roland@redhat.com> + + * timezone/Makefile (zic-deps): New variable. + ($(testdata)/America/New_York): Use it instead of explicit deps. + ($(testdata)/Etc/UTC, $(testdata)/Australia/Melbourne): Likewise. + ($(testdata)/America/Sao_Paulo, $(testdata)/Asia/Tokyo): Likewise. + (%/UTC %/Universal): New pattern rule, replaces ... + ($(testdata)/UTC, $(testdata)/Universal): ... these removed targets. + ($(testdata)/%/Berlin $(testdata)/%/London): New pattern rule. + ($(testdata)/Europe/London, $(testdata)/Europe/Berlin): Removed. + 2005-04-05 Roland McGrath <roland@redhat.com> * NEWS, version.h (VERSION): 2.3.5. @@ -689,6 +776,12 @@ * posix/tst-execle1.c (do_test): Fix execle arguments. * posix/tst-execle2.c (do_test): Likewise. +2005-03-25 Jakub Jelinek <jakub@redhat.com> + + [BZ #721] + * sysdeps/generic/wcstoul_l.c: Include "wcstol_l.c" rather than + <wcstol_l.c>. + 2005-03-23 Jakub Jelinek <jakub@redhat.com> [BZ #822] @@ -780,6 +873,13 @@ * elf/unload3mod4.c: Declare foo. * elf/testobj2.c: Include <stdio.h>. +2005-03-05 Jakub Jelinek <jakub@redhat.com> + + [BZ #721] + * sysdeps/i386/dl-machine.h (ELF_MACHINE_NO_RELA): Define + unconditionally to (defined RTLD_BOOTSTRAP). + * sysdeps/arm/dl-machine.h (ELF_MACHINE_NO_RELA): Likewise. + 2005-03-01 H.J. Lu <hongjiu.lu@intel.com> [BZ #776] @@ -805,6 +905,47 @@ * elf/unload3mod3.c: New file. * elf/unload3mod4.c: New file. +2005-03-16 Richard Henderson <rth@redhat.com> + + [BZ #721] + * include/libc-symbols.h (__hidden_proto): Remove bogus declaration + of internal. + (__hidden_def1, __hidden_dot_def1): Remove. + (__hidden_def2, __hidden_def3): Remove. + (__hidden_ver1): New. + (hidden_ver, hidden_def, hidden_weak): Use it. + (hidden_data_ver, hidden_data_ver, hidden_data_weak): Use non-data + version of the macro. + + [BZ #721] + * include/wchar.h (__wcscoll): Remove. + * wcsmbs/wcscoll.c: Define wcscoll directly instead of via __wcscoll. + * string/strcoll.c: Don't issue libc_hidden_def STRCOLL redefined. + +2005-03-15 Jakub Jelinek <jakub@redhat.com> + + [BZ #721] + * elf/dynamic-link.h (elf_machine_rel, elf_machine_rel_relative, + elf_machine_rela, elf_machine_rela_relative, elf_machine_lazy_rel): + Add inline keyword. + * sysdeps/alpha/dl-machine.h (elf_machine_rela, + elf_machine_rela_relative, elf_machine_lazy_rel): Add always_inline + attribute. + * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela, + elf_machine_rela_relative, elf_machine_lazy_rel): Likewise. Change + static inline into auto inline. + * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela, + elf_machine_rela_relative, elf_machine_lazy_rel): Likewise. + * sysdeps/generic/dl-machine.h (elf_machine_rel, elf_machine_rela): + Likewise. + * sysdeps/arm/dl-machine.h (elf_machine_rel, elf_machine_rel_relative, + elf_machine_rela, elf_machine_rela_relative, elf_machine_lazy_rel): + Likewise. + * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela, + elf_machine_rela_relative, elf_machine_lazy_rel): Likewise. + * sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela, + elf_machine_rela_relative, elf_machine_lazy_rel): Likewise. + 2005-02-21 Alan Modra <amodra@bigpond.net.au> [BZ #1394] @@ -915,6 +1056,19 @@ * sysdeps/posix/getaddrinfo.c (gaih_inet): Fix type of ADDR local. +2005-02-16 Roland McGrath <roland@redhat.com> + + [BZ #721] + * sysdeps/i386/dl-machine.h (ELF_MACHINE_NO_RELA): Define this outside + of [RESOLVE]. + * sysdeps/sh/dl-machine.h (ELF_MACHINE_NO_REL): Likewise. + +2005-02-03 Alexandre Oliva <aoliva@redhat.com> + + [BZ #721] + * elf/dynamic-link.h: Don't declare nested auto functions that are + not going to be defined. + 2004-07-23 Jakub Jelinek <jakub@redhat.com> [BZ #284] @@ -927,6 +1081,18 @@ * sysdeps/mach/hurd/setresgid.c: Use weak_alias. * sysdeps/mach/hurd/setresuid.c: Likewise. +2005-02-14 Alan Modra <amodra@bigpond.net.au> + + [BZ #721] + * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela): Define + with auto inline, and attribute always_inline. + (elf_machine_rela_relative, elf_machine_lazy_rel): Likewise. + (elf_machine_rel, elf_machine_rel_relative): Likewise. + * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela): Likewise. + (elf_machine_rela_relative, elf_machine_lazy_rel): Likewise. + (elf_machine_rel, elf_machine_rel_relative): Likewise. + (elf_machine_tprel): Likewise. + 2005-02-09 Jakub Jelinek <jakub@redhat.com> [BZ #710] @@ -935,11 +1101,27 @@ * stdlib/tst-random2.c: New test. Reported by Peter Bergner <bergner@vnet.ibm.com>. +2005-02-07 Richard Henderson <rth@redhat.com> + + [BZ #721] + * iconvdata/jis0208.h (struct jisx0208_ucs_idx): Move before use. + 2005-02-07 Ulrich Drepper <drepper@redhat.com> * elf/dl-load.c (_dl_map_object_from_fd): Make sure registers are set correctly. +2005-01-07 Richard Henderson <rth@redhat.com> + + [BZ #721] + * math/math_private.h (__copysign): Define as builtin for gcc 4. + (__copysignf, __copysignl): Likewise. + * sysdeps/alpha/fpu/bits/mathinline.h (copysign): Don't define + for gcc 4.0. + (copysignf, copysignl, fabsf, fabs): Likewise. + (__copysign, __copysignf, __copysignl): Remove. + (__fabs, __fabsf): Remove. + 2005-01-07 Jakub Jelinek <jakub@redhat.com> [BZ #738] diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h index f9559dc59c..04235575c5 100644 --- a/elf/dynamic-link.h +++ b/elf/dynamic-link.h @@ -1,5 +1,5 @@ /* Inline functions for dynamic linking. - Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 1995-2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -31,26 +31,30 @@ optimizing away alignment tests or using word instructions for copying memory, breaking the very code written to handle the unaligned cases. */ -auto void __attribute__((always_inline)) +# if ! ELF_MACHINE_NO_REL +auto inline void __attribute__((always_inline)) elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc, const ElfW(Sym) *sym, const struct r_found_version *version, void *const reloc_addr); -auto void __attribute__((always_inline)) +auto inline void __attribute__((always_inline)) +elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc, + void *const reloc_addr); +# endif +# if ! ELF_MACHINE_NO_RELA +auto inline void __attribute__((always_inline)) elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, const ElfW(Sym) *sym, const struct r_found_version *version, void *const reloc_addr); -auto void __attribute__((always_inline)) -elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc, - void *const reloc_addr); -auto void __attribute__((always_inline)) +auto inline void __attribute__((always_inline)) elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc, void *const reloc_addr); +# endif # if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL -auto void __attribute__((always_inline)) +auto inline void __attribute__((always_inline)) elf_machine_lazy_rel (struct link_map *map, ElfW(Addr) l_addr, const ElfW(Rel) *reloc); # else -auto void __attribute__((always_inline)) +auto inline void __attribute__((always_inline)) elf_machine_lazy_rel (struct link_map *map, ElfW(Addr) l_addr, const ElfW(Rela) *reloc); # endif diff --git a/fedora/branch.mk b/fedora/branch.mk index b812790c31..63cadb108d 100644 --- a/fedora/branch.mk +++ b/fedora/branch.mk @@ -3,5 +3,5 @@ glibc-branch := fedora-2_3 glibc-base := glibc-2_3-branch DIST_BRANCH := FC-3 COLLECTION := dist-fc3-updates-candidate -fedora-2_3-sync-date := 2005-10-17 02:59 UTC -fedora-2_3-sync-tag := fedora-glibc-2_3-20051017T0259 +fedora-2_3-sync-date := 2005-10-17 05:18 UTC +fedora-2_3-sync-tag := fedora-glibc-2_3-20051017T0518 diff --git a/iconvdata/jis0208.h b/iconvdata/jis0208.h index 9dea38973c..8255bafc62 100644 --- a/iconvdata/jis0208.h +++ b/iconvdata/jis0208.h @@ -1,5 +1,5 @@ /* Access functions for JISX0208 conversion. - Copyright (C) 1997, 1998, 1999, 2000, 2003 Free Software Foundation, Inc. + Copyright (C) 1997,1998,1999,2000,2003,2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -24,15 +24,6 @@ #include <gconv.h> #include <stdint.h> -/* Conversion table. */ -extern const uint16_t __jis0208_to_ucs[]; - -extern const char __jisx0208_from_ucs4_lat1[256][2]; -extern const char __jisx0208_from_ucs4_greek[0xc1][2]; -extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[]; -extern const char __jisx0208_from_ucs_tab[][2]; - - /* Struct for table with indeces in UCS mapping table. */ struct jisx0208_ucs_idx { @@ -42,6 +33,15 @@ struct jisx0208_ucs_idx }; +/* Conversion table. */ +extern const uint16_t __jis0208_to_ucs[]; + +extern const char __jisx0208_from_ucs4_lat1[256][2]; +extern const char __jisx0208_from_ucs4_greek[0xc1][2]; +extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[]; +extern const char __jisx0208_from_ucs_tab[][2]; + + static inline uint32_t __attribute ((always_inline)) jisx0208_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset) diff --git a/include/libc-symbols.h b/include/libc-symbols.h index dcc46cc80f..4d4968051e 100644 --- a/include/libc-symbols.h +++ b/include/libc-symbols.h @@ -582,78 +582,23 @@ for linking") # define hidden_proto(name, attrs...) \ __hidden_proto (name, __GI_##name, ##attrs) # define __hidden_proto(name, internal, attrs...) \ - extern __typeof (name) internal; \ extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \ __hidden_proto_hiddenattr (attrs); # define __hidden_asmname(name) \ __hidden_asmname1 (__USER_LABEL_PREFIX__, name) # define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name) # define __hidden_asmname2(prefix, name) #prefix name -# ifdef HAVE_ASM_SET_DIRECTIVE -# define __hidden_def1(original, alias) \ - ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \ - .set C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original) -# ifdef HAVE_ASM_GLOBAL_DOT_NAME -# define __hidden_dot_def1(original, alias) ASM_LINE_SEP \ - ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \ - .set C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original) -# else -# define __hidden_dot_def1(original, alias) -# endif -# else -# define __hidden_def1(original, alias) \ - ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \ - C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original) -# ifdef HAVE_ASM_GLOBAL_DOT_NAME -# define __hidden_dot_def1(original, alias) ASM_LINE_SEP \ - ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \ - C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original) -# else -# define __hidden_dot_def1(original, alias) -# endif -# endif -# define __hidden_def2(...) #__VA_ARGS__ -# define __hidden_def3(...) __hidden_def2 (__VA_ARGS__) -# define hidden_def(name) \ - __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name) \ - __hidden_dot_def1 (__GI_##name, name))); -# define hidden_data_def(name) \ - __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name))); -# define hidden_ver(local, name) \ - __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name) \ - __hidden_dot_def1 (local, __GI_##name))); -# define hidden_data_ver(local, name) \ - __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name))); -# ifdef HAVE_WEAK_SYMBOLS -# ifdef HAVE_ASM_WEAKEXT_DIRECTIVE -# define __hidden_weak1(original, alias) \ - .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original) -# ifdef HAVE_ASM_GLOBAL_DOT_NAME -# define __hidden_dot_weak1(original, alias) ASM_LINE_SEP \ - .weakext C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original) -# else -# define __hidden_dot_weak1(original, alias) -# endif -# else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */ -# define __hidden_weak1(original, alias) \ - .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP \ - C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original) -# ifdef HAVE_ASM_GLOBAL_DOT_NAME -# define __hidden_dot_weak1(original, alias) ASM_LINE_SEP \ - .weak C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \ - C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original) -# else -# define __hidden_dot_weak1(original, alias) -# endif -# endif -# define hidden_weak(name) \ - __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name) \ - __hidden_dot_weak1 (__GI_##name, name))); -# define hidden_data_weak(name) \ - __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name))); -# else -# define hidden_weak(name) hidden_def (name) -# endif +# define __hidden_ver1(local, internal, name) \ + extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \ + extern __typeof (name) __EI_##name \ + __attribute__((alias (__hidden_asmname (#local)))) +# define hidden_ver(local, name) __hidden_ver1(local, __GI_##name, name); +# define hidden_data_ver(local, name) hidden_ver(local, name) +# define hidden_def(name) __hidden_ver1(__GI_##name, name, name); +# define hidden_data_def(name) hidden_def(name) +# define hidden_weak(name) \ + __hidden_ver1(__GI_##name, name, name) __attribute__((weak)); +# define hidden_data_weak(name) hidden_weak(name) # else /* For assembly, we need to do the opposite of what we do in C: in assembly gcc __REDIRECT stuff is not in place, so functions diff --git a/include/wchar.h b/include/wchar.h index 73bd4a8fef..0f91114c41 100644 --- a/include/wchar.h +++ b/include/wchar.h @@ -56,7 +56,6 @@ extern int __wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) extern int __wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) __attribute_pure__; -extern int __wcscoll (__const wchar_t *__s1, __const wchar_t *__s2); extern size_t __wcslen (__const wchar_t *__s) __attribute_pure__; extern size_t __wcsnlen (__const wchar_t *__s, size_t __maxlen) __attribute_pure__; diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index f9dedbb503..f89e42d99c 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -4,6 +4,11 @@ * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Add local _init and _fini labels. +2005-03-05 Jakub Jelinek <jakub@redhat.com> + + [BZ #721] + * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Rework for GCC 4. + 2005-02-09 Daniel Jacobowitz <dan@codesourcery.com> [BZ #740] diff --git a/linuxthreads/sysdeps/powerpc/tcb-offsets.sym b/linuxthreads/sysdeps/powerpc/tcb-offsets.sym index b526b62336..7c5cca01ea 100644 --- a/linuxthreads/sysdeps/powerpc/tcb-offsets.sym +++ b/linuxthreads/sysdeps/powerpc/tcb-offsets.sym @@ -8,7 +8,7 @@ -- Abuse tls.h macros to derive offsets relative to the thread register. # undef __thread_register # define __thread_register ((void *) 0) -# define thread_offsetof(mem) ((void *) &THREAD_SELF->p_##mem - (void *) 0) +# define thread_offsetof(mem) ((ptrdiff_t) THREAD_SELF + offsetof (struct _pthread_descr_struct, p_##mem)) # else diff --git a/math/math_private.h b/math/math_private.h index f545841df0..a6a85d3b1e 100644 --- a/math/math_private.h +++ b/math/math_private.h @@ -192,6 +192,10 @@ extern int __kernel_rem_pio2 (double*,double*,int,int,int, const int32_t*); /* internal functions. */ extern double __copysign (double x, double __y); +#if __GNUC_PREREQ (4, 0) +extern inline double __copysign (double x, double y) +{ return __builtin_copysign (x, y); } +#endif /* ieee style elementary float functions */ extern float __ieee754_sqrtf (float); @@ -235,6 +239,10 @@ extern int __kernel_rem_pio2f (float*,float*,int,int,int, const int32_t*); /* internal functions. */ extern float __copysignf (float x, float __y); +#if __GNUC_PREREQ (4, 0) +extern inline float __copysignf (float x, float y) +{ return __builtin_copysignf (x, y); } +#endif /* ieee style elementary long double functions */ extern long double __ieee754_sqrtl (long double); @@ -298,6 +306,12 @@ extern long double fabsl (long double x); extern void __sincosl (long double, long double *, long double *); extern long double __logbl (long double x); extern long double __significandl (long double x); + +#if __GNUC_PREREQ (4, 0) +extern inline long double __copysignl (long double x, long double y) +{ return __builtin_copysignl (x, y); } +#endif + #endif /* Prototypes for functions of the IBM Accurate Mathematical Library. */ diff --git a/nptl/ChangeLog b/nptl/ChangeLog index db8057a48e..fa40293697 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -47,6 +47,12 @@ * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise. * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise. +2005-02-14 Alan Modra <amodra@bigpond.net.au> + + [BZ #721] + * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit + gcc4. + 2005-02-07 Richard Henderson <rth@redhat.com> [BZ #787] diff --git a/nptl/sysdeps/powerpc/tcb-offsets.sym b/nptl/sysdeps/powerpc/tcb-offsets.sym index a9701fb5b7..3962edbd54 100644 --- a/nptl/sysdeps/powerpc/tcb-offsets.sym +++ b/nptl/sysdeps/powerpc/tcb-offsets.sym @@ -6,7 +6,8 @@ -- Abuse tls.h macros to derive offsets relative to the thread register. # undef __thread_register # define __thread_register ((void *) 0) -# define thread_offsetof(mem) ((void *) &THREAD_SELF->mem - (void *) 0) +# define thread_offsetof(mem) ((ptrdiff_t) THREAD_SELF + offsetof (struct pthread, mem)) + #if TLS_MULTIPLE_THREADS_IN_TCB MULTIPLE_THREADS_OFFSET thread_offsetof (header.multiple_threads) diff --git a/string/strcoll.c b/string/strcoll.c index 8a73cae564..8e8fdc7792 100644 --- a/string/strcoll.c +++ b/string/strcoll.c @@ -23,6 +23,7 @@ # define STRING_TYPE char # define STRCOLL strcoll # define STRCOLL_L __strcoll_l +# define USE_HIDDEN_DEF #endif #include "../locale/localeinfo.h" @@ -35,6 +36,7 @@ STRCOLL (s1, s2) { return STRCOLL_L (s1, s2, _NL_CURRENT_LOCALE); } -#if !defined WIDE_CHAR_VERSION -libc_hidden_def (strcoll) + +#ifdef USE_HIDDEN_DEF +libc_hidden_def (STRCOLL) #endif diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h index 780a3a57fd..09f854554f 100644 --- a/sysdeps/alpha/dl-machine.h +++ b/sysdeps/alpha/dl-machine.h @@ -1,5 +1,5 @@ /* Machine-dependent ELF dynamic relocation inline functions. Alpha version. - Copyright (C) 1996-2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 1996-2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson <rth@tamu.edu>. @@ -508,6 +508,7 @@ elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc, /* Perform the relocation specified by RELOC and SYM (which is fully resolved). MAP is the object containing the reloc. */ auto inline void +__attribute__ ((always_inline)) elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, const Elf64_Sym *sym, @@ -646,6 +647,7 @@ elf_machine_rela (struct link_map *map, #define ELF_MACHINE_REL_RELATIVE 1 auto inline void +__attribute__ ((always_inline)) elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc, void *const reloc_addr_arg) { @@ -662,6 +664,7 @@ elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc, } auto inline void +__attribute__ ((always_inline)) elf_machine_lazy_rel (struct link_map *map, Elf64_Addr l_addr, const Elf64_Rela *reloc) { diff --git a/sysdeps/alpha/fpu/bits/mathinline.h b/sysdeps/alpha/fpu/bits/mathinline.h index 187bd42f33..87d40058c3 100644 --- a/sysdeps/alpha/fpu/bits/mathinline.h +++ b/sysdeps/alpha/fpu/bits/mathinline.h @@ -46,7 +46,8 @@ #if (!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \ && defined __OPTIMIZE__ -#define __inline_copysign(NAME, TYPE) \ +#if !__GNUC_PREREQ (4, 0) +# define __inline_copysign(NAME, TYPE) \ __MATH_INLINE TYPE \ __NTH (NAME (TYPE __x, TYPE __y)) \ { \ @@ -60,19 +61,11 @@ __inline_copysign (copysignf, float) __inline_copysign (__copysign, double) __inline_copysign (copysign, double) -#undef __MATH_INLINE_copysign +# undef __inline_copysign +#endif -#if __GNUC_PREREQ (2, 8) -__MATH_INLINE float -__NTH (__fabsf (float __x)) { return __builtin_fabsf (__x); } -__MATH_INLINE float -__NTH (fabsf (float __x)) { return __builtin_fabsf (__x); } -__MATH_INLINE double -__NTH (__fabs (double __x)) { return __builtin_fabs (__x); } -__MATH_INLINE double -__NTH (fabs (double __x)) { return __builtin_fabs (__x); } -#else +#if !__GNUC_PREREQ (2, 8) # define __inline_fabs(NAME, TYPE) \ __MATH_INLINE TYPE \ __NTH (NAME (TYPE __x)) \ diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h index 761f8daeaa..0b4f7156d1 100644 --- a/sysdeps/arm/dl-machine.h +++ b/sysdeps/arm/dl-machine.h @@ -1,5 +1,5 @@ /* Machine-dependent ELF dynamic relocation inline functions. ARM version. - Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 + Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -350,13 +350,11 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rel *reloc, #endif /* !dl_machine_h */ -#ifdef RESOLVE - /* ARM never uses Elf32_Rela relocations for the dynamic linker. Prelinked libraries may use Elf32_Rela though. */ -# ifdef RTLD_BOOTSTRAP -# define ELF_MACHINE_NO_RELA 1 -# endif +#define ELF_MACHINE_NO_RELA defined RTLD_BOOTSTRAP + +#ifdef RESOLVE /* Deal with an out-of-range PC24 reloc. */ static Elf32_Addr @@ -392,7 +390,8 @@ fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value) /* Perform the relocation specified by RELOC and SYM (which is fully resolved). MAP is the object containing the reloc. */ -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, const Elf32_Sym *sym, const struct r_found_version *version, void *const reloc_addr_arg) @@ -517,7 +516,8 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, } # ifndef RTLD_BOOTSTRAP -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, const Elf32_Sym *sym, const struct r_found_version *version, void *const reloc_addr_arg) @@ -597,7 +597,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, } # endif -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc, void *const reloc_addr_arg) { @@ -606,7 +607,8 @@ elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc, } # ifndef RTLD_BOOTSTRAP -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, void *const reloc_addr_arg) { @@ -615,7 +617,8 @@ elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, } # endif -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_lazy_rel (struct link_map *map, Elf32_Addr l_addr, const Elf32_Rel *reloc) { diff --git a/sysdeps/generic/dl-machine.h b/sysdeps/generic/dl-machine.h index 8b4425cea4..c3459f5e32 100644 --- a/sysdeps/generic/dl-machine.h +++ b/sysdeps/generic/dl-machine.h @@ -1,5 +1,6 @@ /* Machine-dependent ELF dynamic relocation inline functions. Stub version. - Copyright (C) 1995,1996,1997,1999,2000,2001 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1999, 2000, 2001, 2005 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -64,7 +65,8 @@ elf_machine_fixup_plt (struct link_map *map, lookup_t t, LOADADDR is the load address of the object; INFO is an array indexed by DT_* of the .dynamic section info. */ -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rel (Elf32_Addr loadaddr, Elf32_Dyn *info[DT_NUM], const Elf32_Rel *reloc, const Elf32_Sym *sym, Elf32_Addr (*resolve) (const Elf32_Sym **ref, @@ -87,7 +89,8 @@ elf_machine_rel (Elf32_Addr loadaddr, Elf32_Dyn *info[DT_NUM], } -static inline Elf32_Addr +auto inline Elf32_Addr +__attribute__ ((always_inline)) elf_machine_rela (Elf32_Addr loadaddr, Elf32_Dyn *info[DT_NUM], const Elf32_Rel *reloc, const Elf32_Sym *sym, Elf32_Addr (*resolve) (const Elf32_Sym **ref, diff --git a/sysdeps/generic/wcstoul_l.c b/sysdeps/generic/wcstoul_l.c index eeee1f0baa..25058de817 100644 --- a/sysdeps/generic/wcstoul_l.c +++ b/sysdeps/generic/wcstoul_l.c @@ -1,5 +1,5 @@ /* Convert string representing a number to integer value, using given locale. - Copyright (C) 1997, 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 1997, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -27,4 +27,4 @@ extern unsigned long int ____wcstoul_l_internal (const wchar_t *, wchar_t **, int, int, __locale_t); -#include <wcstol_l.c> +#include "wcstol_l.c" diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index af7e3f1bba..809fbc546a 100644 --- a/sysdeps/i386/dl-machine.h +++ b/sysdeps/i386/dl-machine.h @@ -1,5 +1,5 @@ /* Machine-dependent ELF dynamic relocation inline functions. i386 version. - Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 1995-2002,2003,2004,2005 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -387,13 +387,11 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rel *reloc, #endif /* !dl_machine_h */ -#ifdef RESOLVE - /* The i386 never uses Elf32_Rela relocations for the dynamic linker. Prelinked libraries may use Elf32_Rela though. */ -#ifdef RTLD_BOOTSTRAP -# define ELF_MACHINE_NO_RELA 1 -#endif +#define ELF_MACHINE_NO_RELA defined RTLD_BOOTSTRAP + +#ifdef RESOLVE /* Perform the relocation specified by RELOC and SYM (which is fully resolved). MAP is the object containing the reloc. */ diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index 71c1ab5d8e..e5a4cdf7ed 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -7,20 +7,20 @@ ldouble: 1 # asin Test "asin (-0.5) == -pi/6": -ldouble: 1 ildouble: 1 -Test "asin (-1.0) == -pi/2": ldouble: 1 +Test "asin (-1.0) == -pi/2": ildouble: 1 -Test "asin (0.5) == pi/6": ldouble: 1 +Test "asin (0.5) == pi/6": ildouble: 1 -Test "asin (0.75) == 0.848062078981481008052944338998418080": ldouble: 1 +Test "asin (0.75) == 0.848062078981481008052944338998418080": ildouble: 1 -Test "asin (1.0) == pi/2": ldouble: 1 +Test "asin (1.0) == pi/2": ildouble: 1 +ldouble: 1 # atanh Test "atanh (0.75) == 0.972955074527656652552676371721589865": @@ -44,11 +44,11 @@ ildouble: 6 ldouble: 6 Test "Imaginary part of: cacosh (-2 - 3 i) == -1.9833870299165354323470769028940395 + 2.1414491111159960199416055713254211 i": double: 1 +float: 4 idouble: 1 +ifloat: 4 ildouble: 1 ldouble: 1 -ifloat: 4 -float: 4 Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i": ildouble: 1 ldouble: 1 @@ -149,7 +149,9 @@ float: 1 idouble: 1 ifloat: 1 Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i": +double: 1 float: 1 +idouble: 1 ifloat: 1 # cexp @@ -354,7 +356,9 @@ ifloat: 1 ildouble: 2 ldouble: 2 Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 @@ -377,7 +381,9 @@ Test "Real part of: ctan (0.75 + 1.25 i) == 0.1608077859162064267251660581734386 ildouble: 1 ldouble: 1 Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 3 ldouble: 3 @@ -395,7 +401,9 @@ Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i": float: 1 ifloat: 1 Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i": +double: 1 float: 1 +idouble: 1 ifloat: 1 Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i": double: 1 @@ -473,24 +481,26 @@ float: 1 # j0 Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1": double: 1 -float: 1 +float: 2 idouble: 1 -ifloat: 1 +ifloat: 2 ildouble: 1 ldouble: 1 Test "j0 (10.0) == -0.245935764451348335197760862485328754": -double: 1 +double: 3 float: 1 -idouble: 1 +idouble: 3 ifloat: 1 Test "j0 (2.0) == 0.223890779141235668051827454649948626": +double: 1 float: 1 +idouble: 1 ifloat: 1 Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1": double: 1 -float: 1 +float: 2 idouble: 1 -ifloat: 1 +ifloat: 2 ildouble: 1 ldouble: 1 Test "j0 (8.0) == 0.171650807137553906090869407851972001": @@ -498,22 +508,23 @@ float: 1 ifloat: 1 # j1 +Test "j1 (0.75) == 0.349243602174862192523281016426251335": +double: 1 +idouble: 1 Test "j1 (10.0) == 0.0434727461688614366697487680258592883": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 -Test "j1 (0.75) == 0.349243602174862192523281016426251335": -double: 1 -idouble: 1 Test "j1 (2.0) == 0.576724807756873387202448242269137087": double: 1 idouble: 1 -Test "j1 (0.75) == 0.349243602174862192523281016426251335": -double: 1 -idouble: 1 Test "j1 (8.0) == 0.234636346853914624381276651590454612": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 @@ -521,24 +532,26 @@ ldouble: 1 # jn Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1": double: 1 -float: 1 +float: 2 idouble: 1 -ifloat: 1 +ifloat: 2 ildouble: 1 ldouble: 1 Test "jn (0, 10.0) == -0.245935764451348335197760862485328754": -double: 1 +double: 3 float: 1 -idouble: 1 +idouble: 3 ifloat: 1 Test "jn (0, 2.0) == 0.223890779141235668051827454649948626": +double: 1 float: 1 +idouble: 1 ifloat: 1 Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1": double: 1 -float: 1 +float: 2 idouble: 1 -ifloat: 1 +ifloat: 2 ildouble: 1 ldouble: 1 Test "jn (0, 8.0) == 0.171650807137553906090869407851972001": @@ -548,7 +561,9 @@ Test "jn (1, 0.75) == 0.349243602174862192523281016426251335": double: 1 idouble: 1 Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 @@ -556,22 +571,24 @@ Test "jn (1, 2.0) == 0.576724807756873387202448242269137087": double: 1 idouble: 1 Test "jn (1, 8.0) == 0.234636346853914624381276651590454612": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 1 ldouble: 1 -ifloat: 1 -float: 1 Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 +ifloat: 1 Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10": float: 1 ifloat: 1 @@ -579,46 +596,46 @@ ildouble: 2 ldouble: 2 Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 1 ldouble: 1 -ifloat: 1 -float: 1 Test "jn (10, 10.0) == 0.207486106633358857697278723518753428": -double: 2 +double: 5 float: 2 -idouble: 2 +idouble: 5 ifloat: 2 ildouble: 2 ldouble: 2 Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6": +double: 2 +idouble: 2 ildouble: 1 ldouble: 1 -idouble: 2 -double: 2 Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083": ildouble: 1 ldouble: 1 Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 +ifloat: 1 Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083": ildouble: 1 ldouble: 1 Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563": -double: 1 +double: 5 float: 2 -idouble: 1 +idouble: 5 ifloat: 2 ildouble: 1 ldouble: 1 Test "jn (3, 2.0) == 0.128943249474402051098793332969239835": -ildouble: 1 -ldouble: 1 double: 1 idouble: 1 +ildouble: 1 +ldouble: 1 # lgamma Test "lgamma (-0.5) == log(2*sqrt(pi))": @@ -627,10 +644,10 @@ idouble: 1 ildouble: 1 ldouble: 1 Test "lgamma (0.7) == 0.260867246531666514385732417016759578": -float: 1 -ifloat: 1 double: 1 +float: 1 idouble: 1 +ifloat: 1 Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1": double: 1 float: 2 @@ -677,6 +694,7 @@ ldouble: 1 # sinh Test "sinh (0.75) == 0.822316731935829980703661634446913849": +double: 1 ildouble: 1 # tan @@ -714,32 +732,39 @@ float: 1 idouble: 1 ifloat: 1 Test "y0 (1.0) == 0.0882569642156769579829267660235151628": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 ildouble: 1 ldouble: 1 -ifloat: 1 +Test "y0 (1.5) == 0.382448923797758843955068554978089862": +double: 1 float: 1 -double: 2 -idouble: 2 +idouble: 1 +ifloat: 1 Test "y0 (10.0) == 0.0556711672835993914244598774101900481": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 Test "y0 (8.0) == 0.223521489387566220527323400498620359": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 -Test "y0 (1.5) == 0.382448923797758843955068554978089862": -float: 1 -ifloat: 1 -double: 1 -idouble: 1 # y1 Test "y1 (0.125) == -5.19993611253477499595928744876579921": ildouble: 1 ldouble: 1 +Test "y1 (1.0) == -0.781212821300288716547150000047964821": +double: 1 +idouble: 1 Test "y1 (10.0) == 0.249015424206953883923283474663222803": double: 2 float: 2 @@ -753,13 +778,12 @@ ifloat: 2 ildouble: 1 ldouble: 1 Test "y1 (8.0) == -0.158060461731247494255555266187483550": +double: 1 float: 2 +idouble: 1 ifloat: 2 ildouble: 1 ldouble: 1 -Test "y1 (1.0) == -0.781212821300288716547150000047964821": -double: 1 -idouble: 1 # yn Test "yn (0, 0.125) == -1.38968062514384052915582277745018693": @@ -771,24 +795,28 @@ float: 1 idouble: 1 ifloat: 1 Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628": -ildouble: 1 -ldouble: 1 -ifloat: 1 -float: 1 double: 2 +float: 1 idouble: 2 -Test "yn (0, 1.5) == 0.382448923797758843955068554978089862": ifloat: 1 -float: 1 +ildouble: 1 +ldouble: 1 +Test "yn (0, 1.5) == 0.382448923797758843955068554978089862": double: 1 +float: 1 idouble: 1 +ifloat: 1 Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 Test "yn (0, 8.0) == 0.223521489387566220527323400498620359": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 @@ -796,8 +824,8 @@ Test "yn (1, 0.125) == -5.19993611253477499595928744876579921": ildouble: 1 ldouble: 1 Test "yn (1, 1.0) == -0.781212821300288716547150000047964821": -idouble: 1 double: 1 +idouble: 1 Test "yn (1, 10.0) == 0.249015424206953883923283474663222803": double: 2 float: 2 @@ -811,13 +839,12 @@ ifloat: 2 ildouble: 1 ldouble: 1 Test "yn (1, 8.0) == -0.158060461731247494255555266187483550": +double: 1 float: 2 +idouble: 1 ifloat: 2 ildouble: 1 ldouble: 1 -Test "yn (3, 0.75) == -12.9877176234475433186319774484809207": -ifloat: 1 -float: 1 Test "yn (10, 0.125) == -127057845771019398.252538486899753195": double: 1 float: 1 @@ -841,10 +868,10 @@ float: 3 idouble: 1 ifloat: 3 Test "yn (10, 2.0) == -129184.542208039282635913145923304214": -float: 3 -ifloat: 3 double: 2 +float: 3 idouble: 2 +ifloat: 3 Test "yn (3, 0.125) == -2612.69757350066712600220955744091741": ildouble: 1 ldouble: 1 @@ -855,12 +882,12 @@ idouble: 1 ifloat: 1 ildouble: 2 ldouble: 2 -Test "yn (3, 2.0) == -1.12778377684042778608158395773179238": -float: 1 -ifloat: 1 +Test "yn (3, 10.0) == -0.251362657183837329779204747654240998": double: 1 +float: 1 idouble: 1 -Test "yn (3, 10.0) == -0.251362657183837329779204747654240998": +ifloat: 1 +Test "yn (3, 2.0) == -1.12778377684042778608158395773179238": double: 1 float: 1 idouble: 1 @@ -872,8 +899,8 @@ ildouble: 622 ldouble: 622 Function: "asin": -ldouble: 1 ildouble: 1 +ldouble: 1 Function: "atanh": ildouble: 2 @@ -895,11 +922,11 @@ ldouble: 6 Function: Imaginary part of "cacosh": double: 1 +float: 4 idouble: 1 +ifloat: 4 ildouble: 1 ldouble: 1 -ifloat: 4 -float: 4 Function: Real part of "casin": double: 1 @@ -1073,7 +1100,9 @@ ildouble: 3 ldouble: 3 Function: Real part of "ctanh": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 5 ldouble: 5 @@ -1115,10 +1144,10 @@ Function: "hypot": float: 1 Function: "j0": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 +double: 3 +float: 2 +idouble: 3 +ifloat: 2 ildouble: 1 ldouble: 1 @@ -1131,9 +1160,9 @@ ildouble: 1 ldouble: 1 Function: "jn": -double: 2 +double: 5 float: 2 -idouble: 2 +idouble: 5 ifloat: 2 ildouble: 2 ldouble: 2 @@ -1165,6 +1194,7 @@ ildouble: 1 ldouble: 1 Function: "sinh": +double: 1 ildouble: 1 Function: "tan": diff --git a/sysdeps/ia64/dl-machine.h b/sysdeps/ia64/dl-machine.h index 3108047869..056e40f599 100644 --- a/sysdeps/ia64/dl-machine.h +++ b/sysdeps/ia64/dl-machine.h @@ -264,7 +264,8 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) #else #define ELF_MACHINE_RUNTIME_TRAMPOLINE \ TRAMPOLINE_TEMPLATE (_dl_runtime_resolve, fixup); \ - strong_alias (_dl_runtime_resolve, _dl_runtime_profile); + asm (".globl _dl_runtime_profile\n" \ + ".set _dl_runtime_profile, _dl_runtime_resolve"); #endif /* Undo the adds out0 = 16, sp below to get at the value we want in diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps index 6dd3940d22..272431307c 100644 --- a/sysdeps/powerpc/fpu/libm-test-ulps +++ b/sysdeps/powerpc/fpu/libm-test-ulps @@ -2,17 +2,14 @@ # atan2 Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025": -float: 3 -ifloat: 3 +float: 1 +ifloat: 1 Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025": -float: 3 -ifloat: 3 +float: 1 +ifloat: 1 Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772": float: 1 ifloat: 1 -Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112": -float: 6 -ifloat: 6 # atanh Test "atanh (0.75) == 0.972955074527656652552676371721589865": @@ -226,9 +223,9 @@ idouble: 2 ifloat: 3 Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i": double: 1 -float: 4 +float: 5 idouble: 1 -ifloat: 4 +ifloat: 5 Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i": float: 2 ifloat: 2 @@ -351,6 +348,9 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "j0 (2.0) == 0.223890779141235668051827454649948626": +float: 2 +ifloat: 2 Test "j0 (10.0) == -0.245935764451348335197760862485328754": double: 2 float: 1 @@ -382,6 +382,9 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "jn (0, 2.0) == 0.223890779141235668051827454649948626": +float: 2 +ifloat: 2 Test "jn (0, 10.0) == -0.245935764451348335197760862485328754": double: 2 float: 1 @@ -418,8 +421,8 @@ Test "jn (10, 10.0) == 0.207486106633358857697278723518753428": float: 1 ifloat: 1 Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6": -float: 3 -ifloat: 3 +float: 4 +ifloat: 4 Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4": double: 1 float: 1 @@ -435,9 +438,9 @@ idouble: 3 ifloat: 1 Test "jn (3, 2.0) == 0.128943249474402051098793332969239835": double: 1 -float: 1 +float: 2 idouble: 1 -ifloat: 1 +ifloat: 2 # lgamma Test "lgamma (0.7) == 0.260867246531666514385732417016759578": @@ -532,6 +535,12 @@ idouble: 1 ifloat: 1 # y1 +Test "y1 (0.125) == -5.19993611253477499595928744876579921": +double: 1 +idouble: 1 +Test "y1 (1.5) == -0.412308626973911295952829820633445323": +float: 1 +ifloat: 1 Test "y1 (10.0) == 0.249015424206953883923283474663222803": double: 3 float: 1 @@ -572,6 +581,12 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "yn (1, 0.125) == -5.19993611253477499595928744876579921": +double: 1 +idouble: 1 +Test "yn (1, 1.5) == -0.412308626973911295952829820633445323": +float: 2 +ifloat: 2 Test "yn (1, 10.0) == 0.249015424206953883923283474663222803": double: 3 float: 1 @@ -587,6 +602,12 @@ double: 1 float: 2 idouble: 1 ifloat: 2 +Test "yn (3, 0.125) == -2612.69757350066712600220955744091741": +double: 1 +idouble: 1 +Test "yn (10, 0.125) == -127057845771019398.252538486899753195": +double: 1 +idouble: 1 Test "yn (10, 0.75) == -2133501638.90573424452445412893839236": double: 1 float: 2 @@ -617,8 +638,8 @@ idouble: 1 # Maximal error of functions: Function: "atan2": -float: 6 -ifloat: 6 +float: 1 +ifloat: 1 Function: "atanh": float: 1 @@ -730,9 +751,9 @@ ifloat: 1 Function: Real part of "cpow": double: 2 -float: 4 +float: 5 idouble: 2 -ifloat: 4 +ifloat: 5 Function: Imaginary part of "cpow": double: 2 @@ -800,9 +821,9 @@ ifloat: 1 Function: "j0": double: 2 -float: 1 +float: 2 idouble: 2 -ifloat: 1 +ifloat: 2 Function: "j1": double: 1 @@ -812,9 +833,9 @@ ifloat: 2 Function: "jn": double: 3 -float: 3 +float: 4 idouble: 3 -ifloat: 3 +ifloat: 4 Function: "lgamma": double: 1 diff --git a/sysdeps/powerpc/powerpc32/dl-machine.h b/sysdeps/powerpc/powerpc32/dl-machine.h index a8c1e3e490..a5c5ebb2a2 100644 --- a/sysdeps/powerpc/powerpc32/dl-machine.h +++ b/sysdeps/powerpc/powerpc32/dl-machine.h @@ -455,7 +455,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, } } -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, void *const reloc_addr_arg) { @@ -463,7 +464,8 @@ elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, *reloc_addr = l_addr + reloc->r_addend; } -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_lazy_rel (struct link_map *map, Elf32_Addr l_addr, const Elf32_Rela *reloc) { diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h index 3fcf77df71..aaec82193e 100644 --- a/sysdeps/powerpc/powerpc64/dl-machine.h +++ b/sysdeps/powerpc/powerpc64/dl-machine.h @@ -190,8 +190,8 @@ BODY_PREFIX #tramp_name ":\n" \ #else #define ELF_MACHINE_RUNTIME_TRAMPOLINE \ TRAMPOLINE_TEMPLATE (_dl_runtime_resolve, fixup); \ - void _dl_runtime_resolve (void); \ - strong_alias (_dl_runtime_resolve, _dl_profile_resolve); + asm (".globl _dl_profile_resolve\n" \ + ".set _dl_profile_resolve, _dl_runtime_resolve"); #endif #ifdef HAVE_INLINED_SYSCALLS @@ -567,7 +567,8 @@ extern void _dl_reloc_overflow (struct link_map *map, const Elf64_Sym *refsym) attribute_hidden; -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc, void *const reloc_addr_arg) { @@ -577,7 +578,7 @@ elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc, #if defined USE_TLS && (!defined RTLD_BOOTSTRAP || USE___THREAD) /* This computes the value used by TPREL* relocs. */ -static Elf64_Addr __attribute__ ((const)) +auto inline Elf64_Addr __attribute__ ((always_inline, const)) elf_machine_tprel (struct link_map *map, struct link_map *sym_map, const Elf64_Sym *sym, @@ -598,7 +599,8 @@ elf_machine_tprel (struct link_map *map, /* Perform the relocation specified by RELOC and SYM (which is fully resolved). MAP is the object containing the reloc. */ -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, const Elf64_Sym *sym, @@ -883,7 +885,8 @@ elf_machine_rela (struct link_map *map, MODIFIED_CODE_NOQUEUE (reloc_addr); } -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_lazy_rel (struct link_map *map, Elf64_Addr l_addr, const Elf64_Rela *reloc) { diff --git a/sysdeps/s390/s390-32/dl-machine.h b/sysdeps/s390/s390-32/dl-machine.h index 52922a813b..6e277ff7f1 100644 --- a/sysdeps/s390/s390-32/dl-machine.h +++ b/sysdeps/s390/s390-32/dl-machine.h @@ -383,7 +383,8 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc, /* Perform the relocation specified by RELOC and SYM (which is fully resolved). MAP is the object containing the reloc. */ -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, const Elf32_Sym *sym, const struct r_found_version *version, void *const reloc_addr_arg) @@ -539,7 +540,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, } } -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, void *const reloc_addr_arg) { @@ -547,7 +549,8 @@ elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, *reloc_addr = l_addr + reloc->r_addend; } -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_lazy_rel (struct link_map *map, Elf32_Addr l_addr, const Elf32_Rela *reloc) { diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/s390-64/dl-machine.h index 82ece0be0f..62f13355e9 100644 --- a/sysdeps/s390/s390-64/dl-machine.h +++ b/sysdeps/s390/s390-64/dl-machine.h @@ -350,7 +350,8 @@ elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc, /* Perform the relocation specified by RELOC and SYM (which is fully resolved). MAP is the object containing the reloc. */ -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, const Elf64_Sym *sym, const struct r_found_version *version, void *const reloc_addr_arg) @@ -518,7 +519,8 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, } } -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc, void *const reloc_addr_arg) { @@ -526,7 +528,8 @@ elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc, *reloc_addr = l_addr + reloc->r_addend; } -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_lazy_rel (struct link_map *map, Elf64_Addr l_addr, const Elf64_Rela *reloc) { diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h index 271666a2a3..0ef98c4123 100644 --- a/sysdeps/sh/dl-machine.h +++ b/sysdeps/sh/dl-machine.h @@ -1,6 +1,6 @@ /* Machine-dependent ELF dynamic relocation inline functions. SH version. - Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 - Free Software Foundation, Inc. + Copyright (C) 1999,2000,2001,2002,2003,2004,2005 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -512,11 +512,11 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc, #endif /* !dl_machine_h */ -#ifdef RESOLVE - /* SH never uses Elf32_Rel relocations. */ #define ELF_MACHINE_NO_REL 1 +#ifdef RESOLVE + /* Perform the relocation specified by RELOC and SYM (which is fully resolved). MAP is the object containing the reloc. */ diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h index 52fc6329dd..d0af232d48 100644 --- a/sysdeps/sparc/sparc32/dl-machine.h +++ b/sysdeps/sparc/sparc32/dl-machine.h @@ -1,5 +1,5 @@ /* Machine-dependent ELF dynamic relocation inline functions. SPARC version. - Copyright (C) 1996-2003, 2004 Free Software Foundation, Inc. + Copyright (C) 1996-2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -411,7 +411,8 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc, /* Perform the relocation specified by RELOC and SYM (which is fully resolved). MAP is the object containing the reloc. */ -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, const Elf32_Sym *sym, const struct r_found_version *version, void *const reloc_addr_arg) @@ -593,7 +594,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, } } -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, void *const reloc_addr_arg) { @@ -601,7 +603,8 @@ elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, *reloc_addr += l_addr + reloc->r_addend; } -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_lazy_rel (struct link_map *map, Elf32_Addr l_addr, const Elf32_Rela *reloc) { diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h index 474aa0e6e6..72b88e235c 100644 --- a/sysdeps/sparc/sparc64/dl-machine.h +++ b/sysdeps/sparc/sparc64/dl-machine.h @@ -1,5 +1,5 @@ /* Machine-dependent ELF dynamic relocation inline functions. Sparc64 version. - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 + Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -238,7 +238,8 @@ elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc, /* Perform the relocation specified by RELOC and SYM (which is fully resolved). MAP is the object containing the reloc. */ -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, const Elf64_Sym *sym, const struct r_found_version *version, void *const reloc_addr_arg) @@ -430,7 +431,8 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, } } -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc, void *const reloc_addr_arg) { @@ -438,7 +440,8 @@ elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc, *reloc_addr = l_addr + reloc->r_addend; } -static inline void +auto inline void +__attribute__ ((always_inline)) elf_machine_lazy_rel (struct link_map *map, Elf64_Addr l_addr, const Elf64_Rela *reloc) { diff --git a/timezone/Makefile b/timezone/Makefile index cf2c7d7f42..9947d45b17 100644 --- a/timezone/Makefile +++ b/timezone/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +# Copyright (C) 1998,1999,2000,2002,2005 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -190,28 +190,24 @@ $(objpfx)tst-timezone.out: $(addprefix $(testdata)/, \ test-tz-ENV = TZDIR=$(testdata) tst-timezone-ENV = TZDIR=$(testdata) -$(testdata)/America/New_York: northamerica $(objpfx)zic $(leapseconds) \ - yearistype - $(build-testdata) -$(testdata)/Etc/UTC: etcetera $(objpfx)zic $(leapseconds) yearistype - $(build-testdata) -$(testdata)/UTC: simplebackw $(objpfx)zic $(testdata)/Etc/UTC \ - $(leapseconds) yearistype +# Note this must come second in the deps list for $(built-program-cmd) to work. +zic-deps = $(objpfx)zic $(leapseconds) yearistype + +$(testdata)/America/New_York: northamerica $(zic-deps) $(build-testdata) -$(testdata)/Europe/Berlin: europe $(objpfx)zic $(leapseconds) yearistype +$(testdata)/Etc/UTC: etcetera $(zic-deps) $(build-testdata) -$(testdata)/Universal: simplebackw $(objpfx)zic $(testdata)/Etc/UTC \ - $(leapseconds) yearistype +# Use a pattern rule to indicate the command produces both targets at once. +# Two separate targets built separately can collide if in parallel. +%/UTC %/Universal: simplebackw $(zic-deps) %/Etc/UTC $(build-testdata) -$(testdata)/Australia/Melbourne: australasia $(objpfx)zic $(leapseconds) \ - yearistype +$(testdata)/%/Berlin $(testdata)/%/London: europe $(zic-deps) $(build-testdata) -$(testdata)/America/Sao_Paulo: southamerica $(objpfx)zic $(leapseconds) \ - yearistype +$(testdata)/Australia/Melbourne: australasia $(zic-deps) $(build-testdata) -$(testdata)/Asia/Tokyo: asia $(objpfx)zic $(leapseconds) yearistype +$(testdata)/America/Sao_Paulo: southamerica $(zic-deps) $(build-testdata) -$(testdata)/Europe/London: europe $(objpfx)zic $(leapseconds) yearistype +$(testdata)/Asia/Tokyo: asia $(zic-deps) $(build-testdata) diff --git a/timezone/africa b/timezone/africa index e8223f78f5..87ae9e36e5 100644 --- a/timezone/africa +++ b/timezone/africa @@ -1,10 +1,10 @@ -# @(#)africa 7.36 +# @(#)africa 7.39 # This data is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to # tz@elsie.nci.nih.gov for general use in the future). -# From Paul Eggert <eggert@twinsun.com> (1999-03-22): +# From Paul Eggert (1999-03-22): # # A good source for time zone historical data outside the U.S. is # Thomas G. Shanks, The International Atlas (5th edition), @@ -28,7 +28,7 @@ # # Previous editions of this database used WAT, CAT, SAT, and EAT # for +0:00 through +3:00, respectively, -# but Mark R V Murray <markm@grondar.za> reports that +# but Mark R V Murray reports that # `SAST' is the official abbreviation for +2:00 in the country of South Africa, # `CAT' is commonly used for +2:00 in countries north of South Africa, and # `WAT' is probably the best name for +1:00, as the common phrase for @@ -287,7 +287,7 @@ Zone Africa/Maseru 1:50:00 - LMT 1903 Mar 2:00 - SAST # Liberia -# From Paul Eggert <eggert@twinsun.com> (2001-07-17): +# From Paul Eggert (2001-07-17): # In 1972 Liberia was the last country to switch # from a UTC offset that was not a multiple of 15 or 20 minutes. # Howse reports that it was in honor of their president's birthday. @@ -317,7 +317,7 @@ Rule Libya 1985 only - Apr 6 0:00 1:00 S Rule Libya 1986 only - Apr 4 0:00 1:00 S Rule Libya 1986 only - Oct 3 0:00 0 - Rule Libya 1987 1989 - Apr 1 0:00 1:00 S -Rule Libya 1987 1990 - Oct 1 0:00 0 - +Rule Libya 1987 1989 - Oct 1 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Tripoli 0:52:44 - LMT 1920 1:00 Libya CE%sT 1959 @@ -348,9 +348,6 @@ Zone Africa/Bamako -0:32:00 - LMT 1912 0:00 - GMT 1934 Feb 26 -1:00 - WAT 1960 Jun 20 0:00 - GMT -# no longer different from Bamako, but too famous to omit -Zone Africa/Timbuktu -0:12:04 - LMT 1912 - 0:00 - GMT # Mauritania # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -557,6 +554,23 @@ Zone Africa/Lome 0:04:52 - LMT 1893 0:00 - GMT # Tunisia + +# From Gwillim Law (2005-04-30): +# +# My correspondent, Risto Nykanen, has alerted me to another adoption of DST, +# this time in Tunisia. According to Yahoo France News +# <http://fr.news.yahoo.com/050426/5/4dumk.html>, in a story attributed to AP +# and dated 2005-04-26, "Tunisia has decided to advance its official time by +# one hour, starting on Sunday, May 1. Henceforth, Tunisian time will be +# UTC+2 instead of UTC+1. The change will take place at 23:00 UTC next +# Saturday." (My translation) +# +# From Oscar van Vlijmen (2005-05-02): +# LaPresse, the first national daily newspaper ... +# <http://www.lapresse.tn/archives/archives280405/actualites/lheure.html> +# ... DST for 2005: on: Sun May 1 0h standard time, off: Fri Sept. 30, +# 1h standard time. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S Rule Tunisia 1939 only - Nov 18 23:00s 0 - @@ -579,6 +593,8 @@ Rule Tunisia 1988 only - Jun 1 0:00s 1:00 S Rule Tunisia 1988 1990 - Sep lastSun 0:00s 0 - Rule Tunisia 1989 only - Mar 26 0:00s 1:00 S Rule Tunisia 1990 only - May 1 0:00s 1:00 S +Rule Tunisia 2005 only - May 1 0:00s 1:00 S +Rule Tunisia 2005 only - Sep 30 1:00s 0 - # Shanks gives 0:09 for Paris Mean Time; go with Howse's more precise 0:09:21. # Shanks says the 1911 switch occurred on Mar 9; go with Howse's Mar 11. # Zone NAME GMTOFF RULES FORMAT [UNTIL] diff --git a/timezone/antarctica b/timezone/antarctica index ad47860bd6..c11d24e7d5 100644 --- a/timezone/antarctica +++ b/timezone/antarctica @@ -1,4 +1,4 @@ -# @(#)antarctica 7.24 +# @(#)antarctica 7.25 # From Paul Eggert (1999-11-15): # To keep things manageable, we list only locations occupied year-round; see @@ -157,7 +157,7 @@ Zone Antarctica/DumontDUrville 0 - zzz 1947 # From Hideyuki Suzuki (1999-02-06): # In all Japanese stations, +0300 is used as the standard time. [See] # <a href="http://www.crl.go.jp/uk/uk201/basyo.htm">[reference in Japanese]</a> -# and information from KAMO Hiroyasu <wd@ics.nara-wu.ac.jp>. +# and information from KAMO Hiroyasu. # # Syowa station, which is the first antarctic station of Japan, # was established on 1957-01-29. Since Syowa station is still the main @@ -271,7 +271,7 @@ Zone Antarctica/Rothera 0 - zzz 1976 Dec 1 # # Palmer, Anvers Island, since 1965 (moved 2 miles in 1968) # -# From Ethan Dicks <erd@mcmsun5.mcmurdo.gov> (1996-10-06): +# From Ethan Dicks (1996-10-06): # It keeps the same time as Punta Arenas, Chile, because, just like us # and the South Pole, that's the other end of their supply line.... # I verified with someone who was there that since 1980, diff --git a/timezone/asia b/timezone/asia index 915014c7e8..52ba32338e 100644 --- a/timezone/asia +++ b/timezone/asia @@ -1,10 +1,10 @@ -# @(#)asia 7.81 +# @(#)asia 7.85 # This data is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to # tz@elsie.nci.nih.gov for general use in the future). -# From Paul Eggert <eggert@twinsun.com> (1999-03-22): +# From Paul Eggert (1999-03-22): # # A good source for time zone historical data outside the U.S. is # Thomas G. Shanks, The International Atlas (5th edition), @@ -43,8 +43,8 @@ # 8:00 CST China # 9:00 CJT Central Japanese Time (1896/1937)* # 9:00 EIT east Indonesia -# 9:00 JST Japan -# 9:00 KST Korea +# 9:00 JST JDT Japan +# 9:00 KST KDT Korea # 9:30 CST (Australian) Central Standard Time # # See the `europe' file for Russia and Turkey in Asia. @@ -190,7 +190,7 @@ Zone Asia/Phnom_Penh 6:59:40 - LMT 1906 Jun 9 # CHINA 8 H AHEAD OF UTC ALL OF CHINA, INCL TAIWAN # CHINA 9 H AHEAD OF UTC APR 17 - SEP 10 -# From Paul Eggert <eggert@twinsun.com> (1995-12-19): +# From Paul Eggert (1995-12-19): # Shanks writes that China has had a single time zone since 1980 May 1, # observing summer DST from 1986 through 1991; this contradicts Devine's # note about Time magazine, though apparently _something_ happened in 1986. @@ -201,7 +201,6 @@ Zone Asia/Phnom_Penh 6:59:40 - LMT 1906 Jun 9 Rule Shang 1940 only - Jun 3 0:00 1:00 D Rule Shang 1940 1941 - Oct 1 0:00 0 S Rule Shang 1941 only - Mar 16 0:00 1:00 D -Rule PRC 1949 only - Jan 1 0:00 0 S Rule PRC 1986 only - May 4 0:00 1:00 D Rule PRC 1986 1991 - Sep Sun>=11 0:00 0 S Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D @@ -329,13 +328,13 @@ Zone Asia/Nicosia 2:13:28 - LMT 1921 Nov 14 Link Asia/Nicosia Europe/Nicosia # Georgia -# From Paul Eggert <eggert@twinsun.com> (1994-11-19): +# From Paul Eggert (1994-11-19): # Today's _Economist_ (p 60) reports that Georgia moved its clocks forward # an hour recently, due to a law proposed by Zurab Murvanidze, # an MP who went on a hunger strike for 11 days to force discussion about it! # We have no details, but we'll guess they didn't move the clocks back in fall. # -# From Mathew Englander <mathew@io.org>, quoting AP (1996-10-23 13:05-04): +# From Mathew Englander, quoting AP (1996-10-23 13:05-04): # Instead of putting back clocks at the end of October, Georgia # will stay on daylight savings time this winter to save energy, # President Eduard Shevardnadze decreed Wednesday. @@ -387,11 +386,11 @@ Zone Asia/Tbilisi 2:59:16 - LMT 1880 # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Dili 8:22:20 - LMT 1912 - 8:00 - TPT 1942 Feb 21 23:00 # E Timor Time + 8:00 - TLT 1942 Feb 21 23:00 # E Timor Time 9:00 - JST 1945 Aug - 9:00 - TPT 1976 May 3 + 9:00 - TLT 1976 May 3 8:00 - CIT 2000 Sep 17 00:00 - 9:00 - TPT + 9:00 - TLT # India # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -476,12 +475,33 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov # Thursday night of Shahrivar, but I can't give exact dates.... # I have also changed the abbreviations to what is considered correct # here in Iran, IRST for regular time and IRDT for daylight saving time. - -# From Paul Eggert (2003-03-15) +# +# From Roozbeh Pournader (2005-04-05): +# The text of the Iranian law, in effect since 1925, clearly mentions +# that the true solar year is the measure, and there is no arithmetic +# leap year calculation involved. There has never been any serious +# plan to change that law.... +# +# From Paul Eggert (2005-04-05): # Go with Shanks before September 1991, and with Pournader thereafter. -# I used Ed Reingold's cal-persia in GNU Emacs 21.2 to check Persian dates. -# The Persian calendar is based on the sun, and dates after around 2050 -# are approximate; stop after 2037 when 32-bit time_t's overflow. +# I used Ed Reingold's cal-persia in GNU Emacs 21.2 to check Persian dates, +# stopping after 2037 when 32-bit time_t's overflow. +# That cal-persia used Birashk's approximation, which disagrees with the solar +# calendar predictions for the year 2025, so I corrected those dates by hand. +# +# From Oscar van Vlijmen (2005-03-30), writing about future +# discrepancies between cal-persia and the Iranian calendar: +# For 2091 solar-longitude-after yields 2091-03-20 08:40:07.7 UT for +# the vernal equinox and that gets so close to 12:00 some local +# Iranian time that the definition of the correct location needs to be +# known exactly, amongst other factors. 2157 is even closer: +# 2157-03-20 08:37:15.5 UT. But the Gregorian year 2025 should give +# no interpretation problem whatsoever. By the way, another instant +# in the near future where there will be a discrepancy between +# arithmetical and astronomical Iranian calendars will be in 2058: +# vernal equinox on 2058-03-20 09:03:05.9 UT. The Java version of +# Reingold's/Dershowitz' calculator gives correctly the Gregorian date +# 2058-03-21 for 1 Farvardin 1437 (astronomical). # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Iran 1978 1980 - Mar 21 0:00 1:00 D @@ -519,10 +539,10 @@ Rule Iran 2020 only - Mar 21 0:00 1:00 D Rule Iran 2020 only - Sep 21 0:00 0 S Rule Iran 2021 2023 - Mar 22 0:00 1:00 D Rule Iran 2021 2023 - Sep 22 0:00 0 S -Rule Iran 2024 2025 - Mar 21 0:00 1:00 D -Rule Iran 2024 2025 - Sep 21 0:00 0 S -Rule Iran 2026 2027 - Mar 22 0:00 1:00 D -Rule Iran 2026 2027 - Sep 22 0:00 0 S +Rule Iran 2024 only - Mar 21 0:00 1:00 D +Rule Iran 2024 only - Sep 21 0:00 0 S +Rule Iran 2025 2027 - Mar 22 0:00 1:00 D +Rule Iran 2025 2027 - Sep 22 0:00 0 S Rule Iran 2028 2029 - Mar 21 0:00 1:00 D Rule Iran 2028 2029 - Sep 21 0:00 0 S Rule Iran 2030 2031 - Mar 22 0:00 1:00 D @@ -543,7 +563,7 @@ Zone Asia/Tehran 3:25:44 - LMT 1916 # Iraq # -# From Jonathan Lennox <lennox@cs.columbia.edu> (2000-06-12): +# From Jonathan Lennox (2000-06-12): # An article in this week's Economist ("Inside the Saddam-free zone", p. 50 in # the U.S. edition) on the Iraqi Kurds contains a paragraph: # "The three northern provinces ... switched their clocks this spring and @@ -642,7 +662,7 @@ Rule Zion 1987 only - Sep 13 0:00 0 S Rule Zion 1988 only - Apr 9 0:00 1:00 D Rule Zion 1988 only - Sep 3 0:00 0 S -# From Ephraim Silverberg <ephraim@cs.huji.ac.il> +# From Ephraim Silverberg # (1997-03-04, 1998-03-16, 1998-12-28, 2000-01-17, 2000-07-25, 2004-12-22, # and 2005-02-17): @@ -822,18 +842,32 @@ Zone Asia/Jerusalem 2:20:56 - LMT 1880 # `9:00' and `JST' is from Guy Harris. -# From Paul Eggert <eggert@twinsun.com> (1995-03-06): +# From Paul Eggert (1995-03-06): # Today's _Asahi Evening News_ (page 4) reports that Japan had # daylight saving between 1948 and 1951, but ``the system was discontinued # because the public believed it would lead to longer working hours.'' + +# From Mayumi Negishi in the 2005-08-10 Japan Times +# <http://www.japantimes.co.jp/cgi-bin/getarticle.pl5?nn20050810f2.htm>: +# Occupation authorities imposed daylight-saving time on Japan on +# [1948-05-01].... But lack of prior debate and the execution of +# daylight-saving time just three days after the bill was passed generated +# deep hatred of the concept.... The Diet unceremoniously passed a bill to +# dump the unpopular system in October 1951, less than a month after the San +# Francisco Peace Treaty was signed. (A government poll in 1951 showed 53% +# of the Japanese wanted to scrap daylight-saving time, as opposed to 30% who +# wanted to keep it.) + # Shanks writes that daylight saving in Japan during those years was as follows: # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -#Rule Japan 1948 only - May Sun>=1 2:00 1:00 D -#Rule Japan 1948 1951 - Sep Sat>=8 2:00 0 S -#Rule Japan 1949 only - Apr Sun>=1 2:00 1:00 D -#Rule Japan 1950 1951 - May Sun>=1 2:00 1:00 D -# but the only locations using it were US military bases. -# We go with Shanks and omit daylight saving in those years for Asia/Tokyo. +Rule Japan 1948 only - May Sun>=1 2:00 1:00 D +Rule Japan 1948 1951 - Sep Sat>=8 2:00 0 S +Rule Japan 1949 only - Apr Sun>=1 2:00 1:00 D +Rule Japan 1950 1951 - May Sun>=1 2:00 1:00 D +# but the only locations using it (for birth certificates, presumably, since +# Shanks's audience is astrologers) were US military bases. For now, assume +# that for most purposes daylight-saving time was observed; otherwise, what +# would have been the point of the 1951 poll? # From Hideyuki Suzuki (1998-11-09): # 'Tokyo' usually stands for the former location of Tokyo Astronomical @@ -863,7 +897,7 @@ Zone Asia/Jerusalem 2:20:56 - LMT 1880 Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u 9:00 - JST 1896 9:00 - CJT 1938 - 9:00 - JST + 9:00 Japan J%sT # Since 1938, all Japanese possessions have been like Asia/Tokyo. # Jordan @@ -909,14 +943,16 @@ Rule Jordan 2000 max - Mar lastThu 0:00s 1:00 S Zone Asia/Amman 2:23:44 - LMT 1931 2:00 Jordan EE%sT + # Kazakhstan + # From Paul Eggert (1996-11-22): -# Andrew Evtichov <evti@chevron.com> (1996-04-13) writes that Kazakhstan +# Andrew Evtichov (1996-04-13) writes that Kazakhstan # stayed in sync with Moscow after 1990, and that Aqtobe (formerly Aktyubinsk) # and Aqtau (formerly Shevchenko) are the largest cities in their zones. # Guess that Aqtau and Aqtobe diverged in 1995, since that's the first time # IATA SSIM mentions a third time zone in Kazakhstan. -# + # From Paul Eggert (2001-10-18): # German Iofis, ELSI, Almaty (2001-10-09) reports that Kazakhstan uses # RussiaAsia rules, instead of switching at 00:00 as the IATA has it. @@ -926,7 +962,7 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # - Kazakhstan did not observe DST in 1991. # - Qyzylorda switched from +5:00 to +6:00 on 1992-01-19 02:00. # - Oral switched from +5:00 to +4:00 in spring 1989. -# + # <a href="http://www.kazsociety.org.uk/news/2005/03/30.htm"> # From Kazakhstan Embassy's News Bulletin #11 (2005-03-21): # </a> @@ -934,6 +970,16 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # daylight saving time citing lack of economic benefits and health # complications coupled with a decrease in productivity. # +# From Branislav Kojic (in Astana) via Gwillim Law (2005-06-28): +# ... what happened was that the former Kazakhstan Eastern time zone +# was "blended" with the Central zone. Therefore, Kazakhstan now has +# two time zones, and difference between them is one hour. The zone +# closer to UTC is the former Western zone (probably still called the +# same), encompassing four provinces in the west: Aqtobe, Atyrau, +# Mangghystau, and West Kazakhstan. The other zone encompasses +# everything else.... I guess that would make Kazakhstan time zones +# de jure UTC+5 and UTC+6 respectively. + # # Zone NAME GMTOFF RULES FORMAT [UNTIL] # @@ -977,7 +1023,7 @@ Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2 5:00 - SHET 1991 Dec 16 # independence 5:00 RussiaAsia AQT%sT 1995 Mar lastSun 2:00 # Aqtau Time 4:00 RussiaAsia AQT%sT 2005 Mar 15 - 4:00 - AQTT + 5:00 - AQTT # West Kazakhstan Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk 4:00 - URAT 1930 Jun 21 # Ural'sk time @@ -988,10 +1034,17 @@ Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk 4:00 RussiaAsia URA%sT 1991 4:00 - URAT 1991 Dec 16 # independence 4:00 RussiaAsia ORA%sT 2005 Mar 15 # Oral Time - 4:00 - ORAT + 5:00 - ORAT # Kyrgyzstan (Kirgizstan) # Transitions through 1991 are from Shanks. + +# From Paul Eggert (2005-08-15): +# According to an article dated today in the Kyrgyzstan Development Gateway +# <http://eng.gateway.kg/cgi-bin/page.pl?id=1&story_name=doc9979.shtml> +# Kyrgyzstan is canceling the daylight saving time system. I take the article +# to mean that they will leave their clocks at 6 hours ahead of UTC. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Kirgiz 1992 1996 - Apr Sun>=7 0:00s 1:00 S Rule Kirgiz 1992 1996 - Sep lastSun 0:00 0 - @@ -1161,7 +1214,7 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Male # # [The province of Selenge is omitted from the above lists.] -# From Ganbold Ts., Ulaanbaatar <ganbold@micom.mng.net> (2004-04-17): +# From Ganbold Ts., Ulaanbaatar (2004-04-17): # Daylight saving occurs at 02:00 local time last Saturday of March. # It will change back to normal at 02:00 local time last Saturday of # September.... As I remember this rule was changed in 2001. @@ -1170,6 +1223,24 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Male # For now, assume Rives McDow's informant got confused about Friday vs # Saturday, and that his 2001 dates should have 1 added to them. +# From Paul Eggert (2005-07-26): +# We have wildly conflicting information about Mongolia's time zones. +# Bill Bonnet (2005-05-19) reports that the US Embassy in Ulaanbaatar says +# there is only one time zone and that DST is observed, citing Microsoft +# Windows XP as the source. Risto Nykanen (2005-05-16) reports that +# travelmongolia.org says there are two time zones (UTC+7, UTC+8) with no DST. +# Oscar van Vlijmen (2005-05-20) reports that the Mongolian Embassy in +# Washington, DC says there are two time zones, with DST observed. +# He also found +# <http://ubpost.mongolnews.mn/index.php?subaction=showcomments&id=1111634894&archive=&start_from=&ucat=1&> +# which also says that there is DST, and which has a comment by "Toddius" +# (2005-03-31 06:05 +0700) saying "Mongolia actually has 3.5 time zones. +# The West (OLGII) is +7 GMT, most of the country is ULAT is +8 GMT +# and some Eastern provinces are +9 GMT but Sukhbaatar Aimag is SUHK +8.5 GMT. +# The SUKH timezone is new this year, it is one of the few things the +# parliament passed during the tumultuous winter session." +# For now, let's ignore this information, until we have more confirmation. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Mongol 1983 1984 - Apr 1 0:00 1:00 S Rule Mongol 1983 only - Oct 1 0:00 0 - @@ -1261,7 +1332,7 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # Palestine -# From Amos Shapir <amos@nsof.co.il> (1998-02-15): +# From Amos Shapir (1998-02-15): # # From 1917 until 1948-05-15, all of Palestine, including the parts now # known as the Gaza Strip and the West Bank, was under British rule. @@ -1523,7 +1594,7 @@ Zone Asia/Tashkent 4:37:12 - LMT 1924 May 2 5:00 - UZT # Vietnam -# From Paul Eggert <eggert@twinsun.com> (1993-11-18): +# From Paul Eggert (1993-11-18): # Saigon's official name is Thanh-Pho Ho Chi Minh, but it's too long. # We'll stick with the traditional name for now. # From Shanks: diff --git a/timezone/australasia b/timezone/australasia index 41c7368852..57bd60adb4 100644 --- a/timezone/australasia +++ b/timezone/australasia @@ -1,4 +1,4 @@ -# @(#)australasia 7.71 +# @(#)australasia 7.73 # This file also includes Pacific islands. # Notes are at the end of this file @@ -38,7 +38,7 @@ Zone Australia/Perth 7:43:24 - LMT 1895 Dec 8:00 - WST # Queensland # -# From Alex Livingston <alex@agsm.unsw.edu.au> (1996-11-01): +# From Alex Livingston (1996-11-01): # I have heard or read more than once that some resort islands off the coast # of Queensland chose to keep observing daylight-saving time even after # Queensland ceased to. @@ -77,7 +77,9 @@ Rule AS 1991 only - Mar Sun>=1 2:00s 0 - Rule AS 1992 only - Mar Sun>=18 2:00s 0 - Rule AS 1993 only - Mar Sun>=1 2:00s 0 - Rule AS 1994 only - Mar Sun>=18 2:00s 0 - -Rule AS 1995 max - Mar lastSun 2:00s 0 - +Rule AS 1995 2005 - Mar lastSun 2:00s 0 - +Rule AS 2006 only - Apr Sun>=1 2:00s 0 - +Rule AS 2007 max - Mar lastSun 2:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Australia/Adelaide 9:14:20 - LMT 1895 Feb 9:00 - CST 1899 May @@ -85,6 +87,11 @@ Zone Australia/Adelaide 9:14:20 - LMT 1895 Feb 9:30 AS CST # Tasmania +# +# From Paul Eggert (2005-08-16): +# <http://www.bom.gov.au/climate/averages/tables/dst_times.shtml> +# says King Island didn't observe DST from WWII until late 1971. +# # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule AT 1967 only - Oct Sun>=1 2:00s 1:00 - Rule AT 1968 only - Mar lastSun 2:00s 0 - @@ -99,15 +106,22 @@ Rule AT 1987 1990 - Mar Sun>=15 2:00s 0 - Rule AT 1987 only - Oct Sun>=22 2:00s 1:00 - Rule AT 1988 1990 - Oct lastSun 2:00s 1:00 - Rule AT 1991 1999 - Oct Sun>=1 2:00s 1:00 - -Rule AT 1991 max - Mar lastSun 2:00s 0 - +Rule AT 1991 2005 - Mar lastSun 2:00s 0 - Rule AT 2000 only - Aug lastSun 2:00s 1:00 - Rule AT 2001 max - Oct Sun>=1 2:00s 1:00 - +Rule AT 2006 only - Apr Sun>=1 2:00s 0 - +Rule AT 2007 max - Mar lastSun 2:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Australia/Hobart 9:49:16 - LMT 1895 Sep 10:00 - EST 1916 Oct 1 2:00 10:00 1:00 EST 1917 Feb 10:00 Aus EST 1967 10:00 AT EST +Zone Australia/Currie 9:35:28 - LMT 1895 Sep + 10:00 - EST 1916 Oct 1 2:00 + 10:00 1:00 EST 1917 Feb + 10:00 Aus EST 1971 Jul + 10:00 AT EST # Victoria # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -118,9 +132,11 @@ Rule AV 1986 1990 - Mar Sun>=15 2:00s 0 - Rule AV 1986 1987 - Oct Sun>=15 2:00s 1:00 - Rule AV 1988 1999 - Oct lastSun 2:00s 1:00 - Rule AV 1991 1994 - Mar Sun>=1 2:00s 0 - -Rule AV 1995 max - Mar lastSun 2:00s 0 - +Rule AV 1995 2005 - Mar lastSun 2:00s 0 - Rule AV 2000 only - Aug lastSun 2:00s 1:00 - Rule AV 2001 max - Oct lastSun 2:00s 1:00 - +Rule AV 2006 only - Apr Sun>=1 2:00s 0 - +Rule AV 2007 max - Mar lastSun 2:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Australia/Melbourne 9:39:52 - LMT 1895 Feb 10:00 Aus EST 1971 @@ -137,9 +153,11 @@ Rule AN 1986 1989 - Mar Sun>=15 2:00s 0 - Rule AN 1986 only - Oct 19 2:00s 1:00 - Rule AN 1987 1999 - Oct lastSun 2:00s 1:00 - Rule AN 1990 1995 - Mar Sun>=1 2:00s 0 - -Rule AN 1996 max - Mar lastSun 2:00s 0 - +Rule AN 1996 2005 - Mar lastSun 2:00s 0 - Rule AN 2000 only - Aug lastSun 2:00s 1:00 - Rule AN 2001 max - Oct lastSun 2:00s 1:00 - +Rule AN 2006 only - Apr Sun>=1 2:00s 0 - +Rule AN 2007 max - Mar lastSun 2:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Australia/Sydney 10:04:52 - LMT 1895 Feb 10:00 Aus EST 1971 @@ -160,9 +178,11 @@ Rule LH 1986 1989 - Mar Sun>=15 2:00 0 - Rule LH 1986 only - Oct 19 2:00 0:30 - Rule LH 1987 1999 - Oct lastSun 2:00 0:30 - Rule LH 1990 1995 - Mar Sun>=1 2:00 0 - -Rule LH 1996 max - Mar lastSun 2:00 0 - +Rule LH 1996 2005 - Mar lastSun 2:00 0 - Rule LH 2000 only - Aug lastSun 2:00 0:30 - Rule LH 2001 max - Oct lastSun 2:00 0:30 - +Rule LH 2006 only - Apr Sun>=1 2:00 0 - +Rule LH 2007 max - Mar lastSun 2:00 0 - Zone Australia/Lord_Howe 10:36:20 - LMT 1895 Feb 10:00 - EST 1981 Mar 10:30 LH LHST @@ -264,9 +284,6 @@ Zone Pacific/Kwajalein 11:09:20 - LMT 1901 # Micronesia # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Pacific/Yap 9:12:32 - LMT 1901 # Colonia - 9:00 - YAPT 1969 Oct # Yap Time - 10:00 - YAPT Zone Pacific/Truk 10:07:08 - LMT 1901 10:00 - TRUT # Truk Time Zone Pacific/Ponape 10:32:52 - LMT 1901 # Kolonia @@ -488,7 +505,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # go ahead and edit the file (and please send any changes to # tz@elsie.nci.nih.gov for general use in the future). -# From Paul Eggert <eggert@twinsun.com> (1999-10-29): +# From Paul Eggert (1999-10-29): # A good source for time zone historical data outside the U.S. is # Thomas G. Shanks, The International Atlas (5th edition), # San Diego: ACS Publications, Inc. (1999). @@ -645,13 +662,13 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # From Paul Eggert (1995-12-19): # Shanks reports 2:00 for all autumn changes in Australia and New Zealand. -# Mark Prior <mrp@itd.adelaide.edu.au> writes that his newspaper +# Mark Prior writes that his newspaper # reports that NSW's fall 1995 change will occur at 2:00, # but Robert Elz says it's been 3:00 in Victoria since 1970 # and perhaps the newspaper's `2:00' is referring to standard time. # For now we'll continue to assume 2:00s for changes since 1960. -# From Eric Ulevik <eau@zip.com.au> (1998-01-05): +# From Eric Ulevik (1998-01-05): # # Here are some URLs to Australian time legislation. These URLs are stable, # and should probably be included in the data file. There are probably more @@ -670,6 +687,24 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # Standard Time Act, 1898 # </a> +# From David Grosz (2005-06-13): +# It was announced last week that Daylight Saving would be extended by +# one week next year to allow for the 2006 Commonwealth Games. +# Daylight Saving is now to end for next year only on the first Sunday +# in April instead of the last Sunday in March. +# +# From Gwillim Law (2005-06-14): +# I did some Googling and found that all of those states (and territory) plan +# to extend DST together in 2006. +# ACT: http://www.cmd.act.gov.au/mediareleases/fileread.cfm?file=86.txt +# New South Wales: http://www.thecouriermail.news.com.au/common/story_page/0,5936,15538869%255E1702,00.html +# South Australia: http://www.news.com.au/story/0,10117,15555031-1246,00.html +# Tasmania: http://www.media.tas.gov.au/release.php?id=14772 +# Victoria: I wasn't able to find anything separate, but the other articles +# allude to it. +# But not Queensland +# http://www.news.com.au/story/0,10117,15564030-1248,00.html. + # Northern Territory # From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06): @@ -856,7 +891,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # 1994 was at +0930 as John Connolly's customer seems to assert, then I can # only conclude that the actual rule is more complicated.... -# From John Warburton <jwarb@SACBH.com.au> (1994-10-07): +# From John Warburton (1994-10-07): # The new Daylight Savings dates for South Australia ... # was gazetted in the Government Hansard on Sep 26 1994.... # start on last Sunday in October and end in last sunday in March. @@ -916,7 +951,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # From Arthur David Olson: # New South Wales and subjurisdictions have their own ideas of a fun time. -# Based on law library research by John Mackin (john@basser.cs.su.oz), +# Based on law library research by John Mackin, # who notes: # In Australia, time is not legislated federally, but rather by the # individual states. Thus, while such terms as ``Eastern Standard Time'' @@ -936,7 +971,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # Lawlink NSW: Daylight Saving in New South Wales # </a> -# From Eric Ulevik <eau@ozemail.com.au> (1999-05-26): +# From Eric Ulevik (1999-05-26): # DST will start in NSW on the last Sunday of August, rather than the usual # October in 2000. [See: Matthew Moore, # <a href="http://www.smh.com.au/news/9905/26/pageone/pageone4.html"> @@ -1070,7 +1105,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # From Paul Eggert (1995-12-19); # Shanks reports 2:00 for all autumn changes in Australia and New Zealand. -# Robert Uzgalis <buz@cs.aukuni.ac.nz> writes that the New Zealand Daylight +# Robert Uzgalis writes that the New Zealand Daylight # Savings Time Order in Council dated 1990-06-18 specifies 2:00 standard # time on both the first Sunday in October and the third Sunday in March. # As with Australia, we'll assume the tradition is 2:00s, not 2:00. @@ -1149,7 +1184,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # Micronesia -# Alan Eugene Davis <adavis@kuentos.guam.net> writes (1996-03-16), +# Alan Eugene Davis writes (1996-03-16), # ``I am certain, having lived there for the past decade, that "Truk" # (now properly known as Chuuk) ... is in the time zone GMT+10.'' # @@ -1257,10 +1292,10 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # October to March, which has won approval in principle from the Tongan # Government. -# From Steffen Thorsen [straen@thorsen.priv.no] (1999-09-09): +# From Steffen Thorsen (1999-09-09): # * Tonga will introduce DST in November # -# I was given this link by John Letts <johnletts@earthlink.net>: +# I was given this link by John Letts: # <a hef="http://news.bbc.co.uk/hi/english/world/asia-pacific/newsid_424000/424764.stm"> # http://news.bbc.co.uk/hi/english/world/asia-pacific/newsid_424000/424764.stm # </a> @@ -1270,7 +1305,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # of UTC as well, but as far as I know Fiji will only be 13 hours ahead # (12 + 1 hour DST). -# From Arthur David Olson [arthur_david_olson@nih.gov] (1999-09-20): +# From Arthur David Olson (1999-09-20): # According to <a href="http://www.tongaonline.com/news/sept1799.html> # http://www.tongaonline.com/news/sept1799.html # </a>: diff --git a/timezone/backward b/timezone/backward index 9fbab94d79..ca22dfeaee 100644 --- a/timezone/backward +++ b/timezone/backward @@ -1,16 +1,20 @@ -# @(#)backward 7.27 +# @(#)backward 7.29 # This file provides links between current names for time zones # and their old names. Many names changed in late 1993. +Link Africa/Bamako Africa/Timbuktu +Link America/Argentina/Catamarca America/Argentina/ComodRivadavia Link America/Adak America/Atka Link America/Argentina/Buenos_Aires America/Buenos_Aires Link America/Argentina/Catamarca America/Catamarca Link America/Argentina/Cordoba America/Cordoba Link America/Tijuana America/Ensenada -Link America/Indianapolis America/Fort_Wayne +Link America/Indiana/Indianapolis America/Fort_Wayne +Link America/Indiana/Indianapolis America/Indianapolis Link America/Argentina/Jujuy America/Jujuy Link America/Indiana/Knox America/Knox_IN +Link America/Kentucky/Louisville America/Louisville Link America/Argentina/Mendoza America/Mendoza Link America/Rio_Branco America/Porto_Acre Link America/Argentina/Cordoba America/Rosario @@ -19,9 +23,9 @@ Link Asia/Ashgabat Asia/Ashkhabad Link Asia/Chongqing Asia/Chungking Link Asia/Dhaka Asia/Dacca Link Asia/Macau Asia/Macao -Link Asia/Makassar Asia/Ujung_Pandang Link Asia/Jerusalem Asia/Tel_Aviv Link Asia/Thimphu Asia/Thimbu +Link Asia/Makassar Asia/Ujung_Pandang Link Asia/Ulaanbaatar Asia/Ulan_Bator Link Australia/Sydney Australia/ACT Link Australia/Sydney Australia/Canberra @@ -38,6 +42,7 @@ Link America/Rio_Branco Brazil/Acre Link America/Noronha Brazil/DeNoronha Link America/Sao_Paulo Brazil/East Link America/Manaus Brazil/West +Link America/Chicago CST6CDT Link America/Halifax Canada/Atlantic Link America/Winnipeg Canada/Central Link America/Regina Canada/East-Saskatchewan @@ -50,8 +55,11 @@ Link America/Whitehorse Canada/Yukon Link America/Santiago Chile/Continental Link Pacific/Easter Chile/EasterIsland Link America/Havana Cuba +Link America/Panama EST +Link America/New_York EST5EDT Link Africa/Cairo Egypt Link Europe/Dublin Eire +Link Europe/London Europe/Belfast Link Europe/Chisinau Europe/Tiraspol Link Europe/London GB Link Europe/London GB-Eire @@ -59,6 +67,7 @@ Link Etc/GMT GMT+0 Link Etc/GMT GMT-0 Link Etc/GMT GMT0 Link Etc/GMT Greenwich +Link Pacific/Honolulu HST Link Asia/Hong_Kong Hongkong Link Atlantic/Reykjavik Iceland Link Asia/Tehran Iran @@ -67,16 +76,20 @@ Link America/Jamaica Jamaica Link Asia/Tokyo Japan Link Pacific/Kwajalein Kwajalein Link Africa/Tripoli Libya +Link America/Phoenix MST +Link America/Denver MST7MDT Link America/Tijuana Mexico/BajaNorte Link America/Mazatlan Mexico/BajaSur Link America/Mexico_City Mexico/General -Link America/Denver Navajo Link Pacific/Auckland NZ Link Pacific/Chatham NZ-CHAT +Link America/Denver Navajo +Link Asia/Shanghai PRC +Link America/Los_Angeles PST8PDT Link Pacific/Pago_Pago Pacific/Samoa +Link Pacific/Truk Pacific/Yap Link Europe/Warsaw Poland Link Europe/Lisbon Portugal -Link Asia/Shanghai PRC Link Asia/Taipei ROC Link Asia/Seoul ROK Link Asia/Singapore Singapore @@ -86,7 +99,7 @@ Link America/Anchorage US/Alaska Link America/Adak US/Aleutian Link America/Phoenix US/Arizona Link America/Chicago US/Central -Link America/Indianapolis US/East-Indiana +Link America/Indiana/Indianapolis US/East-Indiana Link America/New_York US/Eastern Link Pacific/Honolulu US/Hawaii Link America/Indiana/Knox US/Indiana-Starke diff --git a/timezone/checktab.awk b/timezone/checktab.awk index 6a2d19ae00..6d532141e6 100644 --- a/timezone/checktab.awk +++ b/timezone/checktab.awk @@ -1,8 +1,8 @@ # Check tz tables for consistency. -# @(#)checktab.awk 1.6 +# @(#)checktab.awk 1.7 -# Contributed by Paul Eggert <eggert@twinsun.com>. +# Contributed by Paul Eggert. BEGIN { FS = "\t" diff --git a/timezone/europe b/timezone/europe index 3bf1b1ab02..ec6720a804 100644 --- a/timezone/europe +++ b/timezone/europe @@ -1,10 +1,10 @@ -# @(#)europe 7.92 +# @(#)europe 7.95 # This data is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to # tz@elsie.nci.nih.gov for general use in the future). -# From Paul Eggert <eggert@twinsun.com> (1999-10-29): +# From Paul Eggert (1999-10-29): # A good source for time zone historical data outside the U.S. is # Thomas G. Shanks, The International Atlas (5th edition), # San Diego: ACS Publications, Inc. (1999). @@ -55,7 +55,7 @@ # A reliable and entertaining source about time zones, especially in Britain, # Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997). -# From Peter Ilieve <peter@memex.co.uk> (1994-12-04), +# From Peter Ilieve (1994-12-04), # The original six [EU members]: Belgium, France, (West) Germany, Italy, # Luxembourg, the Netherlands. # Plus, from 1 Jan 73: Denmark, Ireland, United Kingdom. @@ -81,7 +81,7 @@ # Britain (United Kingdom) and Ireland (Eire) -# From Peter Ilieve <peter@memex.co.uk> (1994-07-06): +# From Peter Ilieve (1994-07-06): # # On 17 Jan 1994 the Independent, a UK quality newspaper, had a piece about # historical vistas along the Thames in west London. There was a photo @@ -102,7 +102,7 @@ # # [This yields GMTOFF = -0:01:15 for London LMT in the 18th century.] -# From Paul Eggert <eggert@twinsun.com> (1993-11-18): +# From Paul Eggert (1993-11-18): # # Howse writes that Britain was the first country to use standard time. # The railways cared most about the inconsistencies of local mean time, @@ -168,12 +168,12 @@ # known as "British" Summer Time in all parts of the United Kingdom. # Date: 4 Jan 89 08:57:25 GMT (Wed) -# From: Jonathan Leffler <nih-csl!uunet!mcvax!sphinx.co.uk!john> +# From: Jonathan Leffler # [British Summer Time] is fixed annually by Act of Parliament. # If you can predict what Parliament will do, you should be in # politics making a fortune, not computing. -# From Chris Carrier <72157.3334@CompuServe.COM> (1996-06-14): +# From Chris Carrier (1996-06-14): # I remember reading in various wartime issues of the London Times the # acronym BDST for British Double Summer Time. Look for the published # time of sunrise and sunset in The Times, when BDST was in effect, and @@ -204,15 +204,15 @@ # and follows the more usual convention of putting the location name first, # so we use `BDST'. -# Peter Ilieve <peter@aldie.co.uk> (1998-04-19) described at length +# Peter Ilieve (1998-04-19) described at length # the history of summer time legislation in the United Kingdom. -# Since 1998 Joseph S. Myers <jsm28@cam.ac.uk> has been updating +# Since 1998 Joseph S. Myers has been updating # and extending this list, which can be found in # <a href="http://student.cusu.cam.ac.uk/~jsm28/british-time/"> # History of legal time in Britain # </a> -# From Joseph S. Myers <jsm28@cam.ac.uk> (1998-01-06): +# From Joseph S. Myers (1998-01-06): # # The legal time in the UK outside of summer time is definitely GMT, not UTC; # see Lord Tanlaw's speech @@ -422,13 +422,6 @@ Zone Europe/London -0:01:15 - LMT 1847 Dec 1 1:00 - BST 1971 Oct 31 2:00u 0:00 GB-Eire %s 1996 0:00 EU GMT/BST -Zone Europe/Belfast -0:23:40 - LMT 1880 Aug 2 - -0:25:21 - DMT 1916 May 21 2:00 # Dublin/Dunsink MT - -0:25:21 1:00 IST 1916 Oct 1 2:00s # Irish Summer Time - 0:00 GB-Eire %s 1968 Oct 27 - 1:00 - BST 1971 Oct 31 2:00u - 0:00 GB-Eire %s 1996 - 0:00 EU GMT/BST Zone Europe/Dublin -0:25:00 - LMT 1880 Aug 2 -0:25:21 - DMT 1916 May 21 2:00 -0:25:21 1:00 IST 1916 Oct 1 2:00s @@ -536,7 +529,7 @@ Zone EET 2:00 EU EE%sT # Previous editions of this database used abbreviations like MET DST # for Central European Summer Time, but this didn't agree with common usage. -# From Markus Kuhn <mskuhn@unrza3.dialin.rrze.uni-erlangen.de> (1996-07-12): +# From Markus Kuhn (1996-07-12): # The official German names ... are # # Mitteleuropaeische Zeit (MEZ) = UTC+01:00 @@ -652,7 +645,7 @@ Zone Europe/Minsk 1:50:16 - LMT 1880 # pp 8-9. # LMT before 1892 was 0:17:30, according to the official journal of Belgium: # Moniteur Belge, Samedi 30 Avril 1892, N.121. -# Thanks to Pascal Delmoitie <pascal@belnet.be> for these references. +# Thanks to Pascal Delmoitie for these references. # The 1918 rules are listed for completeness; they apply to unoccupied Belgium. # Assume Brussels switched to WET in 1918 when the armistice took effect. # @@ -711,7 +704,7 @@ Zone Europe/Brussels 0:17:30 - LMT 1880 # Bulgaria # -# From Plamen Simenov <P.Simeonov@cnsys.bg> via Steffen Thorsen (1999-09-09): +# From Plamen Simenov via Steffen Thorsen (1999-09-09): # A document of Government of Bulgaria (No.94/1997) says: # EET --> EETDST is in 03:00 Local time in last Sunday of March ... # EETDST --> EET is in 04:00 Local time in last Sunday of October @@ -756,6 +749,40 @@ Zone Europe/Prague 0:57:44 - LMT 1850 1:00 EU CE%sT # Denmark, Faeroe Islands, and Greenland + +# From Jesper Norgaard Welen (2005-04-26): +# http://www.hum.aau.dk/~poe/tid/tine/DanskTid.htm says that the law +# [introducing standard time] was in effect from 1894-01-01.... +# The page http://www.retsinfo.dk/_GETDOCI_/ACCN/A18930008330-REGL +# confirms this, and states that the law was put forth 1893-03-29. +# +# The EU treaty with effect from 1973: +# http://www.retsinfo.dk/_GETDOCI_/ACCN/A19722110030-REGL +# +# This provoked a new law from 1974 to make possible summer time changes +# in subsequenet decrees with the law +# http://www.retsinfo.dk/_GETDOCI_/ACCN/A19740022330-REGL +# +# It seems however that no decree was set forward until 1980. I have +# not found any decree, but in another related law, the effecting DST +# changes are stated explicitly to be from 1980-04-06 at 02:00 to +# 1980-09-28 at 02:00. If this is true, this differs slightly from +# the EU rule in that DST runs to 02:00, not 03:00. We don't know +# when Denmark began using the EU rule correctly, but we have only +# confirmation of the 1980-time, so I presume it was correct in 1981: +# The law is about the management of the extra hour, concerning +# working hours reported and effect on obligatory-rest rules (which +# was suspended on that night): +# http://www.retsinfo.dk/_GETDOCI_/ACCN/C19801120554-REGL + +# From Jesper Norgaard Welen (2005-06-11): +# The Herning Folkeblad (1980-09-26) reported that the night between +# Saturday and Sunday the clock is set back from three to two. + +# From Paul Eggert (2005-06-11): +# Hence the "02:00" of the 1980 law refers to standard time, not +# wall-clock time, and so the EU rules were in effect in 1980. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Denmark 1916 only - May 14 23:00 1:00 S Rule Denmark 1916 only - Sep 30 23:00 0 - @@ -768,13 +795,10 @@ Rule Denmark 1947 only - May 4 2:00s 1:00 S Rule Denmark 1947 only - Aug 10 2:00s 0 - Rule Denmark 1948 only - May 9 2:00s 1:00 S Rule Denmark 1948 only - Aug 8 2:00s 0 - -# Whitman also gives 1949 Apr 9 to 1949 Oct 1, and disagrees in minor ways -# about many of the above dates; go with Shanks. # -# For 1894, Shanks says Jan, Whitman Apr; go with Whitman. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Copenhagen 0:50:20 - LMT 1890 - 0:50:20 - CMT 1894 Apr # Copenhagen Mean Time + 0:50:20 - CMT 1894 Jan 1 # Copenhagen MT 1:00 Denmark CE%sT 1942 Nov 2 2:00s 1:00 C-Eur CE%sT 1945 Apr 2 2:00 1:00 Denmark CE%sT 1980 @@ -874,12 +898,12 @@ Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik air base -4:00 Thule A%sT # Estonia -# From Peter Ilieve <peter@memex.co.uk> (1994-10-15): +# From Peter Ilieve (1994-10-15): # A relative in Tallinn confirms the accuracy of the data for 1989 onwards # [through 1994] and gives the legal authority for it, # a regulation of the Government of Estonia, No. 111 of 1989.... # -# From Peter Ilieve <peter@aldie.co.uk> (1996-10-28): +# From Peter Ilieve (1996-10-28): # [IATA SSIM (1992/1996) claims that the Baltic republics switch at 01:00s, # but a relative confirms that Estonia still switches at 02:00s, writing:] # ``I do not [know] exactly but there are some little different @@ -889,7 +913,7 @@ Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik air base # human physiology. It seems that Estonia maybe will not change to # summer time next spring.'' -# From Peter Ilieve <peter@aldie.co.uk> (1998-11-04), heavily edited: +# From Peter Ilieve (1998-11-04), heavily edited: # <a href="http://trip.rk.ee/cgi-bin/thw?${BASE}=akt&${OOHTML}=rtd&TA=1998&TO=1&AN=1390"> # The 1998-09-22 Estonian time law # </a> @@ -938,11 +962,11 @@ Zone Europe/Tallinn 1:39:00 - LMT 1880 # Finland # -# From Hannu Strang <chs@apu.fi> (25 Sep 1994 06:03:37 UTC): +# From Hannu Strang (25 Sep 1994 06:03:37 UTC): # Well, here in Helsinki we're just changing from summer time to regular one, # and it's supposed to change at 4am... # -# From Paul Eggert <eggert@twinsun.com> (25 Sep 1994): +# From Paul Eggert (25 Sep 1994): # Shanks says Finland has switched at 02:00 standard time since 1981. # Go with Strang instead. # @@ -1019,7 +1043,7 @@ Rule France 1940 only - Feb 25 2:00 1:00 S # Dole, Morez, St-Claude, and Collognes (Haute-Savioe). Rule France 1941 only - May 5 0:00 2:00 M # Midsummer # Shanks says this transition occurred at Oct 6 1:00, -# but go with Denis.Excoffier@ens.fr (1997-12-12), +# but go with Denis Excoffier (1997-12-12), # who quotes the Ephemerides Astronomiques for 1998 from Bureau des Longitudes # as saying 5/10/41 22hUT. Rule France 1941 only - Oct 6 0:00 1:00 S @@ -1053,7 +1077,7 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01 # Germany -# From Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk> (1998-09-29): +# From Markus Kuhn (1998-09-29): # The German time zone web site by the Physikalisch-Technische # Bundesanstalt contains DST information back to 1916. # [See tz-link.htm for the URL.] @@ -1168,7 +1192,7 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Oct # Iceland # -# From Adam David <adam@veda.is> (1993-11-06): +# From Adam David (1993-11-06): # The name of the timezone in Iceland for system / mail / news purposes is GMT. # # (1993-12-05): @@ -1195,7 +1219,7 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Oct # might be a reference to the Julian calendar as opposed to Gregorian, or it # might mean something else (???). # -# From Paul Eggert <eggert@twinsun.com> (1999-10-29): +# From Paul Eggert (1999-10-29): # The Iceland Almanak, Shanks and Whitman disagree on many points. # We go with the Almanak, except for one claim from Shanks, namely that # Reykavik was 21W57 from 1837 to 1908, local mean time before that. @@ -1311,7 +1335,7 @@ Link Europe/Rome Europe/San_Marino # Latvia -# From Liene Kanepe <Liene_Kanepe@lm.gov.lv> (1998-09-17): +# From Liene Kanepe (1998-09-17): # I asked about this matter Scientific Secretary of the Institute of Astronomy # of The University of Latvia Dr. paed Mr. Ilgonis Vilks. I also searched the @@ -1398,7 +1422,7 @@ Zone Europe/Vaduz 0:38:04 - LMT 1894 Jun # IATA SSIM (1992/1996) says Lithuania uses W-Eur rules, but since it is # known to be wrong about Estonia and Latvia, assume it's wrong here too. -# From Marius Gedminas <mgedmin@pub.osf.lt> (1998-08-07): +# From Marius Gedminas (1998-08-07): # I would like to inform that in this year Lithuanian time zone # (Europe/Vilnius) was changed. @@ -1505,7 +1529,7 @@ Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 # Valletta # on 1991-08-27 (the 1992-01-19 date is that of a Russian decree). # In early 1992 there was large-scale interethnic violence in the area # and it's possible that some Russophones continued to observe Moscow time. -# But moldavizolit@tirastel.md and mk@tirastel.md separately reported via +# But [two people] separately reported via # Jesper Norgaard that as of 2001-01-24 Tiraspol was like Chisinau. # The Tiraspol entry has therefore been removed for now. @@ -1608,12 +1632,10 @@ Zone Europe/Amsterdam 0:19:32 - LMT 1835 1:00 EU CE%sT # Norway +# http://met.no/met/met_lex/q_u/sommertid.html (2004-01) agrees with Shanks. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -# Whitman gives 1916 May 21 - 1916 Oct 21; go with Shanks. Rule Norway 1916 only - May 22 1:00 1:00 S Rule Norway 1916 only - Sep 30 0:00 0 - -# Whitman says DST observed 1935-08-11/1942-11-01, then 1943-03-29/10-04, -# 1944-04-03/10-02, and 1945-04-01/10-01; go with Shanks. Rule Norway 1945 only - Apr 2 2:00s 1:00 S Rule Norway 1945 only - Oct 1 2:00s 0 - Rule Norway 1959 1964 - Mar Sun>=15 2:00s 1:00 S @@ -1686,19 +1708,26 @@ Rule Poland 1944 only - Oct 4 2:00 0 - # For 1944-1948 Whitman gives the previous day; go with Shanks. Rule Poland 1945 only - Apr 29 0:00 1:00 S Rule Poland 1945 only - Nov 1 0:00 0 - -Rule Poland 1946 only - Apr 14 0:00 1:00 S -Rule Poland 1946 only - Sep 7 0:00 0 - -Rule Poland 1947 only - May 4 0:00 1:00 S -Rule Poland 1947 1948 - Oct Sun>=1 0:00 0 - -Rule Poland 1948 only - Apr 18 0:00 1:00 S -# Whitman also gives 1949 Apr 9 - 1949 Oct 1; go with Shanks. +# For 1946 on the source is Kazimierz Borkowski, +# Torun Center for Astronomy, Dept. of Radio Astronomy, Nicolaus Copernicus U., +# <http://www.astro.uni.torun.pl/~kb/Artykuly/U-PA/Czas2.htm#tth_tAb1> +# Thanks to Przemyslaw Augustyniak (2005-05-28) for this reference. +# He also gives these further references: +# Mon Pol nr 13, poz 162 (1995) <http://www.abc.com.pl/serwis/mp/1995/0162.htm> +# Druk nr 2180 (2003) <http://www.senat.gov.pl/k5/dok/sejm/053/2180.pdf> +Rule Poland 1946 only - Apr 14 0:00s 1:00 S +Rule Poland 1946 only - Oct 7 2:00s 0 - +Rule Poland 1947 only - May 4 2:00s 1:00 S +Rule Poland 1947 1949 - Oct Sun>=1 2:00s 0 - +Rule Poland 1948 only - Apr 18 2:00s 1:00 S +Rule Poland 1949 only - Apr 10 2:00s 1:00 S Rule Poland 1957 only - Jun 2 1:00s 1:00 S Rule Poland 1957 1958 - Sep lastSun 1:00s 0 - Rule Poland 1958 only - Mar 30 1:00s 1:00 S Rule Poland 1959 only - May 31 1:00s 1:00 S Rule Poland 1959 1961 - Oct Sun>=1 1:00s 0 - Rule Poland 1960 only - Apr 3 1:00s 1:00 S -Rule Poland 1961 1964 - May Sun>=25 1:00s 1:00 S +Rule Poland 1961 1964 - May lastSun 1:00s 1:00 S Rule Poland 1962 1964 - Sep lastSun 1:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Warsaw 1:24:00 - LMT 1880 @@ -1707,33 +1736,17 @@ Zone Europe/Warsaw 1:24:00 - LMT 1880 2:00 Poland EE%sT 1922 Jun 1:00 Poland CE%sT 1940 Jun 23 2:00 1:00 C-Eur CE%sT 1944 Oct - 1:00 Poland CE%sT 1977 Apr 3 1:00 - 1:00 W-Eur CE%sT 1999 -# IATA SSIM (1991/1996) gives EU rules, but the _The Warsaw Voice_ -# <a href="http://www.warsawvoice.com.pl/v361/NewsInBrief.shtml"> -# http://www.warsawvoice.com/pl/v361/NewsInBrief.shtml (1995-09-24) -# </a> -# says the autumn 1995 switch was at 02:00. -# Stick with W-Eur for now. -# -# From Marcin.Kasperski@softax.com.pl (1999-06-10): -# According to my colleagues someone recently decided, that Poland would -# follow European Union regulations, so - I think - the matter is not -# worth further discussion. -# -# From Paul Eggert (1999-06-10): -# Kasperski also writes that the government futzed with the rules in 1997 -# or 1998 but he doesn't remember the details. Assume they switched to -# EU rules in 1999. + 1:00 Poland CE%sT 1977 + 1:00 W-Eur CE%sT 1988 1:00 EU CE%sT # Portugal # -# From Rui Pedro Salgueiro <rps@inescca.inescc.pt> (1992-11-12): +# From Rui Pedro Salgueiro (1992-11-12): # Portugal has recently (September, 27) changed timezone # (from WET to MET or CET) to harmonize with EEC. # -# Martin Bruckmann <martin@ua.pt> (1996-02-29) reports via Peter Ilieve +# Martin Bruckmann (1996-02-29) reports via Peter Ilieve # that Portugal is reverting to 0:00 by not moving its clocks this spring. # The new Prime Minister was fed up with getting up in the dark in the winter. # @@ -1863,25 +1876,25 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct # Russia -# From Paul Eggert <eggert@twinsun.com> (1999-11-12): +# From Paul Eggert (1999-11-12): # Except for Moscow after 1919-07-01, I invented the time zone abbreviations. # Moscow time zone abbreviations after 1919-07-01, and Moscow rules after 1991, # are from Andrey A. Chernov. The rest is from Shanks, except we follow # Chernov's report that 1992 DST transitions were Sat 23:00, not Sun 02:00s. # -# From Stanislaw A. Kuzikowski <S.A.Kuz@iae.nsk.su> (1994-06-29): +# From Stanislaw A. Kuzikowski (1994-06-29): # But now it is some months since Novosibirsk is 3 hours ahead of Moscow! # I do not know why they have decided to make this change; # as far as I remember it was done exactly during winter->summer switching # so we (Novosibirsk) simply did not switch. # -# From Andrey A. Chernov <ache@nagual.ru> (1996-10-04): +# From Andrey A. Chernov (1996-10-04): # `MSK' and `MSD' were born and used initially on Moscow computers with # UNIX-like OSes by several developer groups (e.g. Demos group, Kiae group).... # The next step was the UUCP network, the Relcom predecessor # (used mainly for mail), and MSK/MSD was actively used there. # -# From Chris Carrier <72157.3334@CompuServe.COM> (1996-10-30): +# From Chris Carrier (1996-10-30): # According to a friend of mine who rode the Trans-Siberian Railroad from # Moscow to Irkutsk in 1995, public air and rail transport in Russia ... # still follows Moscow time, no matter where in Russia it is located. @@ -2069,7 +2082,7 @@ Zone Europe/Belgrade 1:22:00 - LMT 1884 1:00 - CET 1941 Apr 18 23:00 1:00 C-Eur CE%sT 1945 May 8 2:00s 1:00 1:00 CEST 1945 Sep 16 2:00s -# Metod Kozelj <metod.kozelj@rzs-hm.si> reports that the legal date of +# Metod Kozelj reports that the legal date of # transition to EU rules was 1982-11-27, for all of Yugoslavia at the time. # Shanks doesn't give as much detail, so go with Kozelj. 1:00 - CET 1982 Nov 27 @@ -2343,7 +2356,7 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880 3:00 Russia MSK/MSD 1990 3:00 - MSK 1990 Jul 1 2:00 2:00 - EET 1992 -# From Paul Eggert <eggert@twinsun.com> (1999-11-12): +# From Paul Eggert (1999-11-12): # The _Economist_ (1994-05-28, p 45) reports that central Crimea switched # from Kiev to Moscow time sometime after the January 1994 elections. # Shanks says ``date of change uncertain'', but implies that it happened @@ -2373,8 +2386,7 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880 # ... # Date: Wed, 28 Jan 87 16:56:27 -0100 -# From: seismo!mcvax!cgcha!wtho (Tom Hofmann) -# Message-Id: <8701281556.AA22174@cgcha.uucp> +# From: Tom Hofmann # ... # # ...the European time rules are...standardized since 1981, when @@ -2393,11 +2405,11 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880 # # Tom Hofmann, Scientific Computer Center, CIBA-GEIGY AG, # 4002 Basle, Switzerland -# UUCP: ...!mcvax!cernvax!cgcha!wtho +# ... # ... # Date: Wed, 4 Feb 87 22:35:22 +0100 -# From: seismo!mcvax!cwi.nl!dik (Dik T. Winter) +# From: Dik T. Winter # ... # # The information from Tom Hofmann is (as far as I know) not entirely correct. @@ -2423,8 +2435,7 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880 # # ... # dik t. winter, cwi, amsterdam, nederland -# INTERNET : dik@cwi.nl -# BITNET/EARN: dik@mcvax +# ... # From Bob Devine (1988-01-28): # ... diff --git a/timezone/iso3166.tab b/timezone/iso3166.tab index dad0d9d34a..07b43fc7c4 100644 --- a/timezone/iso3166.tab +++ b/timezone/iso3166.tab @@ -1,8 +1,8 @@ # ISO 3166 alpha-2 country codes # -# @(#)iso3166.tab 1.16 +# @(#)iso3166.tab 1.17 # -# From Paul Eggert <eggert@twinsun.com> (2004-06-14): +# From Paul Eggert (2004-06-14): # # This file contains a table with the following columns: # 1. ISO 3166-1 alpha-2 country code, current as of diff --git a/timezone/leapseconds b/timezone/leapseconds index 2966e760e3..a1078837d7 100644 --- a/timezone/leapseconds +++ b/timezone/leapseconds @@ -1,4 +1,4 @@ -# @(#)leapseconds 7.19 +# @(#)leapseconds 7.20 # Allowance for leapseconds added to each timezone file. @@ -43,8 +43,10 @@ Leap 1994 Jun 30 23:59:60 + S Leap 1995 Dec 31 23:59:60 + S Leap 1997 Jun 30 23:59:60 + S Leap 1998 Dec 31 23:59:60 + S +Leap 2005 Dec 31 23:59:60 + S # INTERNATIONAL EARTH ROTATION AND REFERENCE SYSTEMS SERVICE (IERS) +# # SERVICE INTERNATIONAL DE LA ROTATION TERRESTRE ET DES SYSTEMES DE REFERENCE # # SERVICE DE LA ROTATION TERRESTRE @@ -52,29 +54,39 @@ Leap 1998 Dec 31 23:59:60 + S # 61, Av. de l'Observatoire 75014 PARIS (France) # Tel. : 33 (0) 1 40 51 22 26 # FAX : 33 (0) 1 40 51 22 91 -# Internet : services.iers@obspm.fr -# -# Paris, 21 July 2004 -# +# ... +# http://hpiers.obspm.fr/eop-pc # -# Bulletin C 28 +# Paris, 4 July 2005 +# +# Bulletin C 30 # # To authorities responsible # for the measurement and # distribution of time # -# INFORMATION ON UTC - TAI # -# NO positive leap second will be introduced at the end of December 2004. +# UTC TIME STEP +# on the 1st of January 2006 +# +# A positive leap second will be introduced at the end of December 2005. +# The sequence of dates of the UTC second markers will be: +# +# 2005 December 31, 23h 59m 59s +# 2005 December 31, 23h 59m 60s +# 2006 January 1, 0h 0m 0s +# # The difference between UTC and the International Atomic Time TAI is: # -# from 1999 January 1, 0h UTC, until further notice : UTC-TAI = -32 s +# from 1999 January 1, 0h UTC, to 2006 January 1 0h UTC : UTC-TAI = - 32s +# from 2006 January 1, 0h UTC, until further notice : UTC-TAI = - 33s # -# Leap seconds can be introduced in UTC at the end of the months of December +# Leap seconds can be introduced in UtC at the end of the months of December # or June, depending on the evolution of UT1-TAI. Bulletin C is mailed every -# six months, either to announce a time step in UTC, or to confirm that there +# six months, either to announce a time step in UTC or to confirm that there # will be no time step at the next possible date. # # Daniel GAMBIS -# Director +# Head # Earth Orientation Center of IERS +# Observatoire de Paris, France diff --git a/timezone/northamerica b/timezone/northamerica index 2a58c95e66..40a2ce269d 100644 --- a/timezone/northamerica +++ b/timezone/northamerica @@ -1,11 +1,11 @@ -# @(#)northamerica 7.72 +# @(#)northamerica 7.79 # also includes Central America and the Caribbean # This data is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to # tz@elsie.nci.nih.gov for general use in the future). -# From Paul Eggert <eggert@twinsun.com> (1999-03-22): +# From Paul Eggert (1999-03-22): # A reliable and entertaining source about time zones is # Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997). @@ -24,12 +24,16 @@ # His proposal was adopted by the railroads on 1883-11-18 at 12:00, # and the most of the country soon followed suit. -# From Paul Eggert <eggert@twinsun.com> (1995-12-19): +# From Paul Eggert (2005-04-16): +# That 1883 transition occurred at 12:00 new time, not at 12:00 old time. +# See p 46 of David Prerau, Seize the daylight, Thunder's Mouth Press (2005). + +# From Paul Eggert (1995-12-19): # A good source for time zone historical data in the US is # Thomas G. Shanks, The American Atlas (5th edition), # San Diego: ACS Publications, Inc. (1991). # Make sure you have the errata sheet; the book is somewhat useless without it. -# It is the source for the US and Puerto Rico entries below. +# It is the source for most of the pre-1991 US and Puerto Rico entries below. # From Paul Eggert (2001-03-06): # Daylight Saving Time was first suggested as a joke by Benjamin Franklin @@ -48,7 +52,8 @@ # to push people into bed earlier, and get them up earlier, to make # them healthy, wealthy and wise in spite of themselves. # -# -- Robertson Davies, The Diary of Samuel Marchbanks (1947), XIX, Sunday +# -- Robertson Davies, The diary of Samuel Marchbanks, +# Clarke, Irwin (1947), XIX, Sunday # # For more about the first ten years of DST in the United States, see # Robert Garland's <a href="http://www.clpgh.org/exhibit/dst.html"> @@ -78,7 +83,7 @@ # Time' instead of the old familiar 'Eastern War Time.' Peace is wonderful." # </a> (August 1945) by way of confirmation. -# From Joseph Gallant <notquite@hotmail.com>, citing +# From Joseph Gallant citing # George H. Douglas, _The Early Days of Radio Broadcasting_ (1987): # At 7 P.M. (Eastern War Time) [on 1945-08-14], the networks were set # to switch to London for Attlee's address, but the American people @@ -105,21 +110,26 @@ # # He had scored a 20-second scoop on other broadcasters. +# From Arthur David Olson (2005-08-22): +# Paul has been careful to use the "US" rules only in those locations +# that are part of the United States; this reflects the real scope of +# U.S. government action. So even though the "US" rules have changed +# in the latest release, other countries won't be affected. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule US 1918 1919 - Mar lastSun 2:00 1:00 D Rule US 1918 1919 - Oct lastSun 2:00 0 S Rule US 1942 only - Feb 9 2:00 1:00 W # War Rule US 1945 only - Aug 14 23:00u 1:00 P # Peace Rule US 1945 only - Sep 30 2:00 0 S -Rule US 1967 max - Oct lastSun 2:00 0 S +Rule US 1967 2006 - Oct lastSun 2:00 0 S Rule US 1967 1973 - Apr lastSun 2:00 1:00 D Rule US 1974 only - Jan 6 2:00 1:00 D Rule US 1975 only - Feb 23 2:00 1:00 D Rule US 1976 1986 - Apr lastSun 2:00 1:00 D -Rule US 1987 max - Apr Sun>=1 2:00 1:00 D -# <a href="http://thomas.loc.gov/cgi-bin/bdquery/z?d106:h.r.00177:"> -# H.R.177 -# </a> (introduced 1999-01-06) would change April to March in the above rule. +Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D +Rule US 2007 max - Mar Sun>=8 2:00 1:00 D +Rule US 2007 max - Nov Sun>=1 2:00 0 S # From Bob Devine (1988-01-28): # ...Alaska (and Hawaii) had the timezone names changed in 1967. @@ -197,13 +207,32 @@ Rule US 1987 max - Apr Sun>=1 2:00 1:00 D # Public law 106-564 (2000-12-23) introduced the abbreviation # "Chamorro Standard Time" for time in Guam and the Northern Marianas. # See the file "australasia". - + +# From Arthur David Olson, 2005-08-09 +# The following was signed into law on 2005-08-08. +# +# H.R. 6, Energy Policy Act of 2005, SEC. 110. DAYLIGHT SAVINGS. +# (a) Amendment- Section 3(a) of the Uniform Time Act of 1966 (15 +# U.S.C. 260a(a)) is amended-- +# (1) by striking `first Sunday of April' and inserting `second +# Sunday of March'; and +# (2) by striking `last Sunday of October' and inserting `first +# Sunday of November'. +# (b) Effective Date- Subsection (a) shall take effect 1 year after the +# date of enactment of this Act or March 1, 2007, whichever is later. +# (c) Report to Congress- Not later than 9 months after the effective +# date stated in subsection (b), the Secretary shall report to Congress +# on the impact of this section on energy consumption in the United +# States. +# (d) Right to Revert- Congress retains the right to revert the +# Daylight Saving Time back to the 2005 time schedules once the +# Department study is complete. # US eastern time, represented by New York # Connecticut, Delaware, District of Columbia, most of Florida, -# Georgia, southeast Indiana (Clark, Dearborn, Floyd, Harrison, and -# Ohio counties), eastern Kentucky, Maine, Maryland, Massachusetts, +# Georgia, southeast Indiana (Dearborn and Ohio counties), eastern Kentucky +# (except America/Kentucky/Louisville below), Maine, Maryland, Massachusetts, # New Hampshire, New Jersey, New York, North Carolina, Ohio, # Pennsylvania, Rhode Island, South Carolina, eastern Tennessee, # Vermont, Virginia, West Virginia @@ -222,7 +251,7 @@ Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D Rule NYC 1921 1954 - Sep lastSun 2:00 0 S Rule NYC 1955 1966 - Oct lastSun 2:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:00 +Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:03:58 -5:00 US E%sT 1920 -5:00 NYC E%sT 1942 -5:00 US E%sT 1946 @@ -248,7 +277,7 @@ Rule Chicago 1922 1966 - Apr lastSun 2:00 1:00 D Rule Chicago 1922 1954 - Sep lastSun 2:00 0 S Rule Chicago 1955 1966 - Oct lastSun 2:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:00 +Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24 -6:00 US C%sT 1920 -6:00 Chicago C%sT 1936 Mar 1 2:00 -5:00 - EST 1936 Nov 15 2:00 @@ -257,7 +286,7 @@ Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:00 -6:00 Chicago C%sT 1967 -6:00 US C%sT # Oliver County, ND switched from mountain to central time on 1992-10-25. -Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:00 +Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48 -7:00 US M%sT 1992 Oct 25 02:00 -6:00 US C%sT @@ -276,7 +305,7 @@ Rule Denver 1921 only - May 22 2:00 0 S Rule Denver 1965 1966 - Apr lastSun 2:00 1:00 D Rule Denver 1965 1966 - Oct lastSun 2:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00 +Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04 -7:00 US M%sT 1920 -7:00 Denver M%sT 1942 -7:00 US M%sT 1946 @@ -296,7 +325,7 @@ Rule CA 1950 1966 - Apr lastSun 2:00 1:00 D Rule CA 1950 1961 - Sep lastSun 2:00 0 S Rule CA 1962 1966 - Oct lastSun 2:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:00 +Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02 -8:00 US P%sT 1946 -8:00 CA P%sT 1967 -8:00 US P%sT @@ -423,7 +452,7 @@ Zone Pacific/Honolulu -10:31:26 - LMT 1900 Jan 1 12:00 # Shanks says the 1944 experiment came to an end on 1944-03-17. # Go with the Arizona State Library instead. -Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 12:00 +Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 11:31:42 -7:00 US M%sT 1944 Jan 1 00:01 -7:00 - MST 1944 Apr 1 00:01 -7:00 US M%sT 1944 Oct 1 00:01 @@ -447,7 +476,7 @@ Link America/Denver America/Shiprock # switched four weeks late in 1974. # # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:00 +Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11 -8:00 US P%sT 1923 May 13 2:00 -7:00 US M%sT 1974 -7:00 - MST 1974 Feb 3 2:00 @@ -458,40 +487,44 @@ Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:00 # For a map of Indiana's time zone regions, see: # <a href="http://www.mccsc.edu/time.html"> # What time is it in Indiana? -# </a> (1999-04-06) +# </a> (2005-05-03) +# +# From Paul Eggert (2005-08-22): +# Since 1970, most of Indiana has been like America/Indiana/Indianapolis, +# with the following exceptions: +# +# - Gibson, Jasper, Lake, LaPorte, Newton, Porter, Posey, Spencer, +# Vandenburgh, and Warrick counties have been like America/Chicago. +# +# - Dearborn and Ohio counties have been like America/New_York. +# +# - Clark, Floyd, and Harrison counties have been like +# America/Kentucky/Louisville. +# +# - Crawford, Starke, and Switzerland counties have their own time zone +# histories as noted below. # -# From Paul Eggert (1995-12-19): -# Indiana generally observes either EST all year, or CST/CDT, -# but areas near Cincinnati and Louisville use those cities' timekeeping -# and in 1969 and 1970 the whole state observed daylight time; -# and there are other exceptions as noted below. # Shanks partitions Indiana into 345 regions, each with its own time history, # and writes ``Even newspaper reports present contradictory information.'' # Fortunately, most of the complexity occurred before our cutoff date of 1970. # -# Since 1970, EST-only Indiana has been like America/Indianapolis, -# with exceptions noted below for Crawford, Starke, and Switzerland counties. -# The parts of Indiana not listed below have been like America/Chicago, -# America/Louisville, or America/New_York. -# # Other than Indianapolis, the Indiana place names are so nondescript # that they would be ambiguous if we left them at the `America' level. # So we reluctantly put them all in a subdirectory `America/Indiana'. -# -# Most of EST-only Indiana last observed DST in 1970. -# From Paul Eggert (2001-03-06), following a tip by Markus Kuhn: -# Pam Belluck reported in the New York Times (2001-01-31) that the -# Indiana Legislature is considering a bill to adopt DST statewide. -# Her article mentioned Vevay, whose post office observes a different -# time zone from Danner's Hardware across the street. +# From Paul Eggert (2005-08-16): +# http://www.mccsc.edu/time.html says that Indiana will use DST starting 2006, +# and that many counties may switch either to Central or to Eastern time. +# The county-by-county decisions have not been made yet, so for now assume +# that no counties will switch: this assumption is most likely wrong, +# but it's the best we can do for now. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:00 +Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:15:22 -6:00 US C%sT 1920 -6:00 Indianapolis C%sT 1942 -6:00 US C%sT 1946 @@ -500,8 +533,8 @@ Zone America/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:00 -6:00 - CST 1958 Apr 27 2:00 -5:00 - EST 1969 -5:00 US E%sT 1971 - -5:00 - EST -Link America/Indianapolis America/Indiana/Indianapolis + -5:00 - EST 2006 + -5:00 US E%sT # # Part of Crawford County, Indiana, last observed DST in 1975, # and left its clocks alone in 1974. @@ -511,14 +544,15 @@ Rule Marengo 1951 only - Sep lastSun 2:00 0 S Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D Rule Marengo 1954 1960 - Sep lastSun 2:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 12:00 +Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 12:14:37 -6:00 US C%sT 1951 -6:00 Marengo C%sT 1961 Apr 30 2:00 -5:00 - EST 1969 -5:00 US E%sT 1974 Jan 6 2:00 -6:00 1:00 CDT 1974 Oct 27 2:00 -5:00 US E%sT 1976 - -5:00 - EST + -5:00 - EST 2006 + -5:00 US E%sT # # Starke County, Indiana # From Arthur David Olson (1991-10-28): @@ -532,23 +566,25 @@ Rule Starke 1955 1956 - Oct lastSun 2:00 0 S Rule Starke 1957 1958 - Sep lastSun 2:00 0 S Rule Starke 1959 1961 - Oct lastSun 2:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 12:00 +Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 12:13:30 -6:00 US C%sT 1947 -6:00 Starke C%sT 1962 Apr 29 2:00 -5:00 - EST 1963 Oct 27 2:00 -6:00 US C%sT 1991 Oct 27 2:00 - -5:00 - EST + -5:00 - EST 2006 + -5:00 US E%sT # # Switzerland County, Indiana, last observed DST in 1972. # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:00 +Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:19:44 -6:00 US C%sT 1954 Apr 25 2:00 -5:00 - EST 1969 -5:00 US E%sT 1973 - -5:00 - EST + -5:00 - EST 2006 + -5:00 US E%sT # Part of Kentucky left its clocks alone in 1974. -# This also includes a part of Indiana immediately adjacent to Louisville. +# This also includes Clark, Floyd, and Harrison counties in Indiana. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER Rule Louisville 1921 only - May 1 2:00 1:00 D Rule Louisville 1921 only - Sep 1 2:00 0 S @@ -558,7 +594,7 @@ Rule Louisville 1946 only - Jun 2 2:00 0 S Rule Louisville 1950 1955 - Sep lastSun 2:00 0 S Rule Louisville 1956 1960 - Oct lastSun 2:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Louisville -5:43:02 - LMT 1883 Nov 18 12:00 +Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58 -6:00 US C%sT 1921 -6:00 Louisville C%sT 1942 -6:00 US C%sT 1946 @@ -567,7 +603,6 @@ Zone America/Louisville -5:43:02 - LMT 1883 Nov 18 12:00 -5:00 US E%sT 1974 Jan 6 2:00 -6:00 1:00 CDT 1974 Oct 27 2:00 -5:00 US E%sT -Link America/Louisville America/Kentucky/Louisville # # Wayne, Clinton, and Russell Counties, Kentucky # @@ -595,7 +630,7 @@ Link America/Louisville America/Kentucky/Louisville # Federal Register 65, 160 (2000-08-17), page 50154-50158. # </a> # -Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:00 +Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:20:36 -6:00 US C%sT 1946 -6:00 - CST 1968 -6:00 US C%sT 2000 Oct 29 2:00 @@ -690,21 +725,10 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 # _Los Angeles Times_ (1998-11-10), A1, A10; it cites # Jimmy Skaggs, _The Great Guano Rush_ (1994). -# Old names, for S5 users - -# Link LINK-FROM LINK-TO -Link America/New_York EST5EDT -Link America/Chicago CST6CDT -Link America/Denver MST7MDT -Link America/Los_Angeles PST8PDT -Link America/Indianapolis EST -Link America/Phoenix MST -Link Pacific/Honolulu HST - ################################################################################ -# From Paul Eggert <eggert@twinsun.com> (1999-10-29): +# From Paul Eggert (1999-10-29): # A good source for time zone historical data outside the US is # Thomas G. Shanks, The International Atlas (5th edition), # San Diego: ACS Publications, Inc. (1999). @@ -732,7 +756,7 @@ Link Pacific/Honolulu HST # Canada -# From Alain LaBont<e'> <ALB@immedia.ca> (1994-11-14): +# From Alain LaBont<e'> (1994-11-14): # I post here the time zone abbreviations standardized in Canada # for both English and French in the CAN/CSA-Z234.4-89 standard.... # @@ -761,7 +785,7 @@ Link Pacific/Honolulu HST # T: de Terre-Neuve # Y: du Yukon Yukon # -# From Paul Eggert <eggert@twinsun.com> (1994-11-22): +# From Paul Eggert (1994-11-22): # Alas, this sort of thing must be handled by localization software. # Unless otherwise specified, the data for Canada are all from Shanks. @@ -1146,7 +1170,7 @@ Zone America/Winnipeg -6:28:36 - LMT 1887 Jul 16 # Matthews and Vincent (1998) write that Denare Beach and Creighton # are like Winnipeg, in violation of Saskatchewan law. -# From W. Jones <jones@skdad.usask.ca> (1992-11-06): +# From W. Jones (1992-11-06): # The. . .below is based on information I got from our law library, the # provincial archives, and the provincial Community Services department. # A precise history would require digging through newspaper archives, and @@ -1264,7 +1288,7 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884 # From Paul Eggert (1999-10-29): # Dawson switched to PST in 1973. Inuvik switched to MST in 1979. -# Mathew Englander <mathew@io.org> (1996-10-07) gives the following refs: +# Mathew Englander (1996-10-07) gives the following refs: # * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68, # c. 7 defines Yukon standard time as UTC-9. This is still valid; # see Interpretation Act, R.S.C. 1985, c. I-21, s. 35(1). @@ -1289,8 +1313,6 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884 # </a> (1999) reports that Pangnirtung operates on eastern time, # and that Coral Harbour does not observe DST. We don't know when # Pangnirtung switched to eastern time; we'll guess 1995. -# We'll ignore the claim about Coral Harbour for now, -# since we have no further info. # From Rives McDow (1999-11-08): # On October 31, when the rest of Nunavut went to Central time, @@ -1365,6 +1387,23 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884 # more. # [Also see <http://www.nunatsiaq.com/nunavut/nvt10309_06.html> (2001-03-09).] +# From Gwillim Law (2005-05-21): +# According to maps at +# http://inms-ienm.nrc-cnrc.gc.ca/images/time_services/TZ01SWE.jpg +# http://inms-ienm.nrc-cnrc.gc.ca/images/time_services/TZ01SSE.jpg +# (both dated 2003), and +# http://www.canadiangeographic.ca/Magazine/SO98/geomap.asp +# (from a 1998 Canadian Geographic article), the de facto and de jure time +# for Southampton Island (at the north end of Hudson Bay) is UTC-5 all year +# round. Using Google, it's easy to find other websites that confirm this. +# I wasn't able to find how far back this time regimen goes, but since it +# predates the creation of Nunavut, it probably goes back many years.... +# The Inuktitut name of Coral Harbour is Sallit, but it's rarely used. +# +# From Paul Eggert (2005-07-26): +# For lack of better information, assume that Southampton Island observed +# daylight saving only during wartime. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule NT_YK 1918 only - Apr 14 2:00 1:00 D Rule NT_YK 1918 only - Oct 27 2:00 0 S @@ -1388,6 +1427,9 @@ Zone America/Iqaluit -4:33:52 - LMT 1884 # Frobisher Bay before 1987 -5:00 NT_YK E%sT 1999 Oct 31 2:00 -6:00 Canada C%sT 2000 Oct 29 2:00 -5:00 Canada E%sT +Zone America/Coral_Harbour -5:32:40 - LMT 1884 + -5:00 NT_YK E%sT 1946 + -5:00 - EST Zone America/Rankin_Inlet -6:08:40 - LMT 1884 -6:00 NT_YK C%sT 2000 Oct 29 2:00 -5:00 - EST 2001 Apr 1 3:00 @@ -1427,7 +1469,7 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 # Shanks reports that Baja was at -8:00 in 1922/1923. # Shanks says the 1930 transition in Baja was 1930-11-16. # Shanks reports no DST during summer 1931. -# Shanks reports a transition at 1032-03-30 23:00, not 1932-04-01. +# Shanks reports a transition at 1932-03-30 23:00, not 1932-04-01. # Shanks does not report transitions for Baja in 1945 or 1948. # Shanks reports southern Mexico transitions on 1981-12-01, not 12-23. # Shanks says Quintana Roo switched to -6:00 on 1982-12-02, and to -5:00 @@ -1443,7 +1485,7 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 # Shanks gives 1942-04-01 instead of 1942-04-24, and omits the 1981 # and 1988 DST experiments. Go with spin.com.mx. -# From Alan Perry <alan.perry@eng.sun.com> (1996-02-15): +# From Alan Perry (1996-02-15): # A guy from our Mexico subsidiary finally found the Presidential Decree # outlining the timezone changes in Mexico. # @@ -1873,6 +1915,26 @@ Zone America/Guatemala -6:02:04 - LMT 1918 Oct 5 -6:00 Guat C%sT # Haiti +# From Gwillim Law (2005-04-15): +# Risto O. Nykanen wrote me that Haiti is now on DST. +# I searched for confirmation, and I found a +# <a href="http://www.haitianconsulate.org/time.doc"> press release +# on the Web page of the Haitian Consulate in Chicago (2005-03-31), +# </a>. Translated from French, it says: +# +# "The Prime Minister's Communication Office notifies the public in general +# and the press in particular that, following a decision of the Interior +# Ministry and the Territorial Collectivities [I suppose that means the +# provinces], Haiti will move to Eastern Daylight Time in the night from next +# Saturday the 2nd to Sunday the 3rd. +# +# "Consequently, the Prime Minister's Communication Office wishes to inform +# the population that the country's clocks will be set forward one hour +# starting at midnight. This provision will hold until the last Saturday in +# October 2005. +# +# "Port-au-Prince, March 31, 2005" + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Haiti 1983 only - May 8 0:00 1:00 D Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D @@ -1880,6 +1942,8 @@ Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S # Shanks says AT is 2:00, but IATA SSIM (1991/1997) says 1:00s. Go with IATA. Rule Haiti 1988 1997 - Apr Sun>=1 1:00s 1:00 D Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S +Rule Haiti 2005 only - Apr Sun>=1 0:00 1:00 D +Rule Haiti 2005 only - Oct lastSun 0:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Port-au-Prince -4:49:20 - LMT 1890 -4:49 - PPMT 1917 Jan 24 12:00 # P-a-P MT @@ -1931,11 +1995,39 @@ Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Olveston # Nicaragua seems to be back at -6:00 but I have not been able to find when # they changed from -5:00. # +# From Steffen Thorsen (2005-04-12): +# I've got reports from 8 different people that Nicaragua just started +# DST on Sunday 2005-04-10, in order to save energy because of +# expensive petroleum. The exact end date for DST is not yet +# announced, only "September" but some sites also say "mid-September". +# Some background information is available on the President's official site: +# http://www.presidencia.gob.ni/Presidencia/Files_index/Secretaria/Notas%20de%20Prensa/Presidente/2005/ABRIL/Gobierno-de-nicaragua-adelanta-hora-oficial-06abril.htm +# The Decree, no 23-2005 is available here: +# http://www.presidencia.gob.ni/buscador_gaceta/BD/DECRETOS/2005/Decreto%2023-2005%20Se%20adelanta%20en%20una%20hora%20en%20todo%20el%20territorio%20nacional%20apartir%20de%20las%2024horas%20del%2009%20de%20Abril.pdf +# +# From Paul Eggert (2005-05-01): +# The decree doesn't say anything about daylight saving, but for now let's +# assume that it is daylight saving and that they'll switch back on the +# 3rd Sunday in September. +# +# From Gwillim Law (2005-04-21): +# The Associated Press story on the time change, which can be found at +# http://www.lapalmainteractivo.com/guias/content/gen/ap/America_Latina/AMC_GEN_NICARAGUA_HORA.html +# and elsewhere, says (fifth paragraph, translated from Spanish): "The last +# time that a change of clocks was applied to save energy was in the year 2000 +# during the Arnoldo Aleman administration."... +# The northamerica file says that Nicaragua has been on UTC-6 continuously +# since December 1998. I wasn't able to find any details of Nicaraguan time +# changes in 2000. Perhaps a note could be added to the northamerica file, to +# the effect that we have indirect evidence that DST was observed in 2000. +# # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Nic 1979 1980 - Mar Sun>=16 0:00 1:00 D Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S Rule Nic 1992 only - Jan 1 4:00 1:00 D Rule Nic 1992 only - Sep 24 0:00 0 S +Rule Nic 2005 only - Apr 10 0:00 1:00 D +Rule Nic 2005 only - Sep 18 0:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Managua -5:45:08 - LMT 1890 -5:45:12 - MMT 1934 Jun 23 # Managua Mean Time? @@ -1943,7 +2035,7 @@ Zone America/Managua -5:45:08 - LMT 1890 -5:00 - EST 1975 Feb 16 -6:00 Nic C%sT 1993 Jan 1 4:00 -5:00 - EST 1998 Dec - -6:00 - CST + -6:00 Nic C%sT # Panama # Zone NAME GMTOFF RULES FORMAT [UNTIL] diff --git a/timezone/private.h b/timezone/private.h index 5de2f7dfe4..9a1ef22abb 100644 --- a/timezone/private.h +++ b/timezone/private.h @@ -25,6 +25,8 @@ static char privatehid[] = "@(#)private.h 7.55"; #endif /* !defined NOID */ #endif /* !defined lint */ +#define GRANDPARENTED "Local time zone must be set--see zic manual page" + /* ** Defaults for preprocessor symbols. ** You can override these in your C compiler options, e.g. `-DHAVE_ADJTIME=0'. @@ -91,13 +93,13 @@ static char privatehid[] = "@(#)private.h 7.55"; #include "time.h" #include "stdlib.h" -#if HAVE_GETTEXT - 0 +#if HAVE_GETTEXT #include "libintl.h" -#endif /* HAVE_GETTEXT - 0 */ +#endif /* HAVE_GETTEXT */ -#if HAVE_SYS_WAIT_H - 0 +#if HAVE_SYS_WAIT_H #include <sys/wait.h> /* for WIFEXITED and WEXITSTATUS */ -#endif /* HAVE_SYS_WAIT_H - 0 */ +#endif /* HAVE_SYS_WAIT_H */ #ifndef WIFEXITED #define WIFEXITED(status) (((status) & 0xff) == 0) @@ -106,20 +108,20 @@ static char privatehid[] = "@(#)private.h 7.55"; #define WEXITSTATUS(status) (((status) >> 8) & 0xff) #endif /* !defined WEXITSTATUS */ -#if HAVE_UNISTD_H - 0 +#if HAVE_UNISTD_H #include "unistd.h" /* for F_OK and R_OK */ -#endif /* HAVE_UNISTD_H - 0 */ +#endif /* HAVE_UNISTD_H */ -#if !(HAVE_UNISTD_H - 0) +#if !HAVE_UNISTD_H #ifndef F_OK #define F_OK 0 #endif /* !defined F_OK */ #ifndef R_OK #define R_OK 4 #endif /* !defined R_OK */ -#endif /* !(HAVE_UNISTD_H - 0) */ +#endif /* !HAVE_UNISTD_H */ -/* Unlike <ctype.h>'s isdigit, this also works if c < 0 | c > UCHAR_MAX. */ +/* Unlike <ctype.h>'s isdigit, this also works if c < 0 | c > UCHAR_MAX. */ #define is_digit(c) ((unsigned)(c) - '0' <= 9) /* @@ -216,7 +218,7 @@ char * imalloc P((int n)); void * irealloc P((void * pointer, int size)); void icfree P((char * pointer)); void ifree P((char * pointer)); -char * scheck P((const char *string, const char *format)); +char * scheck P((const char *string, char *format)); /* ** Finally, some convenience items. @@ -255,7 +257,8 @@ char * scheck P((const char *string, const char *format)); ** add one more for a minus sign if the type is signed. */ #define INT_STRLEN_MAXIMUM(type) \ - ((TYPE_BIT(type) - TYPE_SIGNED(type)) * 302 / 1000 + 1 + TYPE_SIGNED(type)) + ((TYPE_BIT(type) - TYPE_SIGNED(type)) * 302 / 1000 + \ + 1 + TYPE_SIGNED(type)) #endif /* !defined INT_STRLEN_MAXIMUM */ /* @@ -289,11 +292,11 @@ char * scheck P((const char *string, const char *format)); */ #ifndef _ -#if HAVE_GETTEXT - 0 +#if HAVE_GETTEXT #define _(msgid) gettext(msgid) -#else /* !(HAVE_GETTEXT - 0) */ +#else /* !HAVE_GETTEXT */ #define _(msgid) msgid -#endif /* !(HAVE_GETTEXT - 0) */ +#endif /* !HAVE_GETTEXT */ #endif /* !defined _ */ #ifndef TZ_DOMAIN diff --git a/timezone/scheck.c b/timezone/scheck.c index fd115f9c48..2dd9b35285 100644 --- a/timezone/scheck.c +++ b/timezone/scheck.c @@ -11,7 +11,7 @@ static char elsieid[] = "@(#)scheck.c 8.16"; char * scheck(string, format) const char * const string; -const char * const format; +char * const format; { register char * fbuf; register const char * fp; diff --git a/timezone/solar87 b/timezone/solar87 index 3f32347973..21ba2c2d64 100644 --- a/timezone/solar87 +++ b/timezone/solar87 @@ -1,4 +1,4 @@ -# @(#)solar87 7.3 +# @(#)solar87 7.4 # So much for footnotes about Saudi Arabia. # Apparent noon times below are for Riyadh; your mileage will vary. @@ -381,8 +381,8 @@ Rule sol87 1987 only - Dec 31 12:02:45s -0:02:45 - # Before and after 1987, we'll operate on local mean solar time. # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] -Zone Asia/Riyadh87 3:07:04 - ?? 1987 - 3:07:04 sol87 ?? 1988 - 3:07:04 - ?? +Zone Asia/Riyadh87 3:07:04 - zzz 1987 + 3:07:04 sol87 zzz 1988 + 3:07:04 - zzz # For backward compatibility... Link Asia/Riyadh87 Mideast/Riyadh87 diff --git a/timezone/solar88 b/timezone/solar88 index 41a64e5023..7e15f2b077 100644 --- a/timezone/solar88 +++ b/timezone/solar88 @@ -1,4 +1,4 @@ -# @(#)solar88 7.3 +# @(#)solar88 7.4 # Apparent noon times below are for Riyadh; they're a bit off for other places. # Times were computed using formulas in the U.S. Naval Observatory's @@ -381,8 +381,8 @@ Rule sol88 1988 only - Dec 31 12:03:05s -0:03:05 - # Before and after 1988, we'll operate on local mean solar time. # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] -Zone Asia/Riyadh88 3:07:04 - ?? 1988 - 3:07:04 sol88 ?? 1989 - 3:07:04 - ?? +Zone Asia/Riyadh88 3:07:04 - zzz 1988 + 3:07:04 sol88 zzz 1989 + 3:07:04 - zzz # For backward compatibility... Link Asia/Riyadh88 Mideast/Riyadh88 diff --git a/timezone/solar89 b/timezone/solar89 index a6d3d718d3..3c36b6a30d 100644 --- a/timezone/solar89 +++ b/timezone/solar89 @@ -1,4 +1,4 @@ -# @(#)solar89 7.4 +# @(#)solar89 7.5 # Apparent noon times below are for Riyadh; they're a bit off for other places. # Times were computed using a formula provided by the U. S. Naval Observatory: @@ -386,8 +386,8 @@ Rule sol89 1989 only - Dec 31 12:03:00s -0:03:00 - # Before and after 1989, we'll operate on local mean solar time. # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] -Zone Asia/Riyadh89 3:07:04 - ?? 1989 - 3:07:04 sol89 ?? 1990 - 3:07:04 - ?? +Zone Asia/Riyadh89 3:07:04 - zzz 1989 + 3:07:04 sol89 zzz 1990 + 3:07:04 - zzz # For backward compatibility... Link Asia/Riyadh89 Mideast/Riyadh89 diff --git a/timezone/southamerica b/timezone/southamerica index 6f3b081294..9bf068ba9e 100644 --- a/timezone/southamerica +++ b/timezone/southamerica @@ -1,10 +1,10 @@ -# @(#)southamerica 7.59 +# @(#)southamerica 7.61 # This data is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to # tz@elsie.nci.nih.gov for general use in the future). -# From Paul Eggert <eggert@twinsun.com> (1999-07-07): +# From Paul Eggert (1999-07-07): # A good source for time zone historical data outside the U.S. is # Thomas G. Shanks, The International Atlas (5th edition), # San Diego: ACS Publications, Inc. (1999). @@ -58,7 +58,7 @@ # From U. S. Naval Observatory (1988-01-199): # ARGENTINA 3 H BEHIND UTC -# From Hernan G. Otero <hernan@isoft.com.ar> (1995-06-26): +# From Hernan G. Otero (1995-06-26): # I am sending modifications to the Argentine time zone table... # AR was chosen because they are the ISO letters that represent Argentina. @@ -86,7 +86,7 @@ Rule Arg 1974 only - Jan 23 0:00 1:00 S Rule Arg 1974 only - May 1 0:00 0 - Rule Arg 1988 only - Dec 1 0:00 1:00 S # -# From Hernan G. Otero <hernan@isoft.com.ar> (1995-06-26): +# From Hernan G. Otero (1995-06-26): # These corrections were contributed by InterSoft Argentina S.A., # obtaining the data from the: # Talleres de Hidrografia Naval Argentina @@ -96,7 +96,7 @@ Rule Arg 1988 only - Dec 1 0:00 1:00 S Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 - Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 S # -# From Hernan G. Otero <hernan@isoft.com.ar> (1995-06-26): +# From Hernan G. Otero (1995-06-26): # From this moment on, the law that mandated the daylight saving # time corrections was derogated and no more modifications # to the time zones (for daylight saving) are now made. @@ -113,7 +113,7 @@ Rule Arg 2000 only - Mar Sun>=1 0:00 0 - # Argentina decided not to become one of the countries that go on or off DST. # So Buenos Aires should be -3 hours from GMT at all times. # -# From Fabian L. Arce Jofre <farcejofre@bigfoot.com> (2000-04-04): +# From Fabian L. Arce Jofre (2000-04-04): # The law that claimed DST for Argentina was derogated by President Fernando # de la Rua on March 2, 2000, because it would make people spend more energy # in the winter time, rather than less. The change took effect on March 3. @@ -293,7 +293,7 @@ Zone America/Argentina/Jujuy -4:21:12 - LMT 1894 Oct 31 -4:00 Arg AR%sT 2000 Mar 3 -3:00 - ART # -# Catamarca (CT) +# Catamarca (CT), Chubut (CH) Zone America/Argentina/Catamarca -4:23:08 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May -4:00 - ART 1930 Dec @@ -323,20 +323,6 @@ Zone America/Argentina/Mendoza -4:35:16 - LMT 1894 Oct 31 -4:00 - WART 2004 Sep 26 -3:00 - ART # -# Chubut (CH) -# The name "Comodoro Rivadavia" exceeds the 14-byte POSIX limit. -Zone America/Argentina/ComodRivadavia -4:30:00 - LMT 1894 Oct 31 - -4:16:48 - CMT 1920 May - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1991 Mar 3 - -4:00 - WART 1991 Oct 20 - -3:00 Arg AR%sT 1999 Oct 3 - -4:00 Arg AR%sT 2000 Mar 3 - -3:00 - ART 2004 Jun 1 - -4:00 - WART 2004 Jun 20 - -3:00 - ART -# # Santa Cruz (SC) Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May # Cordoba Mean Time @@ -374,7 +360,7 @@ Zone America/La_Paz -4:32:36 - LMT 1890 # Brazil -# From Paul Eggert <eggert@twinsun.com> (1993-11-18): +# From Paul Eggert (1993-11-18): # The mayor of Rio recently attempted to change the time zone rules # just in his city, in order to leave more summer time for the tourist trade. # The rule change lasted only part of the day; @@ -532,7 +518,7 @@ Rule Brazil 1996 only - Feb 11 0:00 0 - # adopted by same states, minus AL, SE. Rule Brazil 1996 only - Oct 6 0:00 1:00 S Rule Brazil 1997 only - Feb 16 0:00 0 - -# From Daniel C. Sobral <dcs@gns.com.br> (1998-02-12): +# From Daniel C. Sobral (1998-02-12): # In 1997, the DS began on October 6. The stated reason was that # because international television networks ignored Brazil's policy on DS, # they bought the wrong times on satellite for coverage of Pope's visit. @@ -1010,7 +996,7 @@ Zone America/Port_of_Spain -4:06:04 - LMT 1912 Mar 2 -4:00 - AST # Uruguay -# From Paul Eggert <eggert@twinsun.com> (1993-11-18): +# From Paul Eggert (1993-11-18): # Uruguay wins the prize for the strangest peacetime manipulation of the rules. # From Shanks: # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S diff --git a/timezone/test-tz.c b/timezone/test-tz.c index 642b45a0ed..55613654c7 100644 --- a/timezone/test-tz.c +++ b/timezone/test-tz.c @@ -7,7 +7,7 @@ struct { const char * env; time_t expected; } tests[] = { - {"MST", 832935315}, + {"MST", 832910115}, {"", 832910115}, {":UTC", 832910115}, {"UTC", 832910115}, diff --git a/timezone/tst-timezone.c b/timezone/tst-timezone.c index 127956de29..4c879163cf 100644 --- a/timezone/tst-timezone.c +++ b/timezone/tst-timezone.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999, 2000, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger <aj@suse.de>, 1998. @@ -42,9 +42,9 @@ static const struct test_times tests[] = { "Australia/Melbourne", 1, -36000, { "EST", "EST" }}, { "America/Sao_Paulo", 1, 10800, {"BRT", "BRST" }}, { "America/Chicago", 1, 21600, {"CST", "CDT" }}, - { "America/Indianapolis", 1, 18000, {"EST", "EDT" }}, + { "America/Indiana/Indianapolis", 1, 18000, {"EST", "EDT" }}, { "America/Los_Angeles", 1, 28800, {"PST", "PDT" }}, - { "Asia/Tokyo", 0, -32400, {"JST", "JST" }}, + { "Asia/Tokyo", 1, -32400, {"JST", "JDT" }}, { "Pacific/Auckland", 1, -43200, { "NZST", "NZDT" }}, { NULL, 0, 0 } }; diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh index be589240d1..f6e28bfdab 100644 --- a/timezone/tzselect.ksh +++ b/timezone/tzselect.ksh @@ -1,11 +1,11 @@ #! @KSH@ -# '@(#)tzselect.ksh 1.7' +# '@(#)tzselect.ksh 1.8' # Ask the user about the time zone, and output the resulting TZ value to stdout. # Interact with the user via stderr and stdin. -# Contributed by Paul Eggert <eggert@twinsun.com>. +# Contributed by Paul Eggert. # Porting notes: # diff --git a/timezone/yearistype b/timezone/yearistype index 8d796f1f21..d3a248032e 100755 --- a/timezone/yearistype +++ b/timezone/yearistype @@ -1,6 +1,6 @@ #! /bin/sh -: '@(#)yearistype.sh 7.7' +: '@(#)yearistype.sh 7.8' case $#-$1 in 2-|2-0*|2-*[!0-9]*) @@ -9,7 +9,7 @@ case $#-$1 in esac case $#-$2 in - 2-even) + 2-even) case $1 in *[24680]) exit 0 ;; *) exit 1 ;; @@ -19,7 +19,7 @@ case $#-$2 in *[02468][048]|*[13579][26]) exit 1 ;; *) exit 0 ;; esac ;; - 2-odd) + 2-odd) case $1 in *[13579]) exit 0 ;; *) exit 1 ;; @@ -29,7 +29,7 @@ case $#-$2 in *[02468][048]|*[13579][26]) exit 0 ;; *) exit 1 ;; esac ;; - 2-*) + 2-*) echo "$0: wild type - $2" >&2 ;; esac diff --git a/timezone/zdump.c b/timezone/zdump.c index 2fcce38c06..d767d75fb7 100644 --- a/timezone/zdump.c +++ b/timezone/zdump.c @@ -1,4 +1,4 @@ -static char elsieid[] = "@(#)zdump.c 7.64"; +static char elsieid[] = "@(#)zdump.c 7.66"; /* ** This code has been made independent of the rest of the time @@ -12,6 +12,7 @@ static char elsieid[] = "@(#)zdump.c 7.64"; #include "time.h" /* for struct tm */ #include "stdlib.h" /* for exit, malloc, atoi */ #include "float.h" /* for FLT_MAX and DBL_MAX */ +#include <ctype.h> /* for isascii, isalpha, isdigit */ #ifndef ZDUMP_LO_YEAR #define ZDUMP_LO_YEAR (-500) @@ -144,8 +145,10 @@ static time_t absolute_min_time; static time_t absolute_max_time; static size_t longest; static char * progname; +static int warned; static char * abbr P((struct tm * tmp)); +static void abbrok P((const char * abbr, const char * zone)); static long delta P((struct tm * newp, struct tm * oldp)); static void dumptime P((const struct tm * tmp)); static time_t hunt P((char * name, time_t lot, time_t hit)); @@ -191,6 +194,43 @@ time_t * tp; } #endif /* !defined TYPECHECK */ +static void +abbrok(abbr, zone) +const char * const abbr; +const char * const zone; +{ + register const char * cp; + register char * wp; + + if (warned) + return; + cp = abbr; + wp = NULL; + while (isascii(*cp) && isalpha(*cp)) + ++cp; + if (cp - abbr == 0) + wp = _("lacks alphabetic at start"); + if (cp - abbr < 3) + wp = _("has fewer than 3 alphabetics"); + if (cp - abbr > 6) + wp = _("has more than 6 alphabetics"); + if (wp == NULL && (*cp == '+' || *cp == '-')) { + ++cp; + if (isascii(*cp) && isdigit(*cp)) + if (*cp++ == '1' && *cp >= '0' && *cp <= '4') + ++cp; + } + if (*cp != '\0') + wp = _("differs from POSIX standard"); + if (wp == NULL) + return; + (void) fflush(stdout); + (void) fprintf(stderr, + "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n", + progname, zone, abbr, wp); + warned = TRUE; +} + int main(argc, argv) int argc; @@ -216,7 +256,7 @@ char * argv[]; INITIALIZE(cutlotime); INITIALIZE(cuthitime); #if HAVE_GETTEXT - (void) setlocale(LC_MESSAGES, ""); + (void) setlocale(LC_ALL, ""); #ifdef TZ_DOMAINDIR (void) bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR); #endif /* defined TEXTDOMAINDIR */ @@ -297,6 +337,7 @@ _("%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"), show(argv[i], now, FALSE); continue; } + warned = FALSE; t = absolute_min_time; show(argv[i], t, TRUE); t += SECSPERHOUR * HOURSPERDAY; @@ -527,6 +568,8 @@ int v; } } (void) printf("\n"); + if (tmp != NULL && *abbr(tmp) != '\0') + abbrok(abbr(tmp), zone); } static char * diff --git a/timezone/zic.c b/timezone/zic.c index fb86fc69d2..57dc5311d5 100644 --- a/timezone/zic.c +++ b/timezone/zic.c @@ -1,4 +1,4 @@ -static char elsieid[] = "@(#)zic.c 7.122"; +static char elsieid[] = "@(#)zic.c 7.124"; /* ** Regardless of the type of time_t, we do our work using this type. @@ -10,6 +10,10 @@ typedef int zic_t; #include "locale.h" #include "tzfile.h" +#ifndef ZIC_MAX_ABBR_LEN_WO_WARN +#define ZIC_MAX_ABBR_LEN_WO_WARN 6 +#endif /* !defined ZIC_MAX_ABBR_LEN_WO_WARN */ + #if HAVE_SYS_STAT_H #include "sys/stat.h" #endif @@ -475,8 +479,7 @@ char * argv[]; (void) umask(umask(S_IWGRP | S_IWOTH) | (S_IWGRP | S_IWOTH)); #endif /* defined unix */ #if HAVE_GETTEXT - (void) setlocale(LC_CTYPE, ""); - (void) setlocale(LC_MESSAGES, ""); + (void) setlocale(LC_ALL, ""); #ifdef TZ_DOMAINDIR (void) bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR); #endif /* defined TEXTDOMAINDIR */ @@ -2197,6 +2200,41 @@ const char * const string; { register int i; + if (strcmp(string, GRANDPARENTED) != 0) { + register const char * cp; + register char * wp; + + /* + ** Want one to ZIC_MAX_ABBR_LEN_WO_WARN alphabetics + ** optionally followed by a + or - and a number from 1 to 14. + */ + cp = string; + wp = NULL; + while (isascii(*cp) && isalpha(*cp)) + ++cp; + if (cp - string == 0) +wp = _("time zone abbreviation lacks alphabetic at start"); + if (noise && cp - string > 3) +wp = _("time zone abbreviation has more than 3 alphabetics"); + if (cp - string > ZIC_MAX_ABBR_LEN_WO_WARN) +wp = _("time zone abbreviation has too many alphabetics"); + if (wp == NULL && (*cp == '+' || *cp == '-')) { + ++cp; + if (isascii(*cp) && isdigit(*cp)) + if (*cp++ == '1' && *cp >= '0' && *cp <= '4') + ++cp; + } + if (*cp != '\0') +wp = _("time zone abbreviation differs from POSIX standard"); + if (wp != NULL) { + wp = ecpyalloc(wp); + wp = ecatalloc(wp, " ("); + wp = ecatalloc(wp, string); + wp = ecatalloc(wp, ")"); + warning(wp); + ifree(wp); + } + } i = strlen(string) + 1; if (charcnt + i > TZ_MAX_CHARS) { error(_("too many, or too long, time zone abbreviations")); diff --git a/timezone/zone.tab b/timezone/zone.tab index e3c8e39e1e..d9b278b0ec 100644 --- a/timezone/zone.tab +++ b/timezone/zone.tab @@ -1,8 +1,8 @@ -# @(#)zone.tab 1.30 +# @(#)zone.tab 1.32 # # TZ zone descriptions # -# From Paul Eggert <eggert@twinsun.com> (1996-08-05): +# From Paul Eggert (1996-08-05): # # This file contains a table with the following columns: # 1. ISO 3166 2-character country code. See the file `iso3166.tab'. @@ -45,17 +45,17 @@ AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF) AR -3124-06411 America/Argentina/Cordoba most locations (CB, CC, CN, ER, FM, LP, MN, NQ, RN, SA, SE, SF, SL) AR -2411-06518 America/Argentina/Jujuy Jujuy (JY) AR -3124-06411 America/Argentina/Tucuman Tucuman (TM) -AR -2828-06547 America/Argentina/Catamarca Catamarca (CT) +AR -2828-06547 America/Argentina/Catamarca Catamarca (CT), Chubut (CH) AR -2926-06651 America/Argentina/La_Rioja La Rioja (LR) AR -3132-06831 America/Argentina/San_Juan San Juan (SJ) AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ) -AR -4552-06730 America/Argentina/ComodRivadavia Chubut (CH) AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC) AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF) AS -1416-17042 Pacific/Pago_Pago AT +4813+01620 Europe/Vienna AU -3133+15905 Australia/Lord_Howe Lord Howe Island -AU -4253+14719 Australia/Hobart Tasmania +AU -4253+14719 Australia/Hobart Tasmania - most locations +AU -3956+14352 Australia/Currie Tasmania - King Island AU -3749+14458 Australia/Melbourne Victoria AU -3352+15113 Australia/Sydney New South Wales - most locations AU -3157+14127 Australia/Broken_Hill New South Wales - Yancowinna @@ -107,9 +107,10 @@ CA +4531-07334 America/Montreal Eastern Time - Quebec - most locations CA +4339-07923 America/Toronto Eastern Time - Ontario - most locations CA +4901-08816 America/Nipigon Eastern Time - Ontario & Quebec - places that did not observe DST 1967-1973 CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario -CA +6608-06544 America/Pangnirtung Eastern Standard Time - Pangnirtung, Nunavut -CA +6344-06828 America/Iqaluit Eastern Standard Time - east Nunavut -CA +6245-09210 America/Rankin_Inlet Eastern Standard Time - central Nunavut +CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut +CA +6344-06828 America/Iqaluit Eastern Time - east Nunavut +CA +6408-08310 America/Coral_Harbour Eastern Standard Time - Southampton Island +CA +6245-09210 America/Rankin_Inlet Central Time - central Nunavut CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario CA +4843-09429 America/Rainy_River Central Time - Rainy River & Fort Frances, Ontario CA +6903-10505 America/Cambridge_Bay Central Time - west Nunavut @@ -165,15 +166,13 @@ ET +0902+03842 Africa/Addis_Ababa FI +6010+02458 Europe/Helsinki FJ -1808+17825 Pacific/Fiji FK -5142-05751 Atlantic/Stanley -FM +0931+13808 Pacific/Yap Yap -FM +0725+15147 Pacific/Truk Truk (Chuuk) +FM +0725+15147 Pacific/Truk Truk (Chuuk) and Yap FM +0658+15813 Pacific/Ponape Ponape (Pohnpei) FM +0519+16259 Pacific/Kosrae Kosrae FO +6201-00646 Atlantic/Faeroe FR +4852+00220 Europe/Paris GA +0023+00927 Africa/Libreville -GB +512830-0001845 Europe/London Great Britain -GB +5435-00555 Europe/Belfast Northern Ireland +GB +512830-0001845 Europe/London GD +1203-06145 America/Grenada GE +4143+04449 Asia/Tbilisi GF +0456-05220 America/Cayenne @@ -248,8 +247,7 @@ MG -1855+04731 Indian/Antananarivo MH +0709+17112 Pacific/Majuro most locations MH +0905+16720 Pacific/Kwajalein Kwajalein MK +4159+02126 Europe/Skopje -ML +1239-00800 Africa/Bamako southwest Mali -ML +1446-00301 Africa/Timbuktu northeast Mali +ML +1239-00800 Africa/Bamako MM +1647+09610 Asia/Rangoon MN +4755+10653 Asia/Ulaanbaatar most locations MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan @@ -370,9 +368,9 @@ UM +2813-17722 Pacific/Midway Midway Islands UM +1917+16637 Pacific/Wake Wake Island US +404251-0740023 America/New_York Eastern Time US +421953-0830245 America/Detroit Eastern Time - Michigan - most locations -US +381515-0854534 America/Louisville Eastern Time - Kentucky - Louisville area +US +381515-0854534 America/Kentucky/Louisville Eastern Time - Kentucky - Louisville area US +364947-0845057 America/Kentucky/Monticello Eastern Time - Kentucky - Wayne County -US +394606-0860929 America/Indianapolis Eastern Standard Time - Indiana - most locations +US +394606-0860929 America/Indiana/Indianapolis Eastern Standard Time - Indiana - most locations US +382232-0862041 America/Indiana/Marengo Eastern Standard Time - Indiana - Crawford County US +411745-0863730 America/Indiana/Knox Eastern Standard Time - Indiana - Starke County US +384452-0850402 America/Indiana/Vevay Eastern Standard Time - Indiana - Switzerland County diff --git a/wcsmbs/wcscoll.c b/wcsmbs/wcscoll.c index ed6db06e4e..ae3d48c623 100644 --- a/wcsmbs/wcscoll.c +++ b/wcsmbs/wcscoll.c @@ -22,12 +22,11 @@ #define STRING_TYPE wchar_t #define USTRING_TYPE wint_t -#define STRCOLL __wcscoll +#define STRCOLL wcscoll #define STRCOLL_L __wcscoll_l #include "../string/strcoll.c" #ifndef USE_IN_EXTENDED_LOCALE_MODEL -weak_alias (__wcscoll, wcscoll) libc_hidden_weak (wcscoll) #endif |