[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r1816 - in /fsf/trunk/libc: ./ nptl/ nptl/sysdeps/unix/sysv/linux/powerpc/ nscd/ scripts/ sysdeps/powerpc/bits/ sysdeps/powe...



Author: eglibc
Date: Tue Mar 27 00:01:25 2007
New Revision: 1816

Log:
Import glibc-mainline for 2007-03-27

Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/config.h.in
    fsf/trunk/libc/nptl/ChangeLog
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
    fsf/trunk/libc/nscd/selinux.c
    fsf/trunk/libc/nscd/selinux.h
    fsf/trunk/libc/scripts/check-local-headers.sh
    fsf/trunk/libc/sysdeps/powerpc/bits/atomic.h
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/bits/atomic.h
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/dl-machine.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/memset.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/bits/atomic.h
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/memset.S
    fsf/trunk/libc/sysdeps/unix/sysv/linux/Makefile
    fsf/trunk/libc/sysdeps/unix/sysv/linux/Versions
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c
    fsf/trunk/libc/timezone/africa
    fsf/trunk/libc/timezone/asia
    fsf/trunk/libc/timezone/australasia
    fsf/trunk/libc/timezone/backward
    fsf/trunk/libc/timezone/europe
    fsf/trunk/libc/timezone/iso3166.tab
    fsf/trunk/libc/timezone/leapseconds
    fsf/trunk/libc/timezone/northamerica
    fsf/trunk/libc/timezone/private.h
    fsf/trunk/libc/timezone/southamerica
    fsf/trunk/libc/timezone/zdump.c
    fsf/trunk/libc/timezone/zic.c
    fsf/trunk/libc/timezone/zone.tab

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Tue Mar 27 00:01:25 2007
@@ -1,3 +1,85 @@
+2007-03-23  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* scripts/check-local-headers.sh: Filter out sys/capability.h.
+
+2007-03-22  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* config.h.in (HAVE_LIBCAP): Add.
+	* nscd/selinux.h: Include sys/capability.h rather than non-existent
+	sys/capabilities.h.
+	* nscd/selinux.c (preserve_capabilities): Use cap_free instead of
+	free_caps.  Cast away const from 4th cap_set_flag argument.
+
+2007-03-26  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/Versions: Move sync_file_range to
+	GLIBC_2.6.
+	* sysdeps/unix/sysv/linux/Makefile [subdir=io] (sysdep_routines):
+	Add sync_file_range.
+	Reported by Atsushi Nemoto <anemo@xxxxxxxxxxxxx>.
+
+2007-03-19  Steven Munroe  <sjmunroe@xxxxxxxxxx>
+
+	* sysdeps/powerpc/bits/atomic.h
+	[!MUTEX_HINT_ACQ]: Define MUTEX_HINT_ACQ.
+	[!MUTEX_HINT_REL]: Define MUTEX_HINT_REL.
+	(__arch_compare_and_exchange_val_32_acq): Add MUTEX_HINT_ACQ to lwarx.
+	(__arch_compare_and_exchange_val_32_rel): Add MUTEX_HINT_REL to lwarx.
+	(__arch_atomic_exchange_val_32_acq): Add MUTEX_HINT_ACQ to lwarx.
+	(__arch_atomic_exchange_rel_32_rel): Add MUTEX_HINT_REL to lwarx.
+	* sysdeps/powerpc/powerpc32/bits/atomic.h [_ARCH_PWR6 || _ARCH_PWR6X]:
+	Define MUTEX_HINT_ACQ as ",1" and MUTEX_HINT_REL as ",0".
+	(__arch_compare_and_exchange_bool_32_acq): Add MUTEX_HINT_ACQ to lwarx.
+	(__arch_compare_and_exchange_bool_32_rel): Add MUTEX_HINT_REL to lwarx.
+	* sysdeps/powerpc/powerpc64/bits/atomic.h [_ARCH_PWR6 || _ARCH_PWR6D]:
+	Define MUTEX_HINT_ACQ as ",1" and MUTEX_HINT_REL as ",0".
+	(__arch_compare_and_exchange_bool_32_acq): Add MUTEX_HINT_ACQ to lwarx.
+	(__arch_compare_and_exchange_bool_32_rel): Add MUTEX_HINT_REL to lwarx.
+	(__arch_compare_and_exchange_bool_64_acq): Add MUTEX_HINT_ACQ to lwarx.
+	(__arch_compare_and_exchange_bool_64_rel): Add MUTEX_HINT_REL to lwarx.
+	(__arch_compare_and_exchange_val_64_acq): Add MUTEX_HINT_ACQ to lwarx.
+	(__arch_compare_and_exchange_val_64_rel): Add MUTEX_HINT_REL to lwarx.
+	(__arch_atomic_exchange_val_64_acq): Add MUTEX_HINT_ACQ to lwarx.
+	(__arch_atomic_exchange_rel_64_rel): Add MUTEX_HINT_REL to lwarx.
+
+2007-03-20  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/powerpc/libc-start.c
+	(__cache_line_size): Define the variable here.  Add
+	attribute_hidden, remove weak_extern.
+	(__libc_start_main): Set __cache_line_size
+	unconditionally.
+	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
+	(__cache_line_size): Define the variable here.  Add
+	attribute_hidden, remove weak_extern.
+	(DL_PLATFORM_AUXV): Set __cache_line_size
+	unconditionally.
+	* sysdeps/powerpc/powerpc32/dl-machine.c (__cache_line_size): Remove
+	weak_extern, add attribute_hidden.
+	(__elf_machine_runtime_setup): Assume __cache_line_size is always
+	defined in ld.so.
+	* sysdeps/powerpc/powerpc32/memset.S (__cache_line_size): Remove
+	definition.
+	* sysdeps/powerpc/powerpc64/memset.S (__cache_line_size): Likewise.
+
+2007-03-26  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	[BZ #4276]
+	* timezone/africa: Update from tzdata2007d.
+	* timezone/asia: Likewise.
+	* timezone/australasia: Likewise.
+	* timezone/backward: Likewise.
+	* timezone/europe: Likewise.
+	* timezone/iso3166.tab: Likewise.
+	* timezone/leapseconds: Likewise.
+	* timezone/northamerica: Likewise.
+	* timezone/southamerica: Likewise.
+	* timezone/zone.tab: Likewise.
+
+	* timezone/private.h: Update from tzcode2007d.
+	* timezone/zdump.c: Likewise.
+	* timezone/zic.c: Likewise.
+
 2007-03-21  Jakub Jelinek  <jakub@xxxxxxxxxx>
 
 	* nis/nis_call.c: Include bits/libc-lock.h, sys/stat.h, unistd.h.

Modified: fsf/trunk/libc/config.h.in
==============================================================================
--- fsf/trunk/libc/config.h.in (original)
+++ fsf/trunk/libc/config.h.in Tue Mar 27 00:01:25 2007
@@ -18,6 +18,9 @@
 
 /* Defined if building with SELinux support & audit libs are detected. */
 #undef	HAVE_LIBAUDIT
+
+/* Defined if building with SELinux support & libcap libs are detected.  */
+#undef  HAVE_LIBCAP
 
 /* Define if using XCOFF. Set by --with-xcoff.  */
 #undef	HAVE_XCOFF

Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Tue Mar 27 00:01:25 2007
@@ -1,3 +1,8 @@
+2007-03-19  Steven Munroe  <sjmunroe@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
+	(__lll_robust_trylock):	Add MUTEX_HINT_ACQ to lwarx instruction.
+
 2007-03-16  Jakub Jelinek  <jakub@xxxxxxxxxx>
 
 	* sysdeps/pthread/bits/libc-lock.h: Use __extern_inline and

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h Tue Mar 27 00:01:25 2007
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Mackerras <paulus@xxxxxxxxxx>, 2003.
 
@@ -24,7 +24,6 @@
 #include <sys/param.h>
 #include <bits/pthreadtypes.h>
 #include <atomic.h>
-
 
 #ifndef __NR_futex
 # define __NR_futex		221
@@ -133,7 +132,7 @@
 /* Set *futex to ID if it is 0, atomically.  Returns the old value */
 #define __lll_robust_trylock(futex, id) \
   ({ int __val;								      \
-     __asm __volatile ("1:	lwarx	%0,0,%2\n"			      \
+     __asm __volatile ("1:	lwarx	%0,0,%2" MUTEX_HINT_ACQ "\n"	      \
 		       "	cmpwi	0,%0,0\n"			      \
 		       "	bne	2f\n"				      \
 		       "	stwcx.	%3,0,%2\n"			      \

Modified: fsf/trunk/libc/nscd/selinux.c
==============================================================================
--- fsf/trunk/libc/nscd/selinux.c (original)
+++ fsf/trunk/libc/nscd/selinux.c Tue Mar 27 00:01:25 2007
@@ -187,18 +187,22 @@
   if (tmp_caps == NULL || new_caps == NULL)
     {
       if (tmp_caps != NULL)
-	free_caps (tmp_caps);
+	cap_free (tmp_caps);
 
       dbg_log (_("Failed to initialize drop of capabilities"));
       error (EXIT_FAILURE, 0, _("cap_init failed"));
     }
 
   /* There is no reason why these should not work.  */
-  cap_set_flag (new_caps, CAP_PERMITTED, nnew_cap_list, new_cap_list, CAP_SET);
-  cap_set_flag (new_caps, CAP_EFFECTIVE, nnew_cap_list, new_cap_list, CAP_SET);
-
-  cap_set_flag (tmp_caps, CAP_PERMITTED, ntmp_cap_list, tmp_cap_list, CAP_SET);
-  cap_set_flag (tmp_caps, CAP_EFFECTIVE, ntmp_cap_list, tmp_cap_list, CAP_SET);
+  cap_set_flag (new_caps, CAP_PERMITTED, nnew_cap_list,
+		(cap_value_t *) new_cap_list, CAP_SET);
+  cap_set_flag (new_caps, CAP_EFFECTIVE, nnew_cap_list,
+		(cap_value_t *) new_cap_list, CAP_SET);
+
+  cap_set_flag (tmp_caps, CAP_PERMITTED, ntmp_cap_list,
+		(cap_value_t *) tmp_cap_list, CAP_SET);
+  cap_set_flag (tmp_caps, CAP_EFFECTIVE, ntmp_cap_list,
+		(cap_value_t *) tmp_cap_list, CAP_SET);
 
   int res = cap_set_proc (tmp_caps);
 

Modified: fsf/trunk/libc/nscd/selinux.h
==============================================================================
--- fsf/trunk/libc/nscd/selinux.h (original)
+++ fsf/trunk/libc/nscd/selinux.h Tue Mar 27 00:01:25 2007
@@ -1,5 +1,5 @@
 /* Header for nscd SELinux access controls.
-   Copyright (C) 2004, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Matthew Rickard <mjricka@xxxxxxxxxxxxxx>, 2004.
 
@@ -23,7 +23,7 @@
 
 #include "nscd.h"
 #ifdef HAVE_LIBCAP
-# include <sys/capabilities.h>
+# include <sys/capability.h>
 #endif
 
 #ifdef HAVE_SELINUX

Modified: fsf/trunk/libc/scripts/check-local-headers.sh
==============================================================================
--- fsf/trunk/libc/scripts/check-local-headers.sh (original)
+++ fsf/trunk/libc/scripts/check-local-headers.sh Tue Mar 27 00:01:25 2007
@@ -30,6 +30,7 @@
 fgrep -v "$includedir/asm" |
 fgrep -v "$includedir/linux" |
 fgrep -v "$includedir/selinux" |
+fgrep -v "$includedir/sys/capability.h" |
 fgrep -v "$includedir/gd"; then
   # If we found a match something is wrong.
   exit 1

Modified: fsf/trunk/libc/sysdeps/powerpc/bits/atomic.h
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/bits/atomic.h (original)
+++ fsf/trunk/libc/sysdeps/powerpc/bits/atomic.h Tue Mar 27 00:01:25 2007
@@ -70,6 +70,13 @@
 # endif
 #endif
 
+#ifndef MUTEX_HINT_ACQ
+# define MUTEX_HINT_ACQ
+#endif
+#ifndef MUTEX_HINT_REL
+# define MUTEX_HINT_REL
+#endif
+
 #define atomic_full_barrier()	__asm ("sync" ::: "memory")
 #define atomic_write_barrier()	__asm ("eieio" ::: "memory")
 
@@ -78,7 +85,7 @@
       __typeof (*(mem)) __tmp;						      \
       __typeof (mem)  __memp = (mem);					      \
       __asm __volatile (						      \
-		        "1:	lwarx	%0,0,%1\n"			      \
+		        "1:	lwarx	%0,0,%1" MUTEX_HINT_ACQ "\n"	      \
 		        "	cmpw	%0,%2\n"			      \
 		        "	bne	2f\n"				      \
 		        "	stwcx.	%3,0,%1\n"			      \
@@ -95,7 +102,7 @@
       __typeof (*(mem)) __tmp;						      \
       __typeof (mem)  __memp = (mem);					      \
       __asm __volatile (__ARCH_REL_INSTR "\n"				      \
-		        "1:	lwarx	%0,0,%1\n"			      \
+		        "1:	lwarx	%0,0,%1" MUTEX_HINT_REL "\n"	      \
 		        "	cmpw	%0,%2\n"			      \
 		        "	bne	2f\n"				      \
 		        "	stwcx.	%3,0,%1\n"			      \
@@ -111,7 +118,7 @@
   ({									      \
     __typeof (*mem) __val;						      \
     __asm __volatile (							      \
-		      "1:	lwarx	%0,0,%2\n"			      \
+		      "1:	lwarx	%0,0,%2" MUTEX_HINT_ACQ "\n"	      \
 		      "		stwcx.	%3,0,%2\n"			      \
 		      "		bne-	1b\n"				      \
 		      "   " __ARCH_ACQ_INSTR				      \
@@ -125,7 +132,7 @@
   ({									      \
     __typeof (*mem) __val;						      \
     __asm __volatile (__ARCH_REL_INSTR "\n"				      \
-		      "1:	lwarx	%0,0,%2\n"			      \
+		      "1:	lwarx	%0,0,%2" MUTEX_HINT_REL "\n"	      \
 		      "		stwcx.	%3,0,%2\n"			      \
 		      "		bne-	1b"				      \
 		      : "=&r" (__val), "=m" (*mem)			      \

Modified: fsf/trunk/libc/sysdeps/powerpc/powerpc32/bits/atomic.h
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/bits/atomic.h (original)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/bits/atomic.h Tue Mar 27 00:01:25 2007
@@ -1,5 +1,5 @@
 /* Atomic operations.  PowerPC32 version.
-   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Mackerras <paulus@xxxxxxxxxx>, 2003.
 
@@ -18,17 +18,33 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+/*  POWER6 adds a "Mutex Hint" to the Load and Reserve instruction.
+    This is a hint to the hardware to expect additional updates adjacent
+    to the lock word or not.  If we are acquiring a Mutex, the hint
+    should be true. Otherwise we releasing a Mutex or doing a simple
+    atomic operation.  In that case we don't expect addtional updates
+    adjacent to the lock word after the Store Conditional and the hint
+    should be false.  */
+    
+#if defined _ARCH_PWR6 || defined _ARCH_PWR6X
+# define MUTEX_HINT_ACQ	",1"
+# define MUTEX_HINT_REL	",0"
+#else
+# define MUTEX_HINT_ACQ
+# define MUTEX_HINT_REL
+#endif
+
 /*
  * The 32-bit exchange_bool is different on powerpc64 because the subf
  * does signed 64-bit arthmatic while the lwarx is 32-bit unsigned
  * (a load word and zero (high 32) form).  So powerpc64 has a slightly
  * different version in sysdeps/powerpc/powerpc64/bits/atomic.h.
  */
-# define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval)         \
+#define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval)         \
 ({									      \
   unsigned int __tmp;							      \
   __asm __volatile (							      \
-		    "1:	lwarx	%0,0,%1\n"				      \
+		    "1:	lwarx	%0,0,%1" MUTEX_HINT_ACQ "\n"		      \
 		    "	subf.	%0,%2,%0\n"				      \
 		    "	bne	2f\n"					      \
 		    "	stwcx.	%3,0,%1\n"				      \
@@ -40,11 +56,11 @@
   __tmp != 0;								      \
 })
 
-# define __arch_compare_and_exchange_bool_32_rel(mem, newval, oldval)	      \
+#define __arch_compare_and_exchange_bool_32_rel(mem, newval, oldval)	      \
 ({									      \
   unsigned int __tmp;							      \
   __asm __volatile (__ARCH_REL_INSTR "\n"				      \
-		    "1:	lwarx	%0,0,%1\n"				      \
+		    "1:	lwarx	%0,0,%1" MUTEX_HINT_REL "\n"		      \
 		    "	subf.	%0,%2,%0\n"				      \
 		    "	bne	2f\n"					      \
 		    "	stwcx.	%3,0,%1\n"				      \
@@ -59,34 +75,34 @@
 /* Powerpc32 processors don't implement the 64-bit (doubleword) forms of
    load and reserve (ldarx) and store conditional (stdcx.) instructions.
    So for powerpc32 we stub out the 64-bit forms.  */
-# define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
+#define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
   (abort (), 0)
 
-# define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
+#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
   (abort (), (__typeof (*mem)) 0)
 
-# define __arch_compare_and_exchange_bool_64_rel(mem, newval, oldval) \
+#define __arch_compare_and_exchange_bool_64_rel(mem, newval, oldval) \
   (abort (), 0)
 
-# define __arch_compare_and_exchange_val_64_rel(mem, newval, oldval) \
+#define __arch_compare_and_exchange_val_64_rel(mem, newval, oldval) \
   (abort (), (__typeof (*mem)) 0)
 
-# define __arch_atomic_exchange_64_acq(mem, value) \
+#define __arch_atomic_exchange_64_acq(mem, value) \
     ({ abort (); (*mem) = (value); })
 
-# define __arch_atomic_exchange_64_rel(mem, value) \
+#define __arch_atomic_exchange_64_rel(mem, value) \
     ({ abort (); (*mem) = (value); })
 
-# define __arch_atomic_exchange_and_add_64(mem, value) \
+#define __arch_atomic_exchange_and_add_64(mem, value) \
     ({ abort (); (*mem) = (value); })
 
-# define __arch_atomic_increment_val_64(mem) \
+#define __arch_atomic_increment_val_64(mem) \
     ({ abort (); (*mem)++; })
 
-# define __arch_atomic_decrement_val_64(mem) \
+#define __arch_atomic_decrement_val_64(mem) \
     ({ abort (); (*mem)--; })
 
-# define __arch_atomic_decrement_if_positive_64(mem) \
+#define __arch_atomic_decrement_if_positive_64(mem) \
     ({ abort (); (*mem)--; })
 
 #ifdef _ARCH_PWR4

Modified: fsf/trunk/libc/sysdeps/powerpc/powerpc32/dl-machine.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/dl-machine.c (original)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/dl-machine.c Tue Mar 27 00:01:25 2007
@@ -26,10 +26,9 @@
 #include <dl-machine.h>
 #include <stdio-common/_itoa.h>
 
-/* The value __cache_line_size is defined in memset.S and is initialised
+/* The value __cache_line_size is defined in dl-sysdep.c and is initialised
    by _dl_sysdep_start via DL_PLATFORM_INIT.  */
-extern int __cache_line_size;
-weak_extern (__cache_line_size)
+extern int __cache_line_size attribute_hidden;
 
 /* Because ld.so is now versioned, these functions can be in their own file;
    no relocations need to be done to call them.
@@ -318,15 +317,9 @@
       /* Default minimum 4 words per cache line.  */
       int line_size_words = 4;
 
-      /* Don't try this until ld.so has relocated itself!  */
-      int *line_size_ptr = &__cache_line_size;
-      if (lazy && line_size_ptr != NULL)
-	{
-	  /*  Verify that __cache_line_size is defined and set.  */
-	  if (*line_size_ptr != 0)
-	    /* Convert bytes to words.  */
-	    line_size_words = *line_size_ptr / 4;
-	}
+      if (lazy && __cache_line_size != 0)
+	/* Convert bytes to words.  */
+	line_size_words = __cache_line_size / 4;
 
       size_modified = lazy ? rel_offset_words : 6;
       for (i = 0; i < size_modified; i += line_size_words)

Modified: fsf/trunk/libc/sysdeps/powerpc/powerpc32/memset.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/memset.S (original)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/memset.S Tue Mar 27 00:01:25 2007
@@ -1,5 +1,5 @@
 /* Optimized memset implementation for PowerPC.
-   Copyright (C) 1997, 1999, 2000, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999, 2000, 2003, 2007 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
@@ -20,14 +20,6 @@
 #include <sysdep.h>
 #include <bp-sym.h>
 #include <bp-asm.h>
-
-/* Define a global static that can hold the cache line size.  The
-   assumption is that startup code will access the "aux vector" to
-   to obtain the value set by the kernel and store it into this
-   variable.  */
-
-	.globl __cache_line_size
-	.lcomm __cache_line_size,4,4
 
 /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5]));
    Returns 's'.

Modified: fsf/trunk/libc/sysdeps/powerpc/powerpc64/bits/atomic.h
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc64/bits/atomic.h (original)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc64/bits/atomic.h Tue Mar 27 00:01:25 2007
@@ -1,5 +1,5 @@
 /* Atomic operations.  PowerPC64 version.
-   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Mackerras <paulus@xxxxxxxxxx>, 2003.
 
@@ -17,6 +17,22 @@
    License along with the GNU C Library; if not, write to the Free
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
+
+/*  POWER6 adds a "Mutex Hint" to the Load and Reserve instruction.
+    This is a hint to the hardware to expect additional updates adjacent
+    to the lock word or not.  If we are acquiring a Mutex, the hint
+    should be true. Otherwise we releasing a Mutex or doing a simple
+    atomic operation.  In that case we don't expect addtional updates
+    adjacent to the lock word after the Store Conditional and the hint
+    should be false.  */
+
+#if defined _ARCH_PWR6 || defined _ARCH_PWR6X
+# define MUTEX_HINT_ACQ	",1"
+# define MUTEX_HINT_REL	",0"
+#else
+# define MUTEX_HINT_ACQ
+# define MUTEX_HINT_REL
+#endif
 
 /* The 32-bit exchange_bool is different on powerpc64 because the subf
    does signed 64-bit arthmatic while the lwarx is 32-bit unsigned
@@ -24,11 +40,11 @@
    In powerpc64 register values are 64-bit by default,  including oldval.
    The value in old val unknown sign extension, lwarx loads the 32-bit
    value as unsigned.  So we explicitly clear the high 32 bits in oldval.  */
-# define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval) \
+#define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval) \
 ({									      \
   unsigned int __tmp, __tmp2;						      \
   __asm __volatile ("   clrldi  %1,%1,32\n"				      \
-		    "1:	lwarx	%0,0,%2\n"				      \
+		    "1:	lwarx	%0,0,%2" MUTEX_HINT_ACQ "\n"	 	      \
 		    "	subf.	%0,%1,%0\n"				      \
 		    "	bne	2f\n"					      \
 		    "	stwcx.	%4,0,%2\n"				      \
@@ -40,12 +56,12 @@
   __tmp != 0;								      \
 })
 
-# define __arch_compare_and_exchange_bool_32_rel(mem, newval, oldval) \
+#define __arch_compare_and_exchange_bool_32_rel(mem, newval, oldval) \
 ({									      \
   unsigned int __tmp, __tmp2;						      \
   __asm __volatile (__ARCH_REL_INSTR "\n"				      \
 		    "   clrldi  %1,%1,32\n"				      \
-		    "1:	lwarx	%0,0,%2\n"				      \
+		    "1:	lwarx	%0,0,%2" MUTEX_HINT_REL "\n"		      \
 		    "	subf.	%0,%1,%0\n"				      \
 		    "	bne	2f\n"					      \
 		    "	stwcx.	%4,0,%2\n"				      \
@@ -62,11 +78,11 @@
  * and Store doubleword conditional indexed (stdcx) instructions.  So here
  * we define the 64-bit forms.
  */
-# define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
+#define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
 ({									      \
   unsigned long	__tmp;							      \
   __asm __volatile (							      \
-		    "1:	ldarx	%0,0,%1\n"				      \
+		    "1:	ldarx	%0,0,%1" MUTEX_HINT_ACQ "\n"		      \
 		    "	subf.	%0,%2,%0\n"				      \
 		    "	bne	2f\n"					      \
 		    "	stdcx.	%3,0,%1\n"				      \
@@ -78,11 +94,11 @@
   __tmp != 0;								      \
 })
 
-# define __arch_compare_and_exchange_bool_64_rel(mem, newval, oldval) \
+#define __arch_compare_and_exchange_bool_64_rel(mem, newval, oldval) \
 ({									      \
   unsigned long	__tmp;							      \
   __asm __volatile (__ARCH_REL_INSTR "\n"				      \
-		    "1:	ldarx	%0,0,%1\n"				      \
+		    "1:	ldarx	%0,0,%2" MUTEX_HINT_REL "\n"		      \
 		    "	subf.	%0,%2,%0\n"				      \
 		    "	bne	2f\n"					      \
 		    "	stdcx.	%3,0,%1\n"				      \
@@ -99,7 +115,7 @@
       __typeof (*(mem)) __tmp;						      \
       __typeof (mem)  __memp = (mem);					      \
       __asm __volatile (						      \
-		        "1:	ldarx	%0,0,%1\n"			      \
+		        "1:	ldarx	%0,0,%1" MUTEX_HINT_ACQ "\n"	      \
 		        "	cmpd	%0,%2\n"			      \
 		        "	bne	2f\n"				      \
 		        "	stdcx.	%3,0,%1\n"			      \
@@ -116,7 +132,7 @@
       __typeof (*(mem)) __tmp;						      \
       __typeof (mem)  __memp = (mem);					      \
       __asm __volatile (__ARCH_REL_INSTR "\n"				      \
-		        "1:	ldarx	%0,0,%1\n"			      \
+		        "1:	ldarx	%0,0,%1" MUTEX_HINT_REL "\n"	      \
 		        "	cmpd	%0,%2\n"			      \
 		        "	bne	2f\n"				      \
 		        "	stdcx.	%3,0,%1\n"			      \
@@ -128,11 +144,11 @@
       __tmp;								      \
   })
 
-# define __arch_atomic_exchange_64_acq(mem, value) \
+#define __arch_atomic_exchange_64_acq(mem, value) \
     ({									      \
       __typeof (*mem) __val;						      \
       __asm __volatile (__ARCH_REL_INSTR "\n"				      \
-			"1:	ldarx	%0,0,%2\n"			      \
+			"1:	ldarx	%0,0,%2" MUTEX_HINT_ACQ "\n"	      \
 			"	stdcx.	%3,0,%2\n"			      \
 			"	bne-	1b\n"				      \
 		  " " __ARCH_ACQ_INSTR					      \
@@ -142,11 +158,11 @@
       __val;								      \
     })
 
-# define __arch_atomic_exchange_64_rel(mem, value) \
+#define __arch_atomic_exchange_64_rel(mem, value) \
     ({									      \
       __typeof (*mem) __val;						      \
       __asm __volatile (__ARCH_REL_INSTR "\n"				      \
-			"1:	ldarx	%0,0,%2\n"			      \
+			"1:	ldarx	%0,0,%2" MUTEX_HINT_REL "\n"	      \
 			"	stdcx.	%3,0,%2\n"			      \
 			"	bne-	1b"				      \
 			: "=&r" (__val), "=m" (*mem)			      \
@@ -155,7 +171,7 @@
       __val;								      \
     })
 
-# define __arch_atomic_exchange_and_add_64(mem, value) \
+#define __arch_atomic_exchange_and_add_64(mem, value) \
     ({									      \
       __typeof (*mem) __val, __tmp;					      \
       __asm __volatile ("1:	ldarx	%0,0,%3\n"			      \
@@ -168,7 +184,7 @@
       __val;								      \
     })
 
-# define __arch_atomic_increment_val_64(mem) \
+#define __arch_atomic_increment_val_64(mem) \
     ({									      \
       __typeof (*(mem)) __val;						      \
       __asm __volatile ("1:	ldarx	%0,0,%2\n"			      \
@@ -181,7 +197,7 @@
       __val;								      \
     })
 
-# define __arch_atomic_decrement_val_64(mem) \
+#define __arch_atomic_decrement_val_64(mem) \
     ({									      \
       __typeof (*(mem)) __val;						      \
       __asm __volatile ("1:	ldarx	%0,0,%2\n"			      \
@@ -194,7 +210,7 @@
       __val;								      \
     })
 
-# define __arch_atomic_decrement_if_positive_64(mem) \
+#define __arch_atomic_decrement_if_positive_64(mem) \
   ({ int __val, __tmp;							      \
      __asm __volatile ("1:	ldarx	%0,0,%3\n"			      \
 		       "	cmpdi	0,%0,0\n"			      \
@@ -212,13 +228,13 @@
 /*
  * All powerpc64 processors support the new "light weight"  sync (lwsync).
  */
-# define atomic_read_barrier()	__asm ("lwsync" ::: "memory")
+#define atomic_read_barrier()	__asm ("lwsync" ::: "memory")
 /*
  * "light weight" sync can also be used for the release barrier.
  */
-# ifndef UP
-#  define __ARCH_REL_INSTR	"lwsync"
-# endif
+#ifndef UP
+# define __ARCH_REL_INSTR	"lwsync"
+#endif
 
 /*
  * Include the rest of the atomic ops macros which are common to both

Modified: fsf/trunk/libc/sysdeps/powerpc/powerpc64/memset.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc64/memset.S (original)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc64/memset.S Tue Mar 27 00:01:25 2007
@@ -1,5 +1,6 @@
 /* Optimized memset implementation for PowerPC64.
-   Copyright (C) 1997, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999, 2000, 2002, 2003, 2007
+   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
@@ -21,12 +22,6 @@
 #include <bp-sym.h>
 #include <bp-asm.h>
 
-/* Define a global static that can hold the cache line size.  The
-   assumption is that startup code will access the "aux vector" to
-   to obtain the value set by the kernel and store it into this
-   variable.  */
-	.globl __cache_line_size
-	.lcomm __cache_line_size,4,4
 	.section	".toc","aw"
 .LC0:
 	.tc __cache_line_size[TC],__cache_line_size

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/Makefile
==============================================================================
Binary files - no diff available.

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/Versions
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/Versions (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/Versions Tue Mar 27 00:01:25 2007
@@ -124,10 +124,10 @@
     _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
   }
   GLIBC_2.5 {
-    splice; sync_file_range; tee; vmsplice;
+    splice; tee; vmsplice;
   }
   GLIBC_2.6 {
-    epoll_pwait;
+    epoll_pwait; sync_file_range;
   }
   GLIBC_PRIVATE {
     # functions used in other libraries

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c Tue Mar 27 00:01:25 2007
@@ -1,5 +1,6 @@
 /* Operating system support for run-time dynamic linker.  Linux/PPC version.
-   Copyright (C) 1997, 1998, 2001, 2003, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 2001, 2003, 2006, 2007
+   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
@@ -21,8 +22,7 @@
 #include <kernel-features.h>
 #include <ldsodefs.h>
 
-extern int __cache_line_size;
-weak_extern (__cache_line_size)
+int __cache_line_size attribute_hidden;
 
 /* Scan the Aux Vector for the "Data Cache Block Size" entry.  If found
    verify that the static extern __cache_line_size is defined by checking
@@ -30,12 +30,8 @@
    value to __cache_line_size.  */
 #define DL_PLATFORM_AUXV						      \
       case AT_DCACHEBSIZE:						      \
-	{								      \
-	  int *cls = & __cache_line_size;				      \
-	  if (cls != NULL)						      \
-	    *cls = av->a_un.a_val;					      \
-	}								      \
-      break;
+	__cache_line_size = av->a_un.a_val;				      \
+	break;
 
 #ifndef __ASSUME_STD_AUXV
 

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c Tue Mar 27 00:01:25 2007
@@ -1,4 +1,5 @@
-/* Copyright (C) 1998,2000,2001,2002,2003,2004,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2007
+   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
@@ -22,8 +23,7 @@
 #include <bp-start.h>
 #include <bp-sym.h>
 
-extern int __cache_line_size;
-weak_extern (__cache_line_size)
+int __cache_line_size attribute_hidden;
 /* The main work is done in the generic function.  */
 #define LIBC_START_MAIN generic_start_main
 #define LIBC_START_DISABLE_INLINE
@@ -113,11 +113,7 @@
     switch (av->a_type)
       {
       case AT_DCACHEBSIZE:
-	{
-	  int *cls = &__cache_line_size;
-	  if (cls != NULL)
-	    *cls = av->a_un.a_val;
-	}
+	__cache_line_size = av->a_un.a_val;
 	break;
       }
 #ifdef SHARED

Modified: fsf/trunk/libc/timezone/africa
==============================================================================
--- fsf/trunk/libc/timezone/africa (original)
+++ fsf/trunk/libc/timezone/africa Tue Mar 27 00:01:25 2007
@@ -1,4 +1,4 @@
-# @(#)africa	8.5
+# @(#)africa	8.7
 # <pre>
 
 # This data is by no means authoritative; if you think you know better,
@@ -232,8 +232,8 @@
 
 # Eritrea
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Asmera	2:35:32 -	LMT	1870
-			2:35:32	-	AMT	1890	      # Asmera Mean Time
+Zone	Africa/Asmara	2:35:32 -	LMT	1870
+			2:35:32	-	AMT	1890	      # Asmara Mean Time
 			2:35:20	-	ADMT	1936 May 5    # Adis Dera MT
 			3:00	-	EAT
 

Modified: fsf/trunk/libc/timezone/asia
==============================================================================
--- fsf/trunk/libc/timezone/asia (original)
+++ fsf/trunk/libc/timezone/asia Tue Mar 27 00:01:25 2007
@@ -1,4 +1,4 @@
-# @(#)asia	8.8
+# @(#)asia	8.10
 # <pre>
 
 # This data is by no means authoritative; if you think you know better,
@@ -217,7 +217,7 @@
 # BTW, I did some research on-line and found some info regarding these five
 # historic timezones from some Taiwan websites.  And yes, there are official
 # Chinese names for these locales (before 1949).
-# 
+#
 # From Jesper Norgaard Welen (2006-07-14):
 # I have investigated the timezones around 1970 on the
 # http://www.astro.com/atlas site [with provinces and county
@@ -413,6 +413,8 @@
 
 # East Timor
 
+# See Indonesia for the 1945 transition.
+
 # From Joao Carrascalao, brother of the former governor of East Timor, in
 # <a href="http://etan.org/et99c/december/26-31/30ETMAY.htm";>
 # East Timor may be late for its millennium
@@ -437,7 +439,7 @@
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Dili	8:22:20 -	LMT	1912
 			8:00	-	TLT	1942 Feb 21 23:00 # E Timor Time
-			9:00	-	JST	1945 Aug
+			9:00	-	JST	1945 Sep 23
 			9:00	-	TLT	1976 May  3
 			8:00	-	CIT	2000 Sep 17 00:00
 			9:00	-	TLT
@@ -463,6 +465,19 @@
 # time zone maps, I think that must refer to Western Borneo (Kalimantan Barat
 # and Kalimantan Tengah) switching from UTC+8 to UTC+7.
 #
+# From Paul Eggert (2007-03-10):
+# Here is another correction to Shanks & Pottenger.
+# JohnTWB writes that Japanese forces did not surrender control in
+# Indonesia until 1945-09-01 00:00 at the earliest (in Jakarta) and
+# other formal surrender ceremonies were September 9, 11, and 13, plus
+# September 12 for the regional surrender to Mountbatten in Singapore.
+# These would be the earliest possible times for a change.
+# Regimes horaires pour le monde entier, by Henri Le Corre, (Editions
+# Traditionnelles, 1987, Paris) says that Java and Madura switched
+# from JST to UTC+07:30 on 1945-09-23, and gives 1944-09-01 for Jayapura
+# (Hollandia).  For now, assume all Indonesian locations other than Jayapura
+# switched on 1945-09-23.
+#
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Asia/Jakarta	7:07:12 -	LMT	1867 Aug 10
 # Shanks & Pottenger say the next transition was at 1924 Jan 1 0:13,
@@ -470,7 +485,7 @@
 			7:07:12	-	JMT	1923 Dec 31 23:47:12 # Jakarta
 			7:20	-	JAVT	1932 Nov	 # Java Time
 			7:30	-	WIT	1942 Mar 23
-			9:00	-	JST	1945 Aug
+			9:00	-	JST	1945 Sep 23
 			7:30	-	WIT	1948 May
 			8:00	-	WIT	1950 May
 			7:30	-	WIT	1964
@@ -478,7 +493,7 @@
 Zone Asia/Pontianak	7:17:20	-	LMT	1908 May
 			7:17:20	-	PMT	1932 Nov    # Pontianak MT
 			7:30	-	WIT	1942 Jan 29
-			9:00	-	JST	1945 Aug
+			9:00	-	JST	1945 Sep 23
 			7:30	-	WIT	1948 May
 			8:00	-	WIT	1950 May
 			7:30	-	WIT	1964
@@ -487,10 +502,10 @@
 Zone Asia/Makassar	7:57:36 -	LMT	1920
 			7:57:36	-	MMT	1932 Nov    # Macassar MT
 			8:00	-	CIT	1942 Feb  9
-			9:00	-	JST	1945 Aug
+			9:00	-	JST	1945 Sep 23
 			8:00	-	CIT
 Zone Asia/Jayapura	9:22:48 -	LMT	1932 Nov
-			9:00	-	EIT	1944
+			9:00	-	EIT	1944 Sep  1
 			9:30	-	CST	1964
 			9:00	-	EIT
 
@@ -614,7 +629,7 @@
 Rule	Iraq	1986	1990	-	Mar	lastSun	1:00s	1:00	D
 # IATA SSIM (1991/1996) says Apr 1 12:01am UTC; guess the `:01' is a typo.
 # Shanks & Pottenger say Iraq did not observe DST 1992/1997; ignore this.
-# 
+#
 Rule	Iraq	1991	max	-	Apr	 1	3:00s	1:00	D
 Rule	Iraq	1991	max	-	Oct	 1	3:00s	0	S
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -1293,6 +1308,11 @@
 # parliament passed during the tumultuous winter session."
 # For now, let's ignore this information, until we have more confirmation.
 
+# From Ganbold Ts. (2007-02-26):
+# Parliament of Mongolia has just changed the daylight-saving rule in February.
+# They decided not to adopt daylight-saving time....
+# http://www.mongolnews.mn/index.php?module=unuudur&sec=view&id=15742
+
 # 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	-
@@ -1311,8 +1331,8 @@
 Rule	Mongol	1984	1998	-	Sep	lastSun	0:00	0	-
 # IATA SSIM (1999-09) says Mongolia no longer observes DST.
 Rule	Mongol	2001	only	-	Apr	lastSat	2:00	1:00	S
-Rule	Mongol	2001	max	-	Sep	lastSat	2:00	0	-
-Rule	Mongol	2002	max	-	Mar	lastSat	2:00	1:00	S
+Rule	Mongol	2001	2006	-	Sep	lastSat	2:00	0	-
+Rule	Mongol	2002	2006	-	Mar	lastSat	2:00	1:00	S
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 # Hovd, a.k.a. Chovd, Dund-Us, Dzhargalant, Khovd, Jirgalanta

Modified: fsf/trunk/libc/timezone/australasia
==============================================================================
--- fsf/trunk/libc/timezone/australasia (original)
+++ fsf/trunk/libc/timezone/australasia Tue Mar 27 00:01:25 2007
@@ -1,4 +1,4 @@
-# @(#)australasia	8.3
+# @(#)australasia	8.6
 # <pre>
 
 # This file also includes Pacific islands.
@@ -29,15 +29,24 @@
 			 9:00	-	CST	1899 May
 			 9:30	Aus	CST
 # Western Australia
+#
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule	AW	1974	only	-	Oct	lastSun	2:00s	1:00	-
+Rule	AW	1975	only	-	Mar	Sun>=1	2:00s	0	-
+Rule	AW	1983	only	-	Oct	lastSun	2:00s	1:00	-
+Rule	AW	1984	only	-	Mar	Sun>=1	2:00s	0	-
+Rule	AW	1991	only	-	Nov	17	2:00s	1:00	-
+Rule	AW	1992	only	-	Mar	Sun>=1	2:00s	0	-
+Rule	AW	2006	only	-	Dec	 3	2:00s	1:00	-
+Rule	AW	2007	2009	-	Mar	lastSun	2:00s	0	-
+Rule	AW	2007	2008	-	Oct	lastSun	2:00s	1:00	-
 Zone Australia/Perth	 7:43:24 -	LMT	1895 Dec
 			 8:00	Aus	WST	1943 Jul
-			 8:00	-	WST	1974 Oct lastSun 2:00s
-			 8:00	1:00	WST	1975 Mar Sun>=1 2:00s
-			 8:00	-	WST	1983 Oct lastSun 2:00s
-			 8:00	1:00	WST	1984 Mar Sun>=1 2:00s
-			 8:00	-	WST	1991 Nov 17 2:00s
-			 8:00	1:00	WST	1992 Mar Sun>=1 2:00s
-			 8:00	-	WST
+			 8:00	AW	WST
+Zone Australia/Eucla	 8:35:28 -	LMT	1895 Dec
+			 8:45	Aus	CWST	1943 Jul
+			 8:45	AW	CWST
+
 # Queensland
 #
 # From Alex Livingston (1996-11-01):
@@ -193,16 +202,16 @@
 #
 # Ashmore Is, Cartier
 # no indigenous inhabitants; only seasonal caretakers
-# like Australia/Perth, says Turner
+# no times are set
 #
 # Coral Sea Is
 # no indigenous inhabitants; only meteorologists
-# no information
+# no times are set
 #
 # Macquarie
 # permanent occupation (scientific station) since 1948;
 # sealing and penguin oil station operated 1888/1917
-# like Australia/Hobart, says Turner
+# like Australia/Hobart
 
 # Christmas
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -534,6 +543,7 @@
 #		std dst
 #		LMT	Local Mean Time
 #	  8:00	WST WST	Western Australia
+#	  8:45	CWST CWST Central Western Australia*
 #	  9:00	JST	Japan
 #	  9:30	CST CST	Central Australia
 #	 10:00	EST EST	Eastern Australia
@@ -806,37 +816,51 @@
 # From Arthur David Olson (1992-03-08):
 # The chosen rules the union of the 1971/1972 change and the 1989-1992 changes.
 
+# From Christopher Hunt (2006-11-21), after an advance warning
+# from Jesper Norgaard Welen (2006-11-01):
+# WA are trialing DST for three years.
+# <http://www.parliament.wa.gov.au/parliament/bills.nsf/9A1B183144403DA54825721200088DF1/$File/Bill175-1B.pdf>
+
 # From Rives McDow (2002-04-09):
 # The most interesting region I have found consists of three towns on the
-# southern coast of Australia, population 10 at last report, along with
-# 50,000 sheep, about 100 kilometers long and 40 kilometers into the
-# continent.  The primary town is Madura, with the other towns being
-# Mundrabilla and Eucla.  According to the sheriff of Madura, the
-# residents got tired of having to change the time so often, as they are
-# located in a strip overlapping the border of South Australia and Western
-# Australia.  South Australia observes daylight saving time; Western
+# southern coast....  South Australia observes daylight saving time; Western
 # Australia does not.  The two states are one and a half hours apart.  The
 # residents decided to forget about this nonsense of changing the clock so
 # much and set the local time 20 hours and 45 minutes from the
 # international date line, or right in the middle of the time of South
-# Australia and Western Australia.  As it only affects about 10 people and
-# tourists staying at the Madura Motel, it has never really made as big an
-# impact as Broken Hill.  However, as tourist visiting there or anyone
-# calling the local sheriff will attest, they do keep time in this way.
+# Australia and Western Australia....
 #
 # From Paul Eggert (2002-04-09):
 # This is confirmed by the section entitled
 # "What's the deal with time zones???" in
-# <http://www.earthsci.unimelb.edu.au/~awatkins/null.html>,
-# which says a few other things:
-#
-# * Border Village, SA also is 45 minutes ahead of Perth.
-# * The locals call this time zone "central W.A. Time" (presumably "CWAT").
-# * The locals also call Western Australia time "Perth time".
-#
-# It's not clear from context whether everyone in Western Australia
-# knows of this naming convention, or whether it's just the people in
-# this subregion.
+# <http://www.earthsci.unimelb.edu.au/~awatkins/null.html>.
+#
+# From Alex Livingston (2006-12-07):
+# ... it was just on four years ago that I drove along the Eyre Highway,
+# which passes through eastern Western Australia close to the southern
+# coast of the continent.
+#
+# I paid particular attention to the time kept there. There can be no
+# dispute that UTC+08:45 was considered "the time" from the border
+# village just inside the border with South Australia to as far west
+# as just east of Caiguna. There can also be no dispute that Eucla is
+# the largest population centre in this zone....
+#
+# Now that Western Australia is observing daylight saving, the
+# question arose whether this part of the state would follow suit. I
+# just called the border village and confirmed that indeed they have,
+# meaning that they are now observing UTC+09:45.
+#
+# (2006-12-09):
+# I personally doubt that either experimentation with daylight saving
+# in WA or its introduction in SA had anything to do with the genesis
+# of this time zone.  My hunch is that it's been around since well
+# before 1975.  I remember seeing it noted on road maps decades ago.
+
+# From Paul Eggert (2006-12-15):
+# For lack of better info, assume the tradition dates back to the
+# introduction of standard time in 1895.
+
 
 # South Australia, Tasmania, Victoria
 

Modified: fsf/trunk/libc/timezone/backward
==============================================================================
--- fsf/trunk/libc/timezone/backward (original)
+++ fsf/trunk/libc/timezone/backward Tue Mar 27 00:01:25 2007
@@ -1,8 +1,9 @@
-# @(#)backward	8.2
+# @(#)backward	8.3
 
 # This file provides links between current names for time zones
 # and their old names.  Many names changed in late 1993.
 
+Link	Africa/Asmara		Africa/Asmera
 Link	Africa/Bamako		Africa/Timbuktu
 Link	America/Argentina/Catamarca	America/Argentina/ComodRivadavia
 Link	America/Adak		America/Atka
@@ -28,6 +29,7 @@
 Link	Asia/Thimphu		Asia/Thimbu
 Link	Asia/Makassar		Asia/Ujung_Pandang
 Link	Asia/Ulaanbaatar	Asia/Ulan_Bator
+Link	Atlantic/Faroe		Atlantic/Faeroe
 Link	Australia/Sydney	Australia/ACT
 Link	Australia/Sydney	Australia/Canberra
 Link	Australia/Lord_Howe	Australia/LHI

Modified: fsf/trunk/libc/timezone/europe
==============================================================================
--- fsf/trunk/libc/timezone/europe (original)
+++ fsf/trunk/libc/timezone/europe Tue Mar 27 00:01:25 2007
@@ -1,4 +1,4 @@
-# @(#)europe	8.6
+# @(#)europe	8.10
 # <pre>
 
 # This data is by no means authoritative; if you think you know better,
@@ -259,32 +259,32 @@
 #   -- James Joyce, Ulysses
 
 # From Joseph S. Myers (2005-01-26):
-# Irish laws are available online at www.irishstatutebook.ie.  These include 
+# Irish laws are available online at www.irishstatutebook.ie.  These include
 # various relating to legal time, for example:
-# 
+#
 # ZZA13Y1923.html ZZA12Y1924.html ZZA8Y1925.html ZZSIV20PG1267.html
-# 
+#
 # ZZSI71Y1947.html ZZSI128Y1948.html ZZSI23Y1949.html ZZSI41Y1950.html
 # ZZSI27Y1951.html ZZSI73Y1952.html
-# 
+#
 # ZZSI11Y1961.html ZZSI232Y1961.html ZZSI182Y1962.html
 # ZZSI167Y1963.html ZZSI257Y1964.html ZZSI198Y1967.html
 # ZZA23Y1968.html ZZA17Y1971.html
-# 
+#
 # ZZSI67Y1981.html ZZSI212Y1982.html ZZSI45Y1986.html
 # ZZSI264Y1988.html ZZSI52Y1990.html ZZSI371Y1992.html
 # ZZSI395Y1994.html ZZSI484Y1997.html ZZSI506Y2001.html
 #
 # [These are all relative to the root, e.g., the first is
 # <http://www.irishstatutebook.ie/ZZA13Y1923.html>.]
-# 
-# (These are those I found, but there could be more.  In any case these 
-# should allow various updates to the comments in the europe file to cover 
+#
+# (These are those I found, but there could be more.  In any case these
+# should allow various updates to the comments in the europe file to cover
 # the laws applicable in Ireland.)
-# 
-# (Note that the time in the Republic of Ireland since 1968 has been defined 
-# in terms of standard time being GMT+1 with a period of winter time when it 
-# is GMT, rather than standard time being GMT with a period of summer time 
+#
+# (Note that the time in the Republic of Ireland since 1968 has been defined
+# in terms of standard time being GMT+1 with a period of winter time when it
+# is GMT, rather than standard time being GMT with a period of summer time
 # being GMT+1.)
 
 # From Paul Eggert (1999-03-28):
@@ -754,7 +754,7 @@
 			1:00	Czech	CE%sT	1979
 			1:00	EU	CE%sT
 
-# Denmark, Faeroe Islands, and Greenland
+# Denmark, Faroe Islands, and Greenland
 
 # From Jesper Norgaard Welen (2005-04-26):
 # http://www.hum.aau.dk/~poe/tid/tine/DanskTid.htm says that the law
@@ -809,7 +809,7 @@
 			 1:00	C-Eur	CE%sT	1945 Apr  2 2:00
 			 1:00	Denmark	CE%sT	1980
 			 1:00	EU	CE%sT
-Zone Atlantic/Faeroe	-0:27:04 -	LMT	1908 Jan 11	# Torshavn
+Zone Atlantic/Faroe	-0:27:04 -	LMT	1908 Jan 11	# Torshavn
 			 0:00	-	WET	1981
 			 0:00	EU	WE%sT
 #
@@ -2278,6 +2278,34 @@
 			1:00	EU	CE%sT
 
 # Turkey
+
+# From Amar Devegowda (2007-01-03):
+# The time zone rules for Istanbul, Turkey have not been changed for years now.
+# ... The latest rules are available at -
+# http://www.timeanddate.com/worldclock/timezone.html?n=107
+# From Steffen Thorsen (2007-01-03):
+# I have been able to find press records back to 1996 which all say that
+# DST started 01:00 local time and end at 02:00 local time.  I am not sure
+# what happened before that.  One example for each year from 1996 to 2001:
+# http://newspot.byegm.gov.tr/arsiv/1996/21/N4.htm
+# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING97/03/97X03X25.TXT
+# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING98/03/98X03X02.HTM
+# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING99/10/99X10X26.HTM#%2016
+# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING2000/03/00X03X06.HTM#%2021
+# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING2001/03/23x03x01.HTM#%2027
+# From Paul Eggert (2007-01-03):
+# Prefer the above source to Shanks & Pottenger for time stamps after 1990.
+
+# From Steffen Thorsen (2007-03-09):
+# Starting 2007 though, it seems that they are adopting EU's 1:00 UTC
+# start/end time, according to the following page (2007-03-07):
+# http://www.ntvmsnbc.com/news/402029.asp
+# The official document is located here - it is in Turkish...:
+# http://rega.basbakanlik.gov.tr/eskiler/2007/03/20070307-7.htm
+# I was able to locate the following seemingly official document
+# (on a non-government server though) describing dates between 2002 and 2006:
+# http://www.alomaliye.com/bkk_2002_3769.htm
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Turkey	1916	only	-	May	 1	0:00	1:00	S
 Rule	Turkey	1916	only	-	Oct	 1	0:00	0	-
@@ -2332,13 +2360,17 @@
 Rule	Turkey	1983	only	-	Oct	 2	0:00	0	-
 Rule	Turkey	1985	only	-	Apr	20	0:00	1:00	S
 Rule	Turkey	1985	only	-	Sep	28	0:00	0	-
+Rule	Turkey	1986	1990	-	Mar	lastSun	2:00s	1:00	S
+Rule	Turkey	1986	1990	-	Sep	lastSun	2:00s	0	-
+Rule	Turkey	1991	2006	-	Mar	lastSun	1:00s	1:00	S
+Rule	Turkey	1991	1995	-	Sep	lastSun	1:00s	0	-
+Rule	Turkey	1996	2006	-	Oct	lastSun	1:00s	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Europe/Istanbul	1:55:52 -	LMT	1880
 			1:56:56	-	IMT	1910 Oct # Istanbul Mean Time?
 			2:00	Turkey	EE%sT	1978 Oct 15
 			3:00	Turkey	TR%sT	1985 Apr 20 # Turkey Time
-			2:00	Turkey	EE%sT	1986
-			2:00	C-Eur	EE%sT	1991
+			2:00	Turkey	EE%sT	2007
 			2:00	EU	EE%sT
 Link	Europe/Istanbul	Asia/Istanbul	# Istanbul is in both continents.
 

Modified: fsf/trunk/libc/timezone/iso3166.tab
==============================================================================
--- fsf/trunk/libc/timezone/iso3166.tab (original)
+++ fsf/trunk/libc/timezone/iso3166.tab Tue Mar 27 00:01:25 2007
@@ -1,6 +1,6 @@
 # ISO 3166 alpha-2 country codes
 #
-# @(#)iso3166.tab	8.3
+# @(#)iso3166.tab	8.4
 #
 # From Paul Eggert (2006-09-27):
 #
@@ -92,7 +92,7 @@
 FJ	Fiji
 FK	Falkland Islands
 FM	Micronesia
-FO	Faeroe Islands
+FO	Faroe Islands
 FR	France
 GA	Gabon
 GB	Britain (UK)

Modified: fsf/trunk/libc/timezone/leapseconds
==============================================================================
--- fsf/trunk/libc/timezone/leapseconds (original)
+++ fsf/trunk/libc/timezone/leapseconds Tue Mar 27 00:01:25 2007
@@ -1,4 +1,4 @@
-# @(#)leapseconds	8.1
+# @(#)leapseconds	8.3
 
 # Allowance for leapseconds added to each timezone file.
 
@@ -45,48 +45,38 @@
 Leap	1998	Dec	31	23:59:60	+	S
 Leap	2005	Dec	31	23:59:60	+	S
 
-#	INTERNATIONAL EARTH ROTATION AND REFERENCE SYSTEMS SERVICE (IERS)
+# ...
+# Sent: Thursday, February 01, 2007 9:49 AM
+# ...
+# Subject: Bulletin C number 33
+#
+# 	INTERNATIONAL EARTH ROTATION AND REFERENCE SYSTEMS SERVICE (IERS)
 #
 # SERVICE INTERNATIONAL DE LA ROTATION TERRESTRE ET DES SYSTEMES DE REFERENCE
 #
 # SERVICE DE LA ROTATION TERRESTRE
 # OBSERVATOIRE DE PARIS
 # 61, Av. de l'Observatoire 75014 PARIS (France)
-# Tel.      : 33 (0) 1 40 51 22 26
-# FAX       : 33 (0) 1 40 51 22 91
 # ...
-# http://hpiers.obspm.fr/eop-pc
 #
-#						Paris, 4 July 2005
-#							
-#						Bulletin C 30
+#                                                Paris, 1 February 2007
+#                                                Bulletin C 33
+#                                                To authorities responsible
+#                                                for the measurement and
+#                                                distribution of time
 #
-#						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 June 2007.
+# The difference between Coordinated Universal Time UTC and the
+# International Atomic Time TAI is:
+#      from 2006 January 1, 0h UTC, until further notice : UTC-TAI = -33 s
+# 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  will be no time step at the next possible date.
 #
-#                                    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, 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
-# 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
-# will be no time step at the next possible date.
-#
-#					Daniel GAMBIS
-#					Head
-#					Earth Orientation Center of IERS
-#					Observatoire de Paris, France
+# 				Daniel GAMBIS
+# 				Director
+# 				Earth Orientation Center of IERS
+# 				Observatoire de Paris, France

Modified: fsf/trunk/libc/timezone/northamerica
==============================================================================
--- fsf/trunk/libc/timezone/northamerica (original)
+++ fsf/trunk/libc/timezone/northamerica Tue Mar 27 00:01:25 2007
@@ -1,4 +1,4 @@
-# @(#)northamerica	8.10
+# @(#)northamerica	8.15
 # <pre>
 
 # also includes Central America and the Caribbean
@@ -307,6 +307,11 @@
 # "bar time" in the state corresponds to 02:00, a number of citations
 # are issued for the "sale of class 'B' alcohol after prohibited
 # hours" within the deviated hour of this change every year....
+#
+# From Douglas R. Bomberg (2007-03-12):
+# Wisconsin has enacted (nearly eleventh-hour) legislation to get WI
+# Statue 175 closer in synch with the US Congress' intent....
+# http://www.legis.state.wi.us/2007/data/acts/07Act3.pdf
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
 Rule	Chicago	1920	only	-	Jun	13	2:00	1:00	D
@@ -583,6 +588,11 @@
 # clocks twice that night, but this obviously is in error.  The intent
 # is that 01:59:59 EST be followed by 02:00:00 CDT.
 
+# From Gwillim Law (2007-02-10):
+# The Associated Press has been reporting that Pulaski County, Indiana is
+# going to switch from Central to Eastern Time on March 11, 2007....
+# http://www.indystar.com/apps/pbcs.dll/article?AID=/20070207/LOCAL190108/702070524/0/LOCAL
+
 # 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
@@ -618,7 +628,7 @@
 			-5:00	-	EST	2006
 			-5:00	US	E%sT
 #
-# Daviess, Dubois, Knox, Martin, Perry, and Pulaski Counties, Indiana,
+# Daviess, Dubois, Knox, Martin, and Perry Counties, Indiana,
 # switched from eastern to central time in April 2006.
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
 Rule Vincennes	1946	only	-	Apr	lastSun	2:00	1:00	D
@@ -675,6 +685,23 @@
 			-6:00	US	C%sT	1991 Oct 27 2:00
 			-5:00	-	EST	2006 Apr  2 2:00
 			-6:00	US	C%sT
+#
+# Pulaski County, Indiana, switched from eastern to central time in
+# April 2006 and then switched back in March 2007.
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
+Rule	Pulaski	1946	1960	-	Apr	lastSun	2:00	1:00	D
+Rule	Pulaski	1946	1954	-	Sep	lastSun	2:00	0	S
+Rule	Pulaski	1955	1956	-	Oct	lastSun	2:00	0	S
+Rule	Pulaski	1957	1960	-	Sep	lastSun	2:00	0	S
+# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
+Zone America/Indiana/Winamac -5:46:25 - LMT	1883 Nov 18 12:13:35
+			-6:00	US	C%sT	1946
+			-6:00	Pulaski	C%sT	1961 Apr 30 2:00
+			-5:00	-	EST	1969
+			-5:00	US	E%sT	1971
+			-5:00	-	EST	2006 Apr  2 2:00
+			-6:00	US	C%sT	2007 Mar 11 2:00
+			-5:00	US	E%sT
 #
 # Switzerland County, Indiana, did not observe DST from 1973 through 2005.
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -894,18 +921,17 @@
 # Unless otherwise specified, the data for Canada are all from Shanks
 # & Pottenger.
 
-# From Chris Walton (2006-04-01):
+# From Chris Walton (2006-04-01, 2006-04-25, 2006-06-26, 2007-01-31,
+# 2007-03-01):
 # The British Columbia government announced yesterday that it will
 # adjust daylight savings next year to align with changes in the
 # U.S. and the rest of Canada....
 # http://www2.news.gov.bc.ca/news_releases_2005-2009/2006AG0014-000330.htm
-
-# From Chris Walton (2006-04-25):
+# ...
+# Nova Scotia
 # Daylight saving time will be extended by four weeks starting in 2007....
-# Here is a news release which was issued today by the Nova Scotia government:
-# http://www.gov.ns.ca/news/details.asp?id=20060425004
-
-# From Chris Walton (2006-06-26):
+# http://www.gov.ns.ca/just/regulations/rg2/2006/ma1206.pdf
+#
 # [For New Brunswick] the new legislation dictates that the time change is to
 # be done at 02:00 instead of 00:01.
 # http://www.gnb.ca/0062/acts/BBA-2006/Chap-19.pdf
@@ -915,16 +941,18 @@
 # http://web2.gov.mb.ca/laws/statutes/ccsm/o030e.php
 # ...
 # [Alberta, Ontario, Quebec] will follow US rules.
-# http://www.qp.gov.ab.ca/documents/Acts/2006CH03_UNPR.cfm?frm_isbn=0779744934
+# http://www.qp.gov.ab.ca/documents/spring/CH03_06.CFM
 # http://www.e-laws.gov.on.ca/DBLaws/Source/Regs/English/2006/R06111_e.htm
-# http://www.assnat.qc.ca/eng/37legislature2/Projets-loi/Publics/06-a002.htm
+# http://www2.publicationsduquebec.gouv.qc.ca/dynamicSearch/telecharge.php?type=5&file=2006C39A.PDF
 # ...
-# P.E.I. will follow US rules.  The new legislation is not law yet.
-# It passed first reading on April 20....
-# http://www.assembly.pe.ca/bills/pdf_first/62/3/bill-101.pdf
+# P.E.I. will follow US rules....
+# http://www.assembly.pe.ca/bills/pdf_chapter/62/3/chapter-41.pdf
 # ...
-# Province of Newfoundland and Labrador.... The change is being considered.
-# http://www.releases.gov.nl.ca/releases/2006/mpa/0331n01.htm
+# Province of Newfoundland and Labrador....
+# http://www.hoa.gov.nl.ca/hoa/bills/Bill0634.htm
+# ...
+# Yukon
+# http://www.gov.yk.ca/legislation/regs/oic2006_127.pdf
 # ...
 # N.W.T. will follow US rules.  Whoever maintains the government web site
 # does not seem to believe in bookmarks.  To see the news release, click the
@@ -932,8 +960,10 @@
 # "Daylight Savings Time Change" link; it will fire off a popup using
 # JavaScript.
 # http://www.exec.gov.nt.ca/currentnews/currentPR.asp?mode=archive
-
-
+# ...
+# Nunavut
+# An amendment to the Interpretation Act was registered on February 19/2007....
+# http://action.attavik.ca/home/justice-gn/attach/2007/gaz02part2.pdf
 
 # From Paul Eggert (2006-04-25):
 # H. David Matthews and Mary Vincent's map
@@ -1100,11 +1130,11 @@
 
 # New Brunswick
 
-# From Paul Eggert (2006-01-20):
-# New Brunswick's Time Definition Act
-# <http://www.gnb.ca/0062/PDF-acts/t-06.pdf> says they change at 00:01, and
+# From Paul Eggert (2007-01-31):
+# The Time Definition Act <http://www.gnb.ca/0062/PDF-acts/t-06.pdf>
+# says they changed at 00:01 through 2006, and
 # <http://www.canlii.org/nb/laws/sta/t-6/20030127/whole.html> makes it
-# clear that this has been the case since at least 1993.
+# clear that this was the case since at least 1993.
 # For now, assume it started in 1993.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
@@ -1676,9 +1706,23 @@
 # For lack of better information, assume that Southampton Island observed
 # daylight saving only during wartime.
 
-# From Chris Walton (2006-07-19):
-# The government of Yukon Territory ... recently announced it will extend
-# daylight saving in 2007....  http://www.gov.yk.ca/news/2006/06-164.html
+# From Chris Walton (2007-03-01):
+# ... the community of Resolute (located on Cornwallis Island in
+# Nunavut) moved from Central Time to Eastern Time last November.
+# Basically the community did not change its clocks at the end of
+# daylight saving....
+# http://www.nnsl.com/frames/newspapers/2006-11/nov13_06none.html
+
+# From Chris Walton (2007-03-14):
+# Today I phoned the "hamlet office" to find out what Resolute was doing with
+# its clocks.
+#
+# The individual that answered the phone confirmed that the clocks did not
+# move at the end of daylight saving on October 29/2006.  He also told me that
+# the clocks did not move this past weekend (March 11/2007)....
+#
+# America/Resolute should use the "Canada" Rule up to October 29/2006.
+# After that it should be fixed on Eastern Standard Time until further notice.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	NT_YK	1918	only	-	Apr	14	2:00	1:00	D
@@ -1694,33 +1738,39 @@
 Rule	NT_YK	1980	2006	-	Oct	lastSun	2:00	0	S
 Rule	NT_YK	1987	2006	-	Apr	Sun>=1	2:00	1:00	D
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone America/Pangnirtung -4:22:56 -	LMT	1884
+# aka Panniqtuuq
+Zone America/Pangnirtung 0	-	zzz	1921 # trading post est.
 			-4:00	NT_YK	A%sT	1995 Apr Sun>=1 2:00
 			-5:00	Canada	E%sT	1999 Oct 31 2:00
 			-6:00	Canada	C%sT	2000 Oct 29 2:00
 			-5:00	Canada	E%sT
-Zone America/Iqaluit	-4:33:52 -	LMT	1884 # Frobisher Bay before 1987
+# formerly Frobisher Bay
+Zone America/Iqaluit	0	-	zzz	1942 Aug # Frobisher Bay est.
 			-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
-# Now subsumed by America/Atikokan.
-#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:20 -	LMT	1884
+# aka Qausuittuq
+Zone America/Resolute	0	-	zzz	1947 Aug 31 # Resolute founded
+			-6:00	NT_YK	C%sT	2000 Oct 29 2:00
+			-5:00	-	EST	2001 Apr  1 3:00
+			-6:00	Canada	C%sT	2006 Oct 29 2:00
+			-5:00	-	EST
+# aka Kangiqiniq
+Zone America/Rankin_Inlet 0	-	zzz	1957 # Rankin Inlet founded
 			-6:00	NT_YK	C%sT	2000 Oct 29 2:00
 			-5:00	-	EST	2001 Apr  1 3:00
 			-6:00	Canada	C%sT
-Zone America/Cambridge_Bay -7:00:20 -	LMT	1884
+# aka Iqaluktuuttiaq
+Zone America/Cambridge_Bay 0	-	zzz	1920 # trading post est.?
 			-7:00	NT_YK	M%sT	1999 Oct 31 2:00
 			-6:00	Canada	C%sT	2000 Oct 29 2:00
 			-5:00	-	EST	2000 Nov  5 0:00
 			-6:00	-	CST	2001 Apr  1 3:00
 			-7:00	Canada	M%sT
-Zone America/Yellowknife -7:37:24 -	LMT	1884
+Zone America/Yellowknife 0	-	zzz	1935 # Yellowknife founded?
 			-7:00	NT_YK	M%sT	1980
 			-7:00	Canada	M%sT
-Zone America/Inuvik	-8:54:52 -	LMT	1884
+Zone America/Inuvik	0	-	zzz	1953 # Inuvik founded
 			-8:00	NT_YK	P%sT	1979 Apr lastSun 2:00
 			-7:00	NT_YK	M%sT	1980
 			-7:00	Canada	M%sT
@@ -1997,13 +2047,19 @@
 			-4:00	-	AST
 
 # Bahamas
+#
+# From Sue Williams (2006-12-07):
+# The Bahamas announced about a month ago that they plan to change their DST
+# rules to sync with the U.S. starting in 2007....
+# http://www.jonesbahamas.com/?c=45&a=10412
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Bahamas	1964	max	-	Oct	lastSun	2:00	0	S
+Rule	Bahamas	1964	2006	-	Oct	lastSun	2:00	0	S
 Rule	Bahamas	1964	1986	-	Apr	lastSun	2:00	1:00	D
-Rule	Bahamas	1987	max	-	Apr	Sun>=1	2:00	1:00	D
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	America/Nassau	-5:09:24 -	LMT	1912 Mar 2
-			-5:00	Bahamas	E%sT
+			-5:00	Bahamas	E%sT	1976
+			-5:00	US	E%sT
 
 # Barbados
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
@@ -2103,6 +2159,12 @@
 # "On Saturday night, October 28 going into Sunday, October 29, at 01:00,
 # watches should be set back one hour -- going back to 00:00 hours -- returning
 # to the normal schedule....
+
+# From Paul Eggert (2007-03-02):
+# http://www.granma.cubaweb.cu/english/news/art89.html, dated yesterday,
+# says Cuban clocks will advance at midnight on March 10.
+# For lack of better information, assume Cuba will use US rules,
+# except that it switches at midnight standard time as usual.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Cuba	1928	only	-	Jun	10	0:00	1:00	D
@@ -2133,8 +2195,10 @@
 Rule	Cuba	1997	only	-	Oct	12	0:00s	0	S
 Rule	Cuba	1998	1999	-	Mar	lastSun	0:00s	1:00	D
 Rule	Cuba	1998	2003	-	Oct	lastSun	0:00s	0	S
-Rule	Cuba	2000	max	-	Apr	Sun>=1	0:00s	1:00	D
-Rule	Cuba	2006	max	-	Oct	lastSun	0:00s	0	S
+Rule	Cuba	2000	2006	-	Apr	Sun>=1	0:00s	1:00	D
+Rule	Cuba	2006	only	-	Oct	lastSun	0:00s	0	S
+Rule	Cuba	2007	max	-	Mar	Sun>=8	0:00s	1:00	D
+Rule	Cuba	2007	max	-	Nov	Sun>=1	0:00s	0	S
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	America/Havana	-5:29:28 -	LMT	1890

Modified: fsf/trunk/libc/timezone/private.h
==============================================================================
--- fsf/trunk/libc/timezone/private.h (original)
+++ fsf/trunk/libc/timezone/private.h Tue Mar 27 00:01:25 2007
@@ -21,7 +21,7 @@
 
 #ifndef lint
 #ifndef NOID
-static char	privatehid[] = "@(#)private.h	8.2";
+static char	privatehid[] = "@(#)private.h	8.3";
 #endif /* !defined NOID */
 #endif /* !defined lint */
 
@@ -356,7 +356,7 @@
 #ifndef SECSPERREPEAT
 #define SECSPERREPEAT		((int_fast64_t) YEARSPERREPEAT * (int_fast64_t) AVGSECSPERYEAR)
 #endif /* !defined SECSPERREPEAT */
- 
+
 #ifndef SECSPERREPEAT_BITS
 #define SECSPERREPEAT_BITS	34	/* ceil(log2(SECSPERREPEAT)) */
 #endif /* !defined SECSPERREPEAT_BITS */

Modified: fsf/trunk/libc/timezone/southamerica
==============================================================================
--- fsf/trunk/libc/timezone/southamerica (original)
+++ fsf/trunk/libc/timezone/southamerica Tue Mar 27 00:01:25 2007
@@ -1,4 +1,4 @@
-# @(#)southamerica	8.6
+# @(#)southamerica	8.11
 # <pre>
 
 # This data is by no means authoritative; if you think you know better,
@@ -714,8 +714,13 @@
 # (they should have been 1990-09-15 and 1990-09-16 respectively), but
 # anyhow it clears up some doubts too.
 
-# The following data are from <http://www.horaoficial.cl/horaof.htm>
-# (2006-09-20), transcribed by Jesper Norgaard Welen.
+# From Paul Eggert (2006-12-27):
+# The following data for Chile and America/Santiago are from
+# <http://www.horaoficial.cl/horaof.htm> (2006-09-20), transcribed by
+# Jesper Norgaard Welen.  The data for Pacific/Easter are from Shanks
+# & Pottenger, except with DST transitions after 1932 cloned from
+# America/Santiago.  The pre-1980 Pacific/Easter data are dubious,
+# but we have no other source.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Chile	1927	1932	-	Sep	 1	0:00	1:00	S
@@ -759,9 +764,9 @@
 			-4:42:46 -	SMT	1927 Sep  1 # Santiago Mean Time
 			-5:00	Chile	CL%sT	1947 May 22 # Chile Time
 			-4:00	Chile	CL%sT
-Zone Pacific/Easter	-7:17:28 -	LMT	1890	    # Mataveri
-			-7:17:28 -	MMT	1932 Sep    # Mataveri Mean Time
-			-7:00	Chile	EAS%sT	1982 Jan 18 21:00 # Easter I Time
+Zone Pacific/Easter	-7:17:44 -	LMT	1890
+			-7:17:28 -	EMT	1932 Sep    # Easter Mean Time
+			-7:00	Chile	EAS%sT	1982 Mar 13 21:00 # Easter I Time
 			-6:00	Chile	EAS%sT
 #
 # Sala y Gomez Island is like Pacific/Easter.
@@ -781,26 +786,33 @@
 
 # Curacao
 #
-# From Paul Eggert (2006-03-22): 
+# From Paul Eggert (2006-03-22):
 # Shanks & Pottenger say that The Bottom and Philipsburg have been at
 # -4:00 since standard time was introduced on 1912-03-02; and that
 # Kralendijk and Rincon used Kralendijk Mean Time (-4:33:08) from
 # 1912-02-02 to 1965-01-01.  The former is dubious, since S&P also say
 # Saba Island has been like Curacao.
-# This all predates our 1970 cutoff, though.  
+# This all predates our 1970 cutoff, though.
 #
 # By July 2007 Curacao and St Maarten are planned to become
 # associated states within the Netherlands, much like Aruba;
 # Bonaire, Saba and St Eustatius would become directly part of the
 # Netherlands as Kingdom Islands.  This won't affect their time zones
 # though, as far as we know.
-# 
+#
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	America/Curacao	-4:35:44 -	LMT	1912 Feb 12	# Willemstad
 			-4:30	-	ANT	1965 # Netherlands Antilles Time
 			-4:00	-	AST
 
 # Ecuador
+#
+# From Paul Eggert (2007-03-04):
+# Apparently Ecuador had a failed experiment with DST in 1992.
+# <http://midena.gov.ec/content/view/1261/208/> (2007-02-27) and
+# <http://www.hoy.com.ec/NoticiaNue.asp?row_id=249856> (2006-11-06) both
+# talk about "hora Sixto".  Leave this alone for now, as we have no data.
+#
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone America/Guayaquil	-5:19:20 -	LMT	1890
 			-5:14:00 -	QMT	1931 # Quito Mean Time

Modified: fsf/trunk/libc/timezone/zdump.c
==============================================================================
--- fsf/trunk/libc/timezone/zdump.c (original)
+++ fsf/trunk/libc/timezone/zdump.c Tue Mar 27 00:01:25 2007
@@ -1,4 +1,4 @@
-static char	elsieid[] = "@(#)zdump.c	8.2";
+static char	elsieid[] = "@(#)zdump.c	8.4";
 
 /*
 ** This code has been made independent of the rest of the time

Modified: fsf/trunk/libc/timezone/zic.c
==============================================================================
--- fsf/trunk/libc/timezone/zic.c (original)
+++ fsf/trunk/libc/timezone/zic.c Tue Mar 27 00:01:25 2007
@@ -3,7 +3,7 @@
 ** 2006-07-17 by Arthur David Olson.
 */
 
-static char	elsieid[] = "@(#)zic.c	8.7";
+static char	elsieid[] = "@(#)zic.c	8.11";
 
 #include "private.h"
 #include "locale.h"
@@ -2024,7 +2024,7 @@
 
 wp = ecpyalloc(_("no POSIX environment variable for zone"));
 		wp = ecatalloc(wp, " ");
-		wp = ecatalloc(wp, zpfirst->z_name); 
+		wp = ecatalloc(wp, zpfirst->z_name);
 		warning(wp);
 		ifree(wp);
 	}
@@ -2451,9 +2451,12 @@
 			else while ((*dp = *cp++) != '"')
 				if (*dp != '\0')
 					++dp;
-				else	error(_(
+				else {
+					error(_(
 						"Odd number of quotation marks"
 						));
+					exit(1);
+				}
 		} while (*cp != '\0' && *cp != '#' &&
 			(!isascii(*cp) || !isspace((unsigned char) *cp)));
 		if (isascii(*cp) && isspace((unsigned char) *cp))
@@ -2641,7 +2644,7 @@
 
 static int
 mkdirs(argname)
-char * const	argname;
+char *		argname;
 {
 	register char *	name;
 	register char *	cp;

Modified: fsf/trunk/libc/timezone/zone.tab
==============================================================================
--- fsf/trunk/libc/timezone/zone.tab (original)
+++ fsf/trunk/libc/timezone/zone.tab Tue Mar 27 00:01:25 2007
@@ -1,4 +1,4 @@
-# @(#)zone.tab	8.5
+# @(#)zone.tab	8.10
 #
 # TZ zone descriptions
 #
@@ -63,7 +63,8 @@
 AU	-2016+14900	Australia/Lindeman	Queensland - Holiday Islands
 AU	-3455+13835	Australia/Adelaide	South Australia
 AU	-1228+13050	Australia/Darwin	Northern Territory
-AU	-3157+11551	Australia/Perth	Western Australia
+AU	-3157+11551	Australia/Perth	Western Australia - most locations
+AU	-3143+12852	Australia/Eucla	Western Australia - Eucla area
 AW	+1230-06858	America/Aruba
 AX	+6006+01957	Europe/Mariehamn
 AZ	+4023+04951	Asia/Baku
@@ -109,8 +110,9 @@
 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	+6344-06828	America/Iqaluit	Eastern Time - east Nunavut - most locations
 CA	+6608-06544	America/Pangnirtung	Eastern Time - Pangnirtung, Nunavut
-CA	+6344-06828	America/Iqaluit	Eastern Time - east Nunavut
+CA	+744144-0944945	America/Resolute	Eastern Time - Resolute, Nunavut
 CA	+484531-0913718	America/Atikokan	Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut
 CA	+624900-0920459	America/Rankin_Inlet	Central Time - central Nunavut
 CA	+4953-09709	America/Winnipeg	Central Time - Manitoba & west Ontario
@@ -134,7 +136,7 @@
 CI	+0519-00402	Africa/Abidjan
 CK	-2114-15946	Pacific/Rarotonga
 CL	-3327-07040	America/Santiago	most locations
-CL	-2710-10927	Pacific/Easter	Easter Island & Sala y Gomez
+CL	-2709-10926	Pacific/Easter	Easter Island & Sala y Gomez
 CM	+0403+00942	Africa/Douala
 CN	+3114+12128	Asia/Shanghai	east China - Beijing, Guangdong, Shanghai, etc.
 CN	+4545+12641	Asia/Harbin	Heilongjiang (except Mohe), Jilin
@@ -159,7 +161,7 @@
 EE	+5925+02445	Europe/Tallinn
 EG	+3003+03115	Africa/Cairo
 EH	+2709-01312	Africa/El_Aaiun
-ER	+1520+03853	Africa/Asmera
+ER	+1520+03853	Africa/Asmara
 ES	+4024-00341	Europe/Madrid	mainland
 ES	+3553-00519	Africa/Ceuta	Ceuta & Melilla
 ES	+2806-01524	Atlantic/Canary	Canary Islands
@@ -170,7 +172,7 @@
 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
+FO	+6201-00646	Atlantic/Faroe
 FR	+4852+00220	Europe/Paris
 GA	+0023+00927	Africa/Libreville
 GB	+512830-0001845	Europe/London
@@ -212,7 +214,7 @@
 IR	+3540+05126	Asia/Tehran
 IS	+6409-02151	Atlantic/Reykjavik
 IT	+4154+01229	Europe/Rome
-JE	+4912-00237	Europe/Jersey
+JE	+4912-00207	Europe/Jersey
 JM	+1800-07648	America/Jamaica
 JO	+3157+03556	Asia/Amman
 JP	+353916+1394441	Asia/Tokyo
@@ -247,7 +249,7 @@
 MA	+3339-00735	Africa/Casablanca
 MC	+4342+00723	Europe/Monaco
 MD	+4700+02850	Europe/Chisinau
-ME	+4247+01928	Europe/Podgorica
+ME	+4226+01916	Europe/Podgorica
 MG	-1855+04731	Indian/Antananarivo
 MH	+0709+17112	Pacific/Majuro	most locations
 MH	+0905+16720	Pacific/Kwajalein	Kwajalein
@@ -378,11 +380,12 @@
 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/Indiana/Indianapolis	Eastern Time - Indiana - most locations
+US	+411745-0863730	America/Indiana/Knox	Eastern Time - Indiana - Starke County
+US	+410305-0863611	America/Indiana/Winamac	Eastern Time - Indiana - Pulaski County
 US	+382232-0862041	America/Indiana/Marengo	Eastern Time - Indiana - Crawford County
-US	+411745-0863730	America/Indiana/Knox	Eastern Time - Indiana - Starke County
 US	+384452-0850402	America/Indiana/Vevay	Eastern Time - Indiana - Switzerland County
 US	+415100-0873900	America/Chicago	Central Time
-US	+384038-0873143	America/Indiana/Vincennes	Central Time - Indiana - Daviess, Dubois, Knox, Martin, Perry & Pulaski Counties
+US	+384038-0873143	America/Indiana/Vincennes	Central Time - Indiana - Daviess, Dubois, Knox, Martin & Perry Counties
 US	+382931-0871643	America/Indiana/Petersburg	Central Time - Indiana - Pike County
 US	+450628-0873651	America/Menominee	Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties
 US	+470659-1011757	America/North_Dakota/Center	Central Time - North Dakota - Oliver County