about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-10-20 07:21:57 +0000
committerJakub Jelinek <jakub@redhat.com>2008-10-20 07:21:57 +0000
commit6d8225fe1a3277273c245ceb1b35fd536300f649 (patch)
tree2c0992e862046504ff1767f29601e35981ca4d47
parent315a43aa949b25896c511fa6e2efd6be57e2e01d (diff)
downloadglibc-6d8225fe1a3277273c245ceb1b35fd536300f649.tar.gz
glibc-6d8225fe1a3277273c245ceb1b35fd536300f649.tar.xz
glibc-6d8225fe1a3277273c245ceb1b35fd536300f649.zip
Updated to fedora-glibc-20081019T1815 cvs/fedora-glibc-2_8_90-14
-rw-r--r--ChangeLog104
-rw-r--r--NEWS6
-rw-r--r--dlfcn/dlopen.c3
-rw-r--r--elf/Makefile12
-rw-r--r--elf/dl-tls.c2
-rw-r--r--elf/elf.h13
-rw-r--r--elf/tst-tls17.c28
-rw-r--r--elf/tst-tlsmod17a.c23
-rw-r--r--elf/tst-tlsmod17b.c15
-rw-r--r--fedora/branch.mk4
-rw-r--r--fedora/glibc.spec.in20
-rw-r--r--localedata/ChangeLog43
-rw-r--r--localedata/SUPPORTED6
-rw-r--r--localedata/locales/de_DE2
-rw-r--r--localedata/locales/en_AG99
-rw-r--r--localedata/locales/en_GB6
-rw-r--r--localedata/locales/ht_HT178
-rw-r--r--localedata/locales/ks_IN@devanagari204
-rw-r--r--localedata/locales/nl_AW100
-rw-r--r--localedata/locales/sd_IN206
-rw-r--r--localedata/locales/sd_IN@devanagari206
-rw-r--r--malloc/malloc.c57
-rw-r--r--nptl/ChangeLog12
-rw-r--r--nptl/sysdeps/unix/sysv/linux/fork.c5
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h19
-rw-r--r--nscd/connections.c4
-rw-r--r--po/sv.po33
-rw-r--r--resolv/res_send.c14
-rw-r--r--socket/Makefile2
-rw-r--r--socket/Versions3
-rw-r--r--socket/sys/socket.h12
-rw-r--r--stdlib/divmod_1.c2
-rw-r--r--stdlib/longlong.h157
-rw-r--r--stdlib/mod_1.c2
-rw-r--r--sunrpc/rpc/svc.h5
-rw-r--r--sysdeps/s390/s390-64/s390x-mcount.S2
-rw-r--r--sysdeps/sparc/sparc64/sparcv9v/memcpy.S5
-rw-r--r--sysdeps/sparc/sparc64/sparcv9v/memset.S8
-rw-r--r--sysdeps/sparc/sparc64/sparcv9v2/memcpy.S5
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h71
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/socket.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/signalfd.h2
-rw-r--r--timezone/africa165
-rw-r--r--timezone/asia118
-rw-r--r--timezone/australasia6
-rw-r--r--timezone/europe97
-rw-r--r--timezone/leapseconds41
-rw-r--r--timezone/northamerica6
-rw-r--r--timezone/southamerica152
-rw-r--r--timezone/zone.tab5
52 files changed, 2119 insertions, 177 deletions
diff --git a/ChangeLog b/ChangeLog
index 8bb37744d6..b771d0faed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,109 @@
+2008-10-17  Jakub Jelinek  <jakub@redhat.com>
+
+	* elf/Makefile: Add rules to build and run tst-tls17.
+	* elf/tst-tls17.c: New test.
+	* elf/tst-tlsmod17a.c: New file.
+	* elf/tst-tlsmod17b.c: Likewise.
+
+2008-10-17  Ulrich Drepper  <drepper@redhat.com>
+
+	* stdlib/divmod_1.c: Use correct type for dummy variable.
+	* stdlib/mod_1.c: Likewise.
+
+2008-10-16  Ulrich Drepper  <drepper@redhat.com>
+
+	* elf/dl-tls.c (_dl_update_slotinfo): Copy all of the initial DTV.
+
+2008-10-16  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/unix/sysv/linux/sys/signalfd.h (signalfd): Fix __THROW vs.
+	__nonnull order for C++.
+	* sysdeps/unix/sysv/linux/alpha/sys/signalfd.h (signalfd): Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sys/signalfd.h (signalfd): Likewise.
+
+2008-10-01  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* stdlib/longlong.h: Update from GCC.
+
+2008-10-09  Jakub Jelinek <jakub@redhat.com>
+	    David S. Miller  <davem@davemloft.net>
+
+	* sysdeps/sparc/sparc64/sparcv9v/memcpy.S: When not USE_BPR,
+	make sure any registers used with 64-bit 'branch-on-register'
+	instructions have their top 32-bits clear.
+	* sysdeps/sparc/sparc64/sparcv9v/memset.S: Likewise.
+	* sysdeps/sparc/sparc64/sparcv9v2/memcpy.S: Likewise.
+
+2008-09-18  Andreas Schwab  <schwab@suse.de>
+
+	[BZ #6942]
+	* resolv/res_send.c (send_vc): Fix use of unaligned address.
+        Properly handle partial reads.
+
+2008-10-01  Mark Shinwell  <shinwell@codesourcery.com>
+
+	* elf/elf.h (STO_MIPS_PLT): New.
+	(R_MIPS_COPY): New.
+	(R_MIPS_JUMP_SLOT): New.
+	(R_MIPS_NUM): Redefine to 128.
+	(DT_MIPS_PLTGOT): New.
+	(DT_MIPS_RWPLT): New.
+	(DT_MIPS_NUM): Redefine to 0x35.
+
+2008-10-01  Ulrich Drepper  <drepper@redhat.com>
+
+	* timezone/africa: Update from tzdata2008f.
+	* timezone/asia: Likewise.
+	* timezone/australasia: Likewise.
+	* timezone/europe: Likewise.
+	* timezone/leapseconds: Likewise.
+	* timezone/northamerica: Likewise.
+	* timezone/southamerica: Likewise.
+	* timezone/zone.tab: Likewise.
+
+2008-09-30  Ulrich Drepper  <drepper@redhat.com>
+
+	* nscd/connections.c: Disable use of paccept for now.
+
+2008-09-29  Ulrich Drepper  <drepper@redhat.com>
+
+	* socket/Versions: Remove paccept export for GLIBC_2.9.
+	* socket/Makefile (routines): Remove paccept.
+	* socket/sys/socket.h: Remove paccept declaration.
+
+	* po/sv.po: Update from translation team.
+
+2008-09-22  Deborah S. Townsend  <dstownse@us.ibm.com>
+
+	* sysdeps/s390/s390-64/s390x-mcount.S: Replace ahi with aghi.
+	* sysdeps/unix/sysv/linux/s390/s390-64/socket.S: Likewise.
+
+2008-09-16  Ulrich Drepper  <drepper@redhat.com>
+
+	* dlfcn/dlopen.c (dlopen_doit): Allow __RTLD_SPROF flag.
+	Patch by Olivier Fourdan <ofourdan@redhat.com>.
+
+2008-09-15  Ulrich Drepper  <drepper@redhat.com>
+
+	* sunrpc/rpc/svc.h: Declare svcfd_create.
+	Patch by Michael Solberg <msolberg@redhat.com>.
+
+2008-09-12  Flavio Leitner  <fleitner@redhat.com>
+            Ulrich Drepper  <drepper@redhat.com>
+
+	* malloc/malloc.c (public_vALLOc): Try other arenas in case
+	_int_valloc fails.
+	(public_pVALLOc): Likewise.
+
+2008-09-02  Andreas Jaeger  <aj@suse.de>
+
+	* sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h: Fix last
+	commit.
+
 2008-08-26  Aurelien Jarno  <aurelien@aurel32.net>
 
 	[BZ #6860]
-        * hurd/hurd/signal.h (HURD_MSGPORT_RPC): Fix a typo.
+	* hurd/hurd/signal.h (HURD_MSGPORT_RPC): Fix a typo.
 
 2008-07-18  Daniel Jacobowitz  <dan@codesourcery.com>
 
diff --git a/NEWS b/NEWS
index c3ceaba42e..b17f053c00 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes.  2008-8-2
+GNU C Library NEWS -- history of user-visible changes.  2008-9-29
 Copyright (C) 1992-2007, 2008 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -23,7 +23,7 @@ Version 2.9
 * New implementation of memmem, strstr, and strcasestr which is O(n).
   Implemented by Eric Blake.
 
-* New Linux interfaces: inotify_init1, paccept, dup3, epoll_create1, pipe2
+* New Linux interfaces: inotify_init1, dup3, epoll_create1, pipe2
 
 * Implement "e" option for popen to open file descriptor with the
   close-on-exec flag set.  Implemented by Ulrich Drepper.
@@ -38,6 +38,8 @@ Version 2.9
 
 * Sorting rules for some Indian languages (Kannada, Gurumukhi, Telugu)
   Implemented by Pravin Satpute.
+
+* New locales: sd_IN, sd_IN@devanagari, ks_IN@devanagari, ht_HT, en_AG, nl_AW.
 
 Version 2.8
 
diff --git a/dlfcn/dlopen.c b/dlfcn/dlopen.c
index bffb512aa3..e93a584e81 100644
--- a/dlfcn/dlopen.c
+++ b/dlfcn/dlopen.c
@@ -60,7 +60,8 @@ dlopen_doit (void *a)
   struct dlopen_args *args = (struct dlopen_args *) a;
 
   if (args->mode & ~(RTLD_BINDING_MASK | RTLD_NOLOAD | RTLD_DEEPBIND
-		     | RTLD_GLOBAL | RTLD_LOCAL | RTLD_NODELETE))
+		     | RTLD_GLOBAL | RTLD_LOCAL | RTLD_NODELETE
+		     | __RTLD_SPROF))
     GLRO(dl_signal_error) (0, NULL, NULL, _("invalid mode parameter"));
 
   args->new = GLRO(dl_open) (args->file ?: "", args->mode | __RTLD_DLOPEN,
diff --git a/elf/Makefile b/elf/Makefile
index c25a0c4b26..df3170c626 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -166,7 +166,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
 	 restest2 next dblload dblunload reldep5 reldep6 reldep7 reldep8 \
 	 circleload1 tst-tls3 tst-tls4 tst-tls5 tst-tls6 tst-tls7 tst-tls8 \
 	 tst-tls10 tst-tls11 tst-tls12 tst-tls13 tst-tls14 tst-tls15 \
-	 tst-tls16 tst-tls-dlinfo \
+	 tst-tls16 tst-tls17 tst-tls-dlinfo \
 	 tst-align tst-align2 $(tests-execstack-$(have-z-execstack)) \
 	 tst-dlmodcount tst-dlopenrpath tst-deep1 \
 	 tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \
@@ -181,6 +181,7 @@ ifeq (yesyes,$(have-fpie)$(build-shared))
 tests: $(objpfx)tst-pie1.out
 endif
 tests: $(objpfx)tst-leaks1-mem
+tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
 		testobj1_1 failobj constload2 constload3 unloadmod \
 		dep1 dep2 dep3 dep4 vismod1 vismod2 vismod3 \
@@ -200,6 +201,8 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
 		tst-tlsmod9 tst-tlsmod10 tst-tlsmod11 tst-tlsmod12 \
 		tst-tlsmod13 tst-tlsmod13a tst-tlsmod14a tst-tlsmod14b \
 		tst-tlsmod15a tst-tlsmod15b tst-tlsmod16a tst-tlsmod16b \
+		$(patsubst %,tst-tlsmod17a%,$(tlsmod17a-suffixes)) \
+		tst-tlsmod17b \
 		circlemod1 circlemod1a circlemod2 circlemod2a \
 		circlemod3 circlemod3a \
 		reldep8mod1 reldep8mod2 reldep8mod3 \
@@ -714,6 +717,13 @@ $(objpfx)tst-tls-dlinfo.out: $(objpfx)tst-tlsmod2.so
 $(objpfx)tst-tls16: $(libdl)
 $(objpfx)tst-tls16.out: $(objpfx)tst-tlsmod16a.so $(objpfx)tst-tlsmod16b.so
 
+$(objpfx)tst-tls17: $(libdl)
+$(objpfx)tst-tls17.out: $(objpfx)tst-tlsmod17b.so
+$(patsubst %,$(objpfx)tst-tlsmod17a%.os,$(tlsmod17a-suffixes)): $(objpfx)tst-tlsmod17a%.os : tst-tlsmod17a.c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ -DN=$* -DNOT_IN_libc=1 $<
+$(patsubst %,$(objpfx)tst-tlsmod17a%.so,$(tlsmod17a-suffixes)): $(objpfx)tst-tlsmod17a%.so: $(objpfx)ld.so
+$(objpfx)tst-tlsmod17b.so: $(patsubst %,$(objpfx)tst-tlsmod17a%.so,$(tlsmod17a-suffixes))
+
 CFLAGS-tst-align.c = $(stack-align-test-flags)
 CFLAGS-tst-align2.c = $(stack-align-test-flags)
 CFLAGS-tst-alignmod.c = $(stack-align-test-flags)
diff --git a/elf/dl-tls.c b/elf/dl-tls.c
index 54c3590a9d..e234a0a82a 100644
--- a/elf/dl-tls.c
+++ b/elf/dl-tls.c
@@ -634,7 +634,7 @@ _dl_update_slotinfo (unsigned long int req_modid)
 		      newp = malloc ((2 + newsize) * sizeof (dtv_t));
 		      if (newp == NULL)
 			oom ();
-		      memcpy (newp, &dtv[-1], oldsize * sizeof (dtv_t));
+		      memcpy (newp, &dtv[-1], (2 + oldsize) * sizeof (dtv_t));
 		    }
 		  else
 		    {
diff --git a/elf/elf.h b/elf/elf.h
index a4134462ac..51d4e6cca7 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -1397,6 +1397,7 @@ typedef struct
 #define STO_MIPS_INTERNAL		0x1
 #define STO_MIPS_HIDDEN			0x2
 #define STO_MIPS_PROTECTED		0x3
+#define STO_MIPS_PLT			0x8
 #define STO_MIPS_SC_ALIGN_UNUSED	0xff
 
 /* MIPS specific values for `st_info'.  */
@@ -1543,8 +1544,10 @@ typedef struct
 #define R_MIPS_TLS_TPREL_HI16	49	/* TP-relative offset, high 16 bits */
 #define R_MIPS_TLS_TPREL_LO16	50	/* TP-relative offset, low 16 bits */
 #define R_MIPS_GLOB_DAT		51
+#define R_MIPS_COPY		126
+#define R_MIPS_JUMP_SLOT        127
 /* Keep this the last entry.  */
-#define R_MIPS_NUM		52
+#define R_MIPS_NUM		128
 
 /* Legal values for p_type field of Elf32_Phdr.  */
 
@@ -1610,7 +1613,13 @@ typedef struct
 #define DT_MIPS_COMPACT_SIZE 0x7000002f /* (O32)Size of compact rel section. */
 #define DT_MIPS_GP_VALUE     0x70000030 /* GP value for aux GOTs.  */
 #define DT_MIPS_AUX_DYNAMIC  0x70000031 /* Address of aux .dynamic.  */
-#define DT_MIPS_NUM	     0x32
+/* The address of .got.plt in an executable using the new non-PIC ABI.  */
+#define DT_MIPS_PLTGOT	     0x70000032
+/* The base of the PLT in an executable using the new non-PIC ABI if that
+   PLT is writable.  For a non-writable PLT, this is omitted or has a zero
+   value.  */
+#define DT_MIPS_RWPLT        0x70000034
+#define DT_MIPS_NUM	     0x35
 
 /* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry.  */
 
diff --git a/elf/tst-tls17.c b/elf/tst-tls17.c
new file mode 100644
index 0000000000..c768fb6a5b
--- /dev/null
+++ b/elf/tst-tls17.c
@@ -0,0 +1,28 @@
+#include <dlfcn.h>
+#include <stdio.h>
+
+static int
+do_test (void)
+{
+  void *h = dlopen ("tst-tlsmod17b.so", RTLD_LAZY);
+  if (h == NULL)
+    {
+      puts ("unexpectedly failed to open tst-tlsmod17b.so");
+      exit (1);
+    }
+
+  int (*fp) (void) = (int (*) (void)) dlsym (h, "tlsmod17b");
+  if (fp == NULL)
+    {
+      puts ("cannot find tlsmod17b");
+      exit (1);
+    }
+
+  if (fp ())
+    exit (1);
+
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/elf/tst-tlsmod17a.c b/elf/tst-tlsmod17a.c
new file mode 100644
index 0000000000..24c84a1590
--- /dev/null
+++ b/elf/tst-tlsmod17a.c
@@ -0,0 +1,23 @@
+#include <stdio.h>
+
+#ifndef N
+#define N 0
+#endif
+#define CONCAT1(s, n) s##n
+#define CONCAT(s, n) CONCAT1(s, n)
+
+__thread int CONCAT (v, N) = 4;
+
+int
+CONCAT (tlsmod17a, N) (void)
+{
+  int *p = &CONCAT (v, N);
+  /* GCC assumes &var is never NULL, add optimization barrier.  */
+  asm volatile ("" : "+r" (p));
+  if (p == NULL || *p != 4)
+    {
+      printf ("fail %d %p\n", N, p);
+      return 1;
+    }
+  return 0;
+}
diff --git a/elf/tst-tlsmod17b.c b/elf/tst-tlsmod17b.c
new file mode 100644
index 0000000000..6178828737
--- /dev/null
+++ b/elf/tst-tlsmod17b.c
@@ -0,0 +1,15 @@
+#define P(N) extern int tlsmod17a##N (void);
+#define PS P(0) P(1) P(2) P(3) P(4) P(5) P(6) P(7) P(8) P(9) \
+	   P(10) P(12) P(13) P(14) P(15) P(16) P(17) P(18) P(19)
+PS
+#undef P
+
+int
+tlsmod17b (void)
+{
+  int res = 0;
+#define P(N) res |= tlsmod17a##N ();
+  PS
+#undef P
+  return res;
+}
diff --git a/fedora/branch.mk b/fedora/branch.mk
index dd9d94907e..0f773217de 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -3,5 +3,5 @@ glibc-branch := fedora
 glibc-base := HEAD
 DIST_BRANCH := devel
 COLLECTION := dist-f8
-fedora-sync-date := 2008-08-28 16:23 UTC
-fedora-sync-tag := fedora-glibc-20080828T1623
+fedora-sync-date := 2008-10-19 18:15 UTC
+fedora-sync-tag := fedora-glibc-20081019T1815
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index 85ed84d256..291854f728 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -19,7 +19,7 @@
 Summary: The GNU libc libraries
 Name: glibc
 Version: @glibcversion@
-Release: 12
+Release: 14
 # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
 # Things that are linked directly into dynamically linked programs
 # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
@@ -221,6 +221,12 @@ package or when debugging this package.
 # memmove. The memcpy implementation below is not tolerant at
 # all.
 rm -f sysdeps/alpha/alphaev6/memcpy.S
+%if %{buildpower6}
+# On powerpc32, hp timing is only available in power4/power6
+# libs, not in base, so pre-power4 dynamic linker is incompatible
+# with power6 libs.
+rm -f sysdeps/powerpc/powerpc32/power4/hp-timing.[ch]
+%endif
 
 find . -type f -size 0 -o -name "*.orig" -exec rm -f {} \;
 cat > find_provides.sh <<EOF
@@ -976,6 +982,18 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Sun Oct 19 2008 Jakub Jelinek <jakub@redhat.com> 2.8.90-14
+- update from trunk
+  - fix dynamic TLS handling (#467309)
+  - fix sys/signalfd.h for C++ (#467172)
+  - fix sprof (#458861)
+  - fix _mcount and socket syscalls on s390x (#464146)
+  - try harder to allocate memory in valloc and pvalloc (#461481)
+- fix power6 32-bit libs (#467311)
+
+* Fri Oct 10 2008 Dennis Gilmore <dennis@ausil.us> 2.8.90-13
+- apply sparcv9v memset patch from jakub and davem
+
 * Fri Aug 29 2008 Jakub Jelinek <jakub@redhat.com> 2.8.90-12
 - update from trunk
   - revert origin changes (#457849)
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 2bc9e89975..9e09641efe 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,8 +1,49 @@
+2008-09-17  Ulrich Drepper  <drepper@redhat.com>
+
+	* locales/en_GB: Set first weekday and workday to 2.
+
+2008-09-16  Ulrich Drepper  <drepper@redhat.com>
+
+	* locales/nl_AW: New file.
+	* SUPPORTED (SUPPORTED-LOCALES): Add nl_AW.UTF-8.
+
+	* locales/en_AG: New file.
+	* SUPPORTED (SUPPORTED-LOCALES): Add en_AG.UTF-8.
+
+2008-09-15  Ulrich Drepper  <drepper@redhat.com>
+
+	* locales/ht_HT: New file.
+	* SUPPORTED: Add ht_HT.UTF-8.
+
+	* locales/en_GB: Change dom_tel_fmt to %A %l.
+	* locales/de_DE: Likewise.
+
+	* SUPPORTED (SUPPORTED-LOCALES): Add sd_IN.
+
+	* locales/sd_IN: New file.
+	Contributed by Pravin Satpute <psatpute@redhat.com>.
+
+	* locales/sd_IN@devanagari: Fix locale name.
+	* locales/ks_IN@devanagari: Likewise.
+
+2008-09-01  Ulrich Drepper  <drepper@redhat.com>
+
+	* SUPPORTED (SUPPORTED-LOCALES): Add ks_IN@devnagari and
+	sd_IN@devanagari.
+
+	[BZ #6857]
+	* locales/sd_IN@devanagari: New file.
+	Contributed by Pravin Satpute <psatpute@redhat.com>.
+
+	[BZ #6856]
+	* locales/ks_IN@devanagari: New file.
+	Contributed by Pravin Satpute <psatpute@redhat.com>.
+
 2008-07-11  Ulrich Drepper  <drepper@redhat.com>
 
 	* locales/iso14651_t1_common: Add Kannada collation support.
 	Patch by Pravin Satpute <psatpute@redhat.com>.
-	
+
 2008-07-08  Ulrich Drepper  <drepper@redhat.com>
 
 	[BZ #6713]
diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
index d6d684e6d0..787d03f1cf 100644
--- a/localedata/SUPPORTED
+++ b/localedata/SUPPORTED
@@ -104,6 +104,7 @@ el_GR.UTF-8/UTF-8 \
 el_GR/ISO-8859-7 \
 el_CY.UTF-8/UTF-8 \
 el_CY/ISO-8859-7 \
+en_AG/UTF-8 \
 en_AU.UTF-8/UTF-8 \
 en_AU/ISO-8859-1 \
 en_BW.UTF-8/UTF-8 \
@@ -228,6 +229,7 @@ hr_HR.UTF-8/UTF-8 \
 hr_HR/ISO-8859-2 \
 hsb_DE/ISO-8859-2 \
 hsb_DE.UTF-8/UTF-8 \
+ht_HT/UTF-8 \
 hu_HU.UTF-8/UTF-8 \
 hu_HU/ISO-8859-2 \
 hy_AM/UTF-8 \
@@ -258,6 +260,7 @@ km_KH/UTF-8 \
 kn_IN/UTF-8 \
 ko_KR.EUC-KR/EUC-KR \
 ko_KR.UTF-8/UTF-8 \
+ks_IN@devanagari/UTF-8 \
 ku_TR.UTF-8/UTF-8 \
 ku_TR/ISO-8859-9 \
 kw_GB.UTF-8/UTF-8 \
@@ -291,6 +294,7 @@ nb_NO/ISO-8859-1 \
 nds_DE/UTF-8 \
 nds_NL/UTF-8 \
 ne_NP/UTF-8 \
+nl_AW/UTF-8 \
 nl_BE.UTF-8/UTF-8 \
 nl_BE/ISO-8859-1 \
 nl_BE@euro/ISO-8859-15 \
@@ -329,6 +333,8 @@ ru_UA/KOI8-U \
 rw_RW/UTF-8 \
 sa_IN/UTF-8 \
 sc_IT/UTF-8 \
+sd_IN/UTF-8 \
+sd_IN@devanagari/UTF-8 \
 se_NO/UTF-8 \
 shs_CA/UTF-8 \
 si_LK/UTF-8 \
diff --git a/localedata/locales/de_DE b/localedata/locales/de_DE
index a694dc2888..a40facc850 100644
--- a/localedata/locales/de_DE
+++ b/localedata/locales/de_DE
@@ -203,7 +203,7 @@ END LC_ADDRESS
 LC_TELEPHONE
 tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
 <U006C>"
-tel_dom_fmt    "<U0025><U0061><U0020><U0025><U006C>"
+tel_dom_fmt    "<U0025><U0041><U0020><U0025><U006C>"
 int_select     "<U0030><U0030>"
 int_prefix     "<U0034><U0039>"
 END LC_TELEPHONE
diff --git a/localedata/locales/en_AG b/localedata/locales/en_AG
new file mode 100644
index 0000000000..f39c410acb
--- /dev/null
+++ b/localedata/locales/en_AG
@@ -0,0 +1,99 @@
+escape_char /
+comment_char %
+% English language locale for Antigua and Barbuda.
+% Contributed by Ulrich Drepper <drepper@redhat.com>, 2008
+
+LC_IDENTIFICATION
+title      "English language locale for Antigua and Barbuda"
+source     "Free Software Foundation, Inc."
+address    "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA"
+contact    ""
+email      "bug-glibc-locales@gnu.org"
+tel        ""
+fax        ""
+language   "English"
+territory  "Antigua and Barbuda"
+revision   "1.0"
+date       "2008-09-16"
+%
+category  "en_AG:2008";LC_IDENTIFICATION
+category  "en_AG:2008";LC_CTYPE
+category  "en_AG:2008";LC_COLLATE
+category  "en_AG:2008";LC_TIME
+category  "en_AG:2008";LC_NUMERIC
+category  "en_AG:2008";LC_MONETARY
+category  "en_AG:2008";LC_MESSAGES
+category  "en_AG:2008";LC_PAPER
+category  "en_AG:2008";LC_NAME
+category  "en_AG:2008";LC_ADDRESS
+category  "en_AG:2008";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "en_GB"
+END LC_CTYPE
+
+LC_COLLATE
+copy "en_GB"
+END LC_COLLATE
+
+LC_MONETARY
+int_curr_symbol     "<U0058><U0043><U0044><U0020>"
+currency_symbol     "<U0024>"
+mon_decimal_point   "<U002E>"
+mon_thousands_sep   "<U002C>"
+mon_grouping        3;3
+positive_sign       ""
+negative_sign       "<U002D>"
+int_frac_digits     2
+frac_digits         2
+p_cs_precedes       1
+p_sep_by_space      0
+n_cs_precedes       1
+n_sep_by_space      0
+p_sign_posn         1
+n_sign_posn         1
+END LC_MONETARY
+
+LC_NUMERIC
+copy "en_GB"
+END LC_NUMERIC
+
+LC_TIME
+copy "en_GB"
+END LC_TIME
+
+LC_MESSAGES
+copy "en_GB"
+END LC_MESSAGES
+
+LC_PAPER
+copy "en_US"
+END LC_PAPER
+
+LC_NAME
+copy "en_GB"
+END LC_NAME
+
+LC_ADDRESS
+postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_ab2   "<U0041><U0047>"
+country_ab3   "<U0041><U0054><U0047>"
+country_num   28
+END LC_ADDRESS
+
+LC_TELEPHONE
+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
+<U006C>"
+int_prefix     "<U0031>"
+int_select     "<U0030><U0031><U0031>"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "en_US"
+END LC_MEASUREMENT
diff --git a/localedata/locales/en_GB b/localedata/locales/en_GB
index d984f42ca8..e12f887548 100644
--- a/localedata/locales/en_GB
+++ b/localedata/locales/en_GB
@@ -122,8 +122,8 @@ date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
 <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
 <U0025><U005A><U0020><U0025><U0059>"
 week    7;19971201;4
-first_weekday 1
-first_workday 1
+first_weekday 2
+first_workday 2
 END LC_TIME
 
 LC_MESSAGES
@@ -139,7 +139,7 @@ END LC_PAPER
 LC_TELEPHONE
 tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
 <U006C>"
-tel_dom_fmt    "<U0025><U0061><U0020><U0025><U006C>"
+tel_dom_fmt    "<U0025><U0041><U0020><U0025><U006C>"
 int_select     "<U0030><U0030>"
 int_prefix     "<U0034><U0034>"
 END LC_TELEPHONE
diff --git a/localedata/locales/ht_HT b/localedata/locales/ht_HT
new file mode 100644
index 0000000000..37ba0a56b7
--- /dev/null
+++ b/localedata/locales/ht_HT
@@ -0,0 +1,178 @@
+comment_char %
+escape_char  /
+%
+% U006Breyol Language Locale for Haiti
+% Source: OLPC
+% Language: ht
+% Contact: olpchaiti.org
+% Address: 22 rue 2, Port-au-Prince
+% Email: contact@olpchaiti.org
+% Territory: HT
+% Revision: 1.0
+% Date: 2008-08-17
+% Users: general
+% Charset: ISO-8859-1
+% Authors:
+% 2008-08-17, bzg@laptop.org
+%
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_IDENTIFICATION
+title      "Kreyol locale for Haiti"
+source     "OLPC"
+address    ""
+contact    "olpchaiti.org"
+email      "contact@olpchaiti.org"
+tel        ""
+fax        ""
+language   "U006Breyol"
+territory  "Haiti"
+revision   "1.0"
+date       "2008-08-17"
+%
+category  "ht_HT:2000";LC_IDENTIFICATION
+category  "ht_HT:2000";LC_CTYPE
+category  "ht_HT:2000";LC_COLLATE
+category  "ht_HT:2000";LC_TIME
+category  "ht_HT:2000";LC_NUMERIC
+category  "ht_HT:2000";LC_MONETARY
+category  "ht_HT:2000";LC_MESSAGES
+category  "ht_HT:2000";LC_PAPER
+category  "ht_HT:2000";LC_NAME
+category  "ht_HT:2000";LC_ADDRESS
+category  "ht_HT:2000";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "i18n"
+
+translit_start
+
+% In Haiti, accents are simply omitted if they cannot be represented.
+include "translit_combining";""
+
+translit_end
+
+END LC_CTYPE
+
+LC_COLLATE
+% Copy the template from ISO/IEC 14651
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U006F><U006F><U0079><U0079><U005D><U002E><U002A>"
+noexpr  "<U005E><U005B><U006E><U006E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_MONETARY
+int_curr_symbol           "<U0048><U0054><U0047><U0020>"
+currency_symbol           "<U0067>"
+mon_decimal_point         "<U002C>"
+mon_thousands_sep         "<U0020>"
+mon_grouping              3
+positive_sign             ""
+negative_sign             "<U002D>"
+int_frac_digits           2
+frac_digits               2
+p_cs_precedes             0
+p_sep_by_space            1
+n_cs_precedes             0
+n_sep_by_space            1
+p_sign_posn               1
+n_sign_posn               1
+END LC_MONETARY
+
+LC_NUMERIC
+decimal_point             "<U002C>"
+thousands_sep             "<U0020>"
+grouping                  3
+END LC_NUMERIC
+
+LC_TIME
+abday   "<U0064><U0069><U006D><U002E>";/
+        "<U006C><U0045><U006E><U002E>";/
+        "<U006D><U0061><U0064><U002E>";/
+        "<U006D><U00E8><U006B><U002E>";/
+        "<U006A><U0045><U0064><U002E>";/
+        "<U0076><U0061><U006E><U002E>";/
+        "<U0073><U0061><U006D><U002E>"
+day     "<U0064><U0069><U006D><U0061><U006E><U0063><U0068>";/
+        "<U006C><U0045><U006E><U0064><U0069>";/
+        "<U006D><U0061><U0064><U0069>";/
+        "<U006D><U00E8><U006B><U0052><U0045><U0064><U0069>";/
+        "<U006A><U0045><U0064><U0069>";/
+        "<U0076><U0061><U006E><U0064><U0052><U0045><U0064><U0069>";/
+        "<U0073><U0061><U006D><U0064><U0069>"
+abmon   "<U006A><U0061><U006E><U0076><U002E>";/
+        "<U0066><U0045><U0076><U0052><U002E>";/
+        "<U006D><U0061><U0073>";/
+        "<U0061><U0076><U0052><U0069><U006C>";/
+        "<U006D><U0045>";/
+        "<U006A><U0045><U006E>";/
+        "<U006A><U0069><U0079><U00E8><U002E>";/
+        "<U006F><U0055><U0074>";/
+        "<U0073><U0045><U0070><U0074><U002E>";/
+        "<U006F><U006B><U0074><U002E>";/
+        "<U006E><U006F><U0076><U002E>";/
+        "<U0064><U0045><U0073><U002E>"
+mon     "<U006A><U0061><U006E><U0076><U0079><U0045>";/
+        "<U0066><U0045><U0076><U0052><U0069><U0079><U0045>";/
+        "<U006D><U0061><U0073>";/
+        "<U0061><U0076><U0052><U0069><U006C>";/
+        "<U006D><U0045>";/
+        "<U006A><U0045><U006E>";/
+        "<U006A><U0069><U0079><U00E8>";/
+        "<U006F><U0055><U0074>";/
+        "<U0073><U0045><U0070><U0074><U0061><U006E><U006D>";/
+        "<U006F><U0063><U0074><U006F><U0062><U0052><U0045>";/
+        "<U006E><U006F><U0076><U0061><U006E><U006D>";/
+        "<U0064><U0045><U0073><U0061><U006E><U006D>"
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0079><U0020><U0025><U0074><U0020><U0025><U005A>"
+d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+t_fmt   "<U0025><U0074>"
+am_pm   "";""
+t_fmt_ampm ""
+date_fmt       "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0045>/
+<U0020><U0025><U0068><U003A><U0025><U006D><U003A><U0025><U0073><U0020>/
+<U0025><U005A><U0020><U0025><U0079>"
+
+week    7;19971201;4
+first_weekday 1
+first_workday 1
+END LC_TIME
+
+LC_PAPER
+height   297
+width    210
+END LC_PAPER
+
+LC_TELEPHONE
+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
+<U006C>"
+tel_dom_fmt    "<U0025><U0061><U0020><U0025><U006C>"
+int_prefix     "<U0035><U0030><U0039>"
+int_select     "<U0030><U0030>"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+measurement    1
+END LC_MEASUREMENT
+
+LC_NAME
+name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+<U0025><U006D><U0025><U0074><U0025><U0066>"
+END LC_NAME
+
+LC_ADDRESS
+postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0052><U0025>/
+<U004E><U0025><U0025><U005A><U0020><U0025><U0074><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_ab2 "<U0068><U0074>"
+country_ab3 "<U0068><U0074><U0069>"
+%country_num 332
+END LC_ADDRESS
diff --git a/localedata/locales/ks_IN@devanagari b/localedata/locales/ks_IN@devanagari
new file mode 100644
index 0000000000..2e55de75bf
--- /dev/null
+++ b/localedata/locales/ks_IN@devanagari
@@ -0,0 +1,204 @@
+comment_char    %
+escape_char     /
+% Kashmiri language locale for India.
+% Contributed by Rakesh Pandit <rakesh.pandit@gmail.com> and 
+% Pravin Satpute <psatpute@redhat.com>
+
+LC_IDENTIFICATION
+title      "Kashmiri language locale for India"
+source     ""
+address    ""
+contact    ""
+email      "ks-gnome-trans-commits@lists.code.indlinux.net"
+tel        ""
+fax        ""
+language   "Kashmiri"
+territory  "India"
+revision   "0.1"
+date       "2008-08-26"
+%
+category  "ks_IN@devanagari:2008";LC_IDENTIFICATION
+category  "ks_IN@devanagari:2008";LC_CTYPE
+category  "ks_IN@devanagari:2008";LC_COLLATE
+category  "ks_IN@devanagari:2008";LC_TIME
+category  "ks_IN@devanagari:2008";LC_NUMERIC
+category  "ks_IN@devanagari:2008";LC_MONETARY
+category  "ks_IN@devanagari:2008";LC_MESSAGES
+category  "ks_IN@devanagari:2008";LC_PAPER
+category  "ks_IN@devanagari:2008";LC_NAME
+category  "ks_IN@devanagari:2008";LC_ADDRESS
+category  "ks_IN@devanagari:2008";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
+END LC_CTYPE
+
+LC_COLLATE
+
+% Copy the template from ISO/IEC 14651
+copy "iso14651_t1"
+
+END LC_COLLATE
+
+LC_MONETARY
+% This is the POSIX Locale definition the LC_MONETARY category.
+% These are generated based on XML base Locale difintion file
+% for IBM Class for Unicode/Java
+%
+int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+currency_symbol       "<U0930><U0942>"
+mon_decimal_point     "<U002E>"
+mon_thousands_sep     "<U002C>"
+mon_grouping          3
+positive_sign         ""
+negative_sign         "<U002D>"
+int_frac_digits       2
+frac_digits           2
+p_cs_precedes         1
+p_sep_by_space        1
+n_cs_precedes         1
+n_sep_by_space        1
+p_sign_posn           1
+n_sign_posn           1
+%
+END LC_MONETARY
+
+
+LC_NUMERIC
+% This is the POSIX Locale definition for the LC_NUMERIC  category.
+%
+decimal_point          "<U002E>"
+thousands_sep          "<U002C>"
+grouping               3
+%
+END LC_NUMERIC
+
+
+LC_TIME
+% This is the POSIX Locale definition for the LC_TIME category.
+% These are generated based on XML base Locale difintion file
+% for IBM Class for Unicode/Java
+%
+% Abbreviated weekday names (%a)
+abday       "<U0906><U0925><U094D>";/
+            "<U091A><U0928><U094D><U0926><U0930><U094D>";/
+  	    "<U092C><U094B><U092E><U094D>";/
+            "<U092C><U094B><U0918>";/
+            "<U092C><U094D><U0930><U0938><U094D><U094D>";/
+            "<U091C><U0941><U092E>";/
+            "<U092C><U091F>"
+%
+% Full weekday names (%A)
+day         "<U0906><U0925><U094D><U094D><U0935><U093E><U0930><U094D>";/
+            "<U091A><U0928><U094D><U0926><U094D><U0930><U0935><U093E><U0930><U094D>";/
+            "<U092C><U094B><U092E><U094D><U0935><U093E><U0930><U0940><U094D>";/
+            "<U092C><U094B><U0918><U0935><U093E><U0930><U0940><U094D>";/
+            "<U092C><U094D><U0930><U0938><U094D><U094D><U0935><U093E><U0930><U094D>";/
+            "<U091C><U0941><U092E><U093E><U0939><U094D>";/
+            "<U092C><U091F><U0935><U093E><U0930><U094D>"
+%
+% Abbreviated month names (%b)
+abmon       "<U091C><U0928><U0935><U0930><U0940>";/
+            "<U092B><U093C><U0930><U0935><U0930><U0940>";/
+            "<U092E><U093E><U0930><U094D><U091A>";/
+            "<U0905><U092A><U094D><U0930><U0947><U0932>";/
+            "<U092E><U0908>";"<U091C><U0942><U0928>";/
+            "<U091C><U0941><U0932><U093E><U0908>";/
+            "<U0905><U0917><U0938><U094D><U0924>";/
+            "<U0938><U093F><U0924><U092E><U094D><U092C><U0930>";/
+            "<U0905><U0915><U094D><U091F><U0942><U092C><U0930>";/
+            "<U0928><U0935><U092E><U094D><U092C><U0930>";/
+            "<U0926><U093F><U0938><U092E><U094D><U092C><U0930>"
+%
+% Full month names (%B)
+mon         "<U091C><U0928><U0935><U0930><U0940>";/
+            "<U092B><U093C><U0930><U0935><U0930><U0940>";/
+            "<U092E><U093E><U0930><U094D><U091A>";/
+            "<U0905><U092A><U094D><U0930><U0947><U0932>";/
+            "<U092E><U0908>";"<U091C><U0942><U0928>";/
+            "<U091C><U0941><U0932><U093E><U0908>";/
+            "<U0905><U0917><U0938><U094D><U0924>";/
+            "<U0938><U093F><U0924><U092E><U094D><U092C><U0930>";/
+            "<U0905><U0915><U094D><U091F><U0942><U092C><U0930>";/
+            "<U0928><U0935><U092E><U094D><U092C><U0930>";/
+            "<U0926><U093F><U0938><U092E><U094D><U092C><U0930>"
+%
+% Equivalent of AM PM
+am_pm       "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
+            "<U0905><U092A><U0930><U093E><U0939><U094D><U0928>"
+%
+% Appropriate date and time representation
+% %A %d %b %Y%I:%M:%S  %Z
+d_t_fmt     "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059><U0020><U0025><U0049><U003A><U0025><U004D><U003A>/
+<U0025><U0053><U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+% Appropriate date representation
+% %A %d %b %Y
+d_fmt       "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059>"
+%
+% Appropriate time representation
+% %I:%M:%S  %Z
+t_fmt       "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0020><U0025><U005A>"
+%
+% Appropriate 12 h time representation (%r)
+t_fmt_ampm  "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+date_fmt       "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+%
+first_weekday 1
+END LC_TIME
+
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"
+noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+
+LC_PAPER
+copy "hi_IN"
+END LC_PAPER
+
+
+LC_NAME
+name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/
+<U0025><U0067>"
+name_gen    ""
+name_mr     "<U0936><U094D><U0930><U0940><U002E>"
+name_mrs    "<U0936><U094D><U0930><U0940><U092E><U0924><U0940><U002E>"
+name_miss   "<U0915><U0941><U092E><U093E><U0930><U0940><U002E>"
+name_ms     "<U0915><U0941><U092E><U093E><U0930><U002E>"
+
+END LC_NAME
+
+
+LC_ADDRESS
+postal_fmt  "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
+<U0025><U0062><U0025><U0065><U0025><U0072>"
+
+country_ab2 "<U0049><U004E>"
+country_ab3 "<U0049><U004E><U0044>"
+country_num 356
+END LC_ADDRESS
+
+
+LC_TELEPHONE
+copy "hi_IN"
+END LC_TELEPHONE
+
+
+LC_MEASUREMENT
+copy "hi_IN"
+END LC_MEASUREMENT
diff --git a/localedata/locales/nl_AW b/localedata/locales/nl_AW
new file mode 100644
index 0000000000..9161977f0d
--- /dev/null
+++ b/localedata/locales/nl_AW
@@ -0,0 +1,100 @@
+escape_char /
+comment_char %
+% Dutch language locale for Aruba.
+% Contributed by Ulrich Drepper <drepper@redhat.com>, 2008
+
+LC_IDENTIFICATION
+title      "Dutch language locale for Aruba"
+source     "Free Software Foundation, Inc."
+address    "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA"
+contact    ""
+email      "bug-glibc-locales@gnu.org"
+tel        ""
+fax        ""
+language   "Dutch"
+territory  "Aruba"
+revision   "1.0"
+date       "2008-09-16"
+%
+category  "nl_AW:2008";LC_IDENTIFICATION
+category  "nl_AW:2008";LC_CTYPE
+category  "nl_AW:2008";LC_COLLATE
+category  "nl_AW:2008";LC_TIME
+category  "nl_AW:2008";LC_NUMERIC
+category  "nl_AW:2008";LC_MONETARY
+category  "nl_AW:2008";LC_MESSAGES
+category  "nl_AW:2008";LC_PAPER
+category  "nl_AW:2008";LC_NAME
+category  "nl_AW:2008";LC_ADDRESS
+category  "nl_AW:2008";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "nl_NL"
+END LC_CTYPE
+
+LC_COLLATE
+copy "nl_NL"
+END LC_COLLATE
+
+LC_MONETARY
+int_curr_symbol     "<U0041><U0057><U0047><U0020>"
+currency_symbol     "<U0041><U0066><U006C><U002E>"
+mon_decimal_point   "<U002C>"
+mon_thousands_sep   "<U0020>"
+mon_grouping        3;3
+positive_sign       ""
+negative_sign       "<U002D>"
+int_frac_digits     2
+frac_digits         2
+p_cs_precedes       1
+p_sep_by_space      1
+n_cs_precedes       1
+n_sep_by_space      1
+p_sign_posn         1
+n_sign_posn         2
+END LC_MONETARY
+
+LC_NUMERIC
+copy "nl_NL"
+END LC_NUMERIC
+
+LC_TIME
+copy "nl_NL"
+END LC_TIME
+
+LC_MESSAGES
+copy "nl_NL"
+END LC_MESSAGES
+
+LC_PAPER
+copy "en_US"
+END LC_PAPER
+
+LC_NAME
+copy "nl_NL"
+END LC_NAME
+
+LC_ADDRESS
+postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_ab2   "<U0041><U0057>"
+country_ab3   "<U0041><U0042><U0057>"
+country_num   533
+END LC_ADDRESS
+
+LC_TELEPHONE
+% FIXME
+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
+<U006C>"
+int_prefix     "<U0032><U0039><U0037>"
+int_select     "<U0030><U0031><U0031>"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "en_US"
+END LC_MEASUREMENT
diff --git a/localedata/locales/sd_IN b/localedata/locales/sd_IN
new file mode 100644
index 0000000000..52f069b004
--- /dev/null
+++ b/localedata/locales/sd_IN
@@ -0,0 +1,206 @@
+comment_char    %
+escape_char     /
+% Sindhi language locale for India.
+% Contributed by Pravin Satpute <psatpute@redhat.com> and
+% DR K.P. LEKHWANI
+
+LC_IDENTIFICATION
+
+title      "Sindhi language locale for India"
+source     "Redhat, Pune"
+address    "Marisfot III, Marigold Premises, East-Wing, Kalyaninagar, Pune, India-411014"
+contact    ""
+email      "bug-glibc-locales@gnu.org"
+tel         ""
+fax         ""
+language    "Sindhi"
+territory   "India"
+revision    "1.0"
+date        "2008,September,09"
+%
+category  "sd_IN:2008";LC_IDENTIFICATION
+category  "sd_IN:2008";LC_CTYPE
+category  "sd_IN:2008";LC_COLLATE
+category  "sd_IN:2008";LC_TIME
+category  "sd_IN:2008";LC_NUMERIC
+category  "sd_IN:2008";LC_MONETARY
+category  "sd_IN:2008";LC_MESSAGES
+category  "sd_IN:2008";LC_PAPER
+category  "sd_IN:2008";LC_NAME
+category  "sd_IN:2008";LC_ADDRESS
+category  "sd_IN:2008";LC_TELEPHONE
+
+
+END LC_IDENTIFICATION
+
+
+LC_CTYPE
+copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
+END LC_CTYPE
+
+
+LC_COLLATE
+% Copy the template from ISO/IEC 14651
+copy "iso14651_t1"
+
+END LC_COLLATE
+
+
+LC_MONETARY
+% This is the POSIX Locale definition the LC_MONETARY category
+% generated by IBM Basic CountryPack Transformer.
+% These are generated based on XML base Locale defintion file
+% for IBM Class for Unicode.
+%
+int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+currency_symbol       "<U20A8>"
+mon_decimal_point     "<U002E>"
+mon_thousands_sep     "<U002C>"
+mon_grouping          3
+positive_sign         ""
+negative_sign         "<U002D>"
+int_frac_digits       2
+frac_digits           2
+p_cs_precedes         1
+p_sep_by_space        1
+n_cs_precedes         1
+n_sep_by_space        1
+p_sign_posn           1
+n_sign_posn           1
+%
+END LC_MONETARY
+
+
+LC_NUMERIC
+copy "hi_IN"
+END LC_NUMERIC
+
+
+LC_TIME
+% This is the POSIX Locale definition for the LC_TIME category
+% generated by IBM Basic CountryPack Transformer.
+% These are generated based on XML base Locale definition file
+% for IBM Class for Unicode.
+%
+% Abbreviated weekday names (%a)
+abday       "<U0622><U0631><U062A><U0648><U0627><U0631><U064F>";/
+	    "<U0633><U0648><U0645><U0631><U064F>";/
+            "<U0645><U0646><U06AF><U0644><U064F>";/
+	    "<U067B><U064F><U068C><U0631><U064F>";/
+            "<U0648><U0633><U067E><U062A>";/
+            "<U062C><U064F><U0645><U0648>";"<U0687><U0646><U0687><U0631>"
+%
+% Full weekday names (%A)
+day       "<U0622><U0631><U062A><U0648><U0627><U0631><U064F>";/
+	    "<U0633><U0648><U0645><U0631><U064F>";/
+            "<U0645><U0646><U06AF><U0644><U064F>";/
+	    "<U067B><U064F><U068C><U0631><U064F>";/
+            "<U0648><U0633><U067E><U062A>";/
+            "<U062C><U064F><U0645><U0648>";"<U0687><U0646><U0687><U0631>"
+%
+% Abbreviated month names (%b)
+abmon	    "<U062C><U0646><U0648><U0631><U064A>";/
+	    "<U0641><U0628><U0631><U0648><U0631><U064A>";/
+	    "<U0645><U0627><U0631><U0686>";/
+	    "<U0627><U067E><U0631><U064A><U0644>";/
+	    "<U0645><U064A>";/
+	    "<U062C><U0648><U0646>";/
+	    "<U062C><U0648><U0644><U0627><U0621><U0650>";/
+	    "<U0622><U06AF><U0633><U067D>";/
+	    "<U0633><U064A><U067E><U067D><U064A><U0645><U0628><U0631>";/
+	    "<U0622><U06AA><U067D><U0648><U0628><U0631>";/
+	    "<U0646><U0648><U0645><U0628><U0631>";/
+	    "<U068A><U0633><U0645><U0628><U0631>"
+%
+% Full month names (%B)
+mon	    "<U062C><U0646><U0648><U0631><U064A>";/
+	    "<U0641><U0628><U0631><U0648><U0631><U064A>";/
+	    "<U0645><U0627><U0631><U0686>";/
+	    "<U0627><U067E><U0631><U064A><U0644>";/
+	    "<U0645><U064A>";/
+	    "<U062C><U0648><U0646>";/
+	    "<U062C><U0648><U0644><U0627><U0621><U0650>";/
+	    "<U0622><U06AF><U0633><U067D>";/
+	    "<U0633><U064A><U067E><U067D><U064A><U0645><U0628><U0631>";/
+	    "<U0622><U06AA><U067D><U0648><U0628><U0631>";/
+	    "<U0646><U0648><U0645><U0628><U0631>";/
+	    "<U068A><U0633><U0645><U0628><U0631>"
+%
+% Equivalent of AM PM
+am_pm	"<U0041><U004D>";"<U0050><U004D>"
+%
+% Appropriate date and time representation
+% %A %d %b %Y%I:%M:%S  %Z
+d_t_fmt     "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059><U0020><U0025><U0049><U003A><U0025><U004D><U003A>/
+<U0025><U0053><U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+% Appropriate date representation
+% %A %d %b %Y
+d_fmt       "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059>"
+%
+% Appropriate time representation
+% %I:%M:%S  %Z
+t_fmt       "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0020><U0025><U005A>"
+%
+% Appropriate 12 h time representation (%r)
+t_fmt_ampm  "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+date_fmt       "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+END LC_TIME
+
+
+LC_MESSAGES
+copy "ar_EG"
+END LC_MESSAGES
+
+
+LC_PAPER
+copy "hi_IN"
+END LC_PAPER
+
+
+LC_NAME
+% This is the ISO_IEC TR14652 Locale definition for the LC_NAME category
+% generated by IBM Basic CountryPack Transformer.
+%
+%
+name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074><U0025><U0067>"
+name_gen    ""
+name_mr     "<U0634><U0631><U064A>"
+name_mrs    "<U0634><U0631><U064A><U0645><U062A><U064A>"
+name_miss   "<U06AA><U0645><U0627><U0631><U064A>"
+name_ms     "<U06AA><U0645><U0627><U0631>"
+
+END LC_NAME
+
+
+LC_ADDRESS
+% This is the ISO_IEC TR14652 Locale definition for the LC_ADDRESS category
+% generated by IBM Basic CountryPack Transformer.
+postal_fmt  "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073><U0025><U0062><U0025><U0065><U0025><U0072>"
+country_ab2 "<U0049><U004E>"
+country_ab3 "<U0049><U004E><U0044>"
+country_num 356
+
+END LC_ADDRESS
+
+
+LC_TELEPHONE
+copy "hi_IN"
+END LC_TELEPHONE
+
+
+LC_MEASUREMENT
+copy "hi_IN"
+END LC_MEASUREMENT
diff --git a/localedata/locales/sd_IN@devanagari b/localedata/locales/sd_IN@devanagari
new file mode 100644
index 0000000000..ce029376e6
--- /dev/null
+++ b/localedata/locales/sd_IN@devanagari
@@ -0,0 +1,206 @@
+comment_char    %
+escape_char     /
+% Sindhi language locale for India.
+% Contributed by Pravin Satpute <psatpute@redhat.com> and
+% DR K.P. LEKHWANI
+
+LC_IDENTIFICATION
+title      "Sindhi language locale for India"
+source     "Redhat, Pune"
+address    "Marisfot III, Marigold Premises, East-Wing, Kalyaninagar, Pune, India-411014"
+contact    ""
+email      "bug-glibc-locales@gnu.org"
+tel        ""
+fax        ""
+language   "Sindhi"
+territory  "India"
+revision   "1.0"
+date       "2008-08-26"
+%
+category  "sd_IN@devanagari:2008";LC_IDENTIFICATION
+category  "sd_IN@devanagari:2008";LC_CTYPE
+category  "sd_IN@devanagari:2008";LC_COLLATE
+category  "sd_IN@devanagari:2008";LC_TIME
+category  "sd_IN@devanagari:2008";LC_NUMERIC
+category  "sd_IN@devanagari:2008";LC_MONETARY
+category  "sd_IN@devanagari:2008";LC_MESSAGES
+category  "sd_IN@devanagari:2008";LC_PAPER
+category  "sd_IN@devanagari:2008";LC_NAME
+category  "sd_IN@devanagari:2008";LC_ADDRESS
+category  "sd_IN@devanagari:2008";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
+END LC_CTYPE
+
+LC_COLLATE
+
+% Copy the template from ISO/IEC 14651
+copy "iso14651_t1"
+
+END LC_COLLATE
+
+LC_MONETARY
+% This is the POSIX Locale definition the LC_MONETARY category
+% generated by IBM Basic CountryPack Transformer.
+% These are generated based on XML base Locale defintion file
+% for IBM Class for Unicode.
+%
+int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+currency_symbol       "<U0930><U0941>"
+mon_decimal_point     "<U002E>"
+mon_thousands_sep     "<U002C>"
+mon_grouping          3
+positive_sign         ""
+negative_sign         "<U002D>"
+int_frac_digits       2
+frac_digits           2
+p_cs_precedes         1
+p_sep_by_space        1
+n_cs_precedes         1
+n_sep_by_space        1
+p_sign_posn           1
+n_sign_posn           1
+%
+END LC_MONETARY
+
+
+LC_NUMERIC
+copy "hi_IN"
+END LC_NUMERIC
+
+
+LC_TIME
+% This is the POSIX Locale definition for the LC_TIME category
+% generated by IBM Basic CountryPack Transformer.
+% These are generated based on XML base Locale difintion file
+% for IBM Class for Unicode.
+%
+% Abbreviated weekday names (%a)
+abday       "<U0906><U0930><U094d><U0924><U0935><U093E><U0930><U0942>";/
+	    "<U0938><U0942><U092E><U0930><U0942>";/
+            "<U092E><U0902><U0917><U0932><U0942>";/
+	    "<U097F><U0941><U0927><U0930><U0942>";/
+            "<U0935><U093F><U0938><U094D><U092A><U0924><U093F>";/
+            "<U091C><U0941><U092E><U094B>";"<U091B><U0902><U091B><U0938>"
+%
+% Full weekday names (%A)
+day         "<U0906><U0930><U094d><U0924><U0935><U093E><U0930><U0942>";/
+	    "<U0938><U0942><U092E><U0930><U0942>";/
+            "<U092E><U0902><U0917><U0932><U0942>";/
+	    "<U097F><U0941><U0927><U0930><U0942>";/
+            "<U0935><U093F><U0938><U094D><U092A><U0924><U093F>";/
+            "<U091C><U0941><U092E><U094B>";"<U091B><U0902><U091B><U0938>"
+%
+% Abbreviated month names (%b)
+abmon	    "<U091C><U0928><U0935><U0930><U0940>";/
+	    "<U092B><U092C><U0930><U0935><U0930><U0940>";/
+	    "<U092E><U093E><U0930><U094d><U091A><U093F>";/
+	    "<U0905><U092A><U094D><U0930><U0947><U0932>";/
+	    "<U092E><U0947>";/
+	    "<U091C><U0942><U0928><U093F>";/
+	    "<U091C><U0942><U0932><U093E><U0907>";/
+	    "<U0906><U0917><U0938><U094D><U091F><U0941>";/
+	    "<U0938><U0947><U092A><U094D><U091F><U0947><U0902><U092C><U0930><U0942>";/
+	    "<U0906><U0915><U094D><U091F><U0942><U092C><U0930><U0942>";/
+	    "<U0928><U0935><U0902><U092C><U0930><U0942>";/
+	    "<U097E><U093F><U0938><U0902><U092C><U0930><U0942>"
+%
+% Full month names (%B)
+mon	    "<U091C><U0928><U0935><U0930><U0940>";/
+	    "<U092B><U092C><U0930><U0935><U0930><U0940>";/
+	    "<U092E><U093E><U0930><U094d><U091A><U093F>";/
+	    "<U0905><U092A><U094D><U0930><U0947><U0932>";/
+	    "<U092E><U0947>";/
+	    "<U091C><U0942><U0928><U093F>";/
+	    "<U091C><U0942><U0932><U093E><U0907>";/
+	    "<U0906><U0917><U0938><U094D><U091F><U0941>";/
+	    "<U0938><U0947><U092A><U094D><U091F><U0947><U0902><U092C><U0930><U0942>";/
+	    "<U0906><U0915><U094D><U091F><U0942><U092C><U0930><U0942>";/
+	    "<U0928><U0935><U0902><U092C><U0930><U0942>";/
+	    "<U097E><U093F><U0938><U0902><U092C><U0930><U0942>"
+%
+% Equivalent of AM PM
+am_pm       "<U092E><U002E><U092A><U0942><U002E>";/
+            "<U092E><U002E><U0928><U0902><U002E>"
+%
+% Appropriate date and time representation
+% %A %d %b %Y%I:%M:%S  %Z
+d_t_fmt     "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059><U0020><U0025><U0049><U003A><U0025><U004D><U003A>/
+<U0025><U0053><U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+% Appropriate date representation
+% %A %d %b %Y
+d_fmt       "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059>"
+%
+% Appropriate time representation
+% %I:%M:%S  %Z
+t_fmt       "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0020><U0025><U005A>"
+%
+% Appropriate 12 h time representation (%r)
+t_fmt_ampm  "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+date_fmt       "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+END LC_TIME
+
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"
+noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+
+LC_PAPER
+copy "hi_IN"
+END LC_PAPER
+
+
+LC_NAME
+% This is the ISO_IEC TR14652 Locale definition for the LC_NAME category
+% generated by IBM Basic CountryPack Transformer.
+%
+%
+name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/
+<U0025><U0067>"
+name_gen    ""
+name_mr     "<U0936><U094D><U0930><U0940><U002E>"
+name_mrs    "<U0936><U094D><U0930><U0940><U092E><U0924><U0940><U002E>"
+name_miss   "<U0915><U0941><U092E><U093E><U0930><U0940><U002E>"
+name_ms     "<U0915><U0941><U092E><U093E><U0930><U002E>"
+
+END LC_NAME
+
+
+LC_ADDRESS
+% This is the ISO_IEC TR14652 Locale definition for the LC_ADDRESS category
+% generated by IBM Basic CountryPack Transformer.
+postal_fmt  "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
+<U0025><U0062><U0025><U0065><U0025><U0072>"
+
+country_ab2 "<U0049><U004E>"
+country_ab3 "<U0049><U004E><U0044>"
+country_num 356
+END LC_ADDRESS
+
+
+LC_TELEPHONE
+copy "hi_IN"
+END LC_TELEPHONE
+
+
+LC_MEASUREMENT
+copy "hi_IN"
+END LC_MEASUREMENT
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 7610aa444a..feca2cbea9 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -3800,17 +3800,39 @@ public_vALLOc(size_t bytes)
   if(__malloc_initialized < 0)
     ptmalloc_init ();
 
+  size_t pagesz = mp_.pagesize;
+
   __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t,
 					__const __malloc_ptr_t)) =
     __memalign_hook;
   if (hook != NULL)
-    return (*hook)(mp_.pagesize, bytes, RETURN_ADDRESS (0));
+    return (*hook)(pagesz, bytes, RETURN_ADDRESS (0));
 
-  arena_get(ar_ptr, bytes + mp_.pagesize + MINSIZE);
+  arena_get(ar_ptr, bytes + pagesz + MINSIZE);
   if(!ar_ptr)
     return 0;
   p = _int_valloc(ar_ptr, bytes);
   (void)mutex_unlock(&ar_ptr->mutex);
+  if(!p) {
+    /* Maybe the failure is due to running out of mmapped areas. */
+    if(ar_ptr != &main_arena) {
+      (void)mutex_lock(&main_arena.mutex);
+      p = _int_memalign(&main_arena, pagesz, bytes);
+      (void)mutex_unlock(&main_arena.mutex);
+    } else {
+#if USE_ARENAS
+      /* ... or sbrk() has failed and there is still a chance to mmap() */
+      ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0, bytes);
+      if(ar_ptr) {
+        p = _int_memalign(ar_ptr, pagesz, bytes);
+        (void)mutex_unlock(&ar_ptr->mutex);
+      }
+#endif
+    }
+  }
+  assert(!p || chunk_is_mmapped(mem2chunk(p)) ||
+	 ar_ptr == arena_for_chunk(mem2chunk(p)));
+
   return p;
 }
 
@@ -3823,17 +3845,40 @@ public_pVALLOc(size_t bytes)
   if(__malloc_initialized < 0)
     ptmalloc_init ();
 
+  size_t pagesz = mp_.pagesize;
+  size_t page_mask = mp_.pagesize - 1;
+  size_t rounded_bytes = (bytes + page_mask) & ~(page_mask);
+
   __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t,
 					__const __malloc_ptr_t)) =
     __memalign_hook;
   if (hook != NULL)
-    return (*hook)(mp_.pagesize,
-		   (bytes + mp_.pagesize - 1) & ~(mp_.pagesize - 1),
-		   RETURN_ADDRESS (0));
+    return (*hook)(pagesz, rounded_bytes, RETURN_ADDRESS (0));
 
-  arena_get(ar_ptr, bytes + 2*mp_.pagesize + MINSIZE);
+  arena_get(ar_ptr, bytes + 2*pagesz + MINSIZE);
   p = _int_pvalloc(ar_ptr, bytes);
   (void)mutex_unlock(&ar_ptr->mutex);
+  if(!p) {
+    /* Maybe the failure is due to running out of mmapped areas. */
+    if(ar_ptr != &main_arena) {
+      (void)mutex_lock(&main_arena.mutex);
+      p = _int_memalign(&main_arena, pagesz, rounded_bytes);
+      (void)mutex_unlock(&main_arena.mutex);
+    } else {
+#if USE_ARENAS
+      /* ... or sbrk() has failed and there is still a chance to mmap() */
+      ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0,
+			  bytes + 2*pagesz + MINSIZE);
+      if(ar_ptr) {
+        p = _int_memalign(ar_ptr, pagesz, rounded_bytes);
+        (void)mutex_unlock(&ar_ptr->mutex);
+      }
+#endif
+    }
+  }
+  assert(!p || chunk_is_mmapped(mem2chunk(p)) ||
+	 ar_ptr == arena_for_chunk(mem2chunk(p)));
+
   return p;
 }
 
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 15ee177611..af0d0c1d0c 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,15 @@
+2008-09-11  Martin Schwidefsky  <schwidefsky@de.ibm.com>
+
+	* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Add memory barrier
+	to force runp->refcntr to be read from memory.
+
+2008-09-08  Richard Guenther  <rguenther@suse.de>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
+	lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
+	lll_timedlock, lll_robust_timedlock, lll_unlock,
+	lll_robust_unlock): Promote private to int.
+
 2008-08-15  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
diff --git a/nptl/sysdeps/unix/sysv/linux/fork.c b/nptl/sysdeps/unix/sysv/linux/fork.c
index 1683de80fd..524d72c587 100644
--- a/nptl/sysdeps/unix/sysv/linux/fork.c
+++ b/nptl/sysdeps/unix/sysv/linux/fork.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2007, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -64,6 +64,9 @@ __libc_fork (void)
   struct fork_handler *runp;
   while ((runp = __fork_handlers) != NULL)
     {
+      /* Make sure we read from the current RUNP pointer.  */
+      atomic_full_barrier ();
+
       unsigned int oldval = runp->refcntr;
 
       if (oldval == 0)
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
index 8f67616af7..d53559c074 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -323,7 +323,7 @@ LLL_STUB_UNWIND_INFO_END
 			       "=m" (futex), "=&d" (ignore3) 		      \
 			     : "1" (1), "m" (futex),			      \
 			       "i" (MULTIPLE_THREADS_OFFSET), "0" (0),	      \
-			       "g" (private)				      \
+			       "g" ((int) (private))			      \
 			     : "memory");				      \
 	 }								      \
     })
@@ -345,7 +345,7 @@ LLL_STUB_UNWIND_INFO_END
 		       "18:"						      \
 		       : "=a" (result), "=c" (ignore1), "=m" (futex),	      \
 			 "=&d" (ignore2)				      \
-		       : "0" (0), "1" (id), "m" (futex), "g" (private)	      \
+		       : "0" (0), "1" (id), "m" (futex), "g" ((int) (private))\
 		       : "memory");					      \
      result; })
 
@@ -370,7 +370,7 @@ LLL_STUB_UNWIND_INFO_END
 			 "18:"						      \
 			 : "=a" (ignore1), "=c" (ignore2), "=m" (futex),      \
 			   "=&d" (ignore3)				      \
-			 : "0" (0), "1" (2), "m" (futex), "g" (private)	      \
+			 : "0" (0), "1" (2), "m" (futex), "g" ((int) (private))\
 			 : "memory");					      \
     })
 
@@ -393,7 +393,7 @@ LLL_STUB_UNWIND_INFO_END
 		       : "=a" (result), "=c" (ignore1), "=m" (futex),	      \
 			 "=&d" (ignore2)				      \
 		       : "0" (0), "1" (id | FUTEX_WAITERS), "m" (futex),      \
-			 "g" (private)					      \
+			 "g" ((int) (private))				      \
 		       : "memory");					      \
      result; })
 
@@ -416,7 +416,7 @@ LLL_STUB_UNWIND_INFO_END
 		       : "=a" (result), "=c" (ignore1), "=&d" (ignore2),      \
 			 "=m" (futex), "=S" (ignore3)			      \
 		       : "0" (0), "1" (1), "m" (futex), "m" (timeout),	      \
-			 "4" (private)					      \
+			 "4" ((int) (private))				      \
 		       : "memory");					      \
      result; })
 
@@ -439,7 +439,7 @@ LLL_STUB_UNWIND_INFO_END
 		       : "=a" (result), "=c" (ignore1), "=&d" (ignore2),      \
 			 "=m" (futex), "=S" (ignore3)			      \
 		       : "0" (0), "1" (id), "m" (futex), "m" (timeout),	      \
-			 "4" (private)					      \
+			 "4" ((int) (private))				      \
 		       : "memory");					      \
      result; })
 
@@ -489,7 +489,7 @@ LLL_STUB_UNWIND_INFO_END
 			     "18:"					      \
 			     : "=m" (futex), "=&a" (ignore), "=&c" (ignore2)  \
 			     : "i" (MULTIPLE_THREADS_OFFSET), "m" (futex),    \
-			       "g" (private)				      \
+			       "g" ((int) (private))			      \
 			     : "memory");				      \
 	 }								      \
     })
@@ -511,7 +511,8 @@ LLL_STUB_UNWIND_INFO_END
 			 LLL_STUB_UNWIND_INFO_4				      \
 			 "18:"						      \
 			 : "=m" (futex), "=&a" (ignore), "=&c" (ignore2)      \
-			 : "i" (FUTEX_WAITERS), "m" (futex), "g" (private)    \
+			 : "i" (FUTEX_WAITERS), "m" (futex),		      \
+			   "g" ((int) (private))			      \
 			 : "memory");					      \
     })
 
diff --git a/nscd/connections.c b/nscd/connections.c
index 3395e54fa1..e3a67386d0 100644
--- a/nscd/connections.c
+++ b/nscd/connections.c
@@ -239,7 +239,7 @@ static int resolv_conf_descr = -1;
    before be know the result.  */
 static int have_sock_cloexec;
 /* The paccept syscall was introduced at the same time as SOCK_CLOEXEC.  */
-# define have_paccept have_sock_cloexec
+# define have_paccept -1	// XXX For the time being there is no such call
 #endif
 
 /* Number of times clients had to wait.  */
@@ -1824,12 +1824,14 @@ main_loop_poll (void)
 	      if (have_paccept >= 0)
 #endif
 		{
+#if 0
 		  fd = TEMP_FAILURE_RETRY (paccept (sock, NULL, NULL, NULL,
 						    SOCK_NONBLOCK));
 #ifndef __ASSUME_PACCEPT
 		  if (have_paccept == 0)
 		    have_paccept = fd != -1 || errno != ENOSYS ? 1 : -1;
 #endif
+#endif
 		}
 #ifndef __ASSUME_PACCEPT
 	      if (have_paccept < 0)
diff --git a/po/sv.po b/po/sv.po
index 0d4e308115..dcbe90258d 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,13 +1,14 @@
 # GNU libc message catalog for swedish
-# Copyright © 1996, 1998, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
-# Jan Djärv <jan.h.d@swipnet.se>, 1996, 1998, 2001, 2002, 2003, 2006, 2007.
-# Revision: 1.57
+# Copyright © 1996, 1998, 2001, 2002, 2003, 2006, 2008 Free Software Foundation, Inc.
+# This file is distributed under the same license as the glibc package.
+# Jan Djärv <jan.h.d@swipnet.se>, 1996, 1998, 2001, 2002, 2003, 2006, 2007, 2008
+# Revision: 1.59
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: libc 2.7\n"
 "POT-Creation-Date: 2007-10-15 21:18-0700\n"
-"PO-Revision-Date: 2007-11-14 21:01+0100\n"
+"PO-Revision-Date: 2008-09-29 07:26+0200\n"
 "Last-Translator: Jan Djärv <jan.h.d@swipnet.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "MIME-Version: 1.0\n"
@@ -2853,7 +2854,7 @@ msgstr ""
 "\n"
 "   -?,--help              Visa denna hjälptext och avsluta\n"
 "      --usage             Visa en kort hjälptext\n"
-"   -V,--version           Visa versionsinformation och avluta\n"
+"   -V,--version           Visa versionsinformation och avsluta\n"
 "\n"
 " Följande flaggor gäller bara när grafik genereras:\n"
 "   -t,--time-based        Gör grafen linjär i tiden\n"
@@ -4328,59 +4329,59 @@ msgstr "Okänd variabel \"%s\""
 
 #: posix/getopt.c:571 posix/getopt.c:587
 #, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option `%s' is ambiguous\n"
 msgstr "%s: flaggan \"%s\" är tvetydig\n"
 
 #: posix/getopt.c:620 posix/getopt.c:624
 #, c-format
-msgid "%s: option '--%s' doesn't allow an argument\n"
+msgid "%s: option `--%s' doesn't allow an argument\n"
 msgstr "%s: flaggan \"--%s\" tar inget argument\n"
 
 #: posix/getopt.c:633 posix/getopt.c:638
 #, c-format
-msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgid "%s: option `%c%s' doesn't allow an argument\n"
 msgstr "%s: flaggan \"%c%s\" tar inget argument\n"
 
 #: posix/getopt.c:681 posix/getopt.c:700 posix/getopt.c:1016
 #: posix/getopt.c:1035
 #, c-format
-msgid "%s: option '%s' requires an argument\n"
+msgid "%s: option `%s' requires an argument\n"
 msgstr "%s: flaggan \"%s\" behöver ett argument\n"
 
 #: posix/getopt.c:738 posix/getopt.c:741
 #, c-format
-msgid "%s: unrecognized option '--%s'\n"
+msgid "%s: unrecognized option `--%s'\n"
 msgstr "%s: okänd flagga \"--%s\"\n"
 
 #: posix/getopt.c:749 posix/getopt.c:752
 #, c-format
-msgid "%s: unrecognized option '%c%s'\n"
+msgid "%s: unrecognized option `%c%s'\n"
 msgstr "%s: okänd flagga \"%c%s\"\n"
 
 #: posix/getopt.c:804 posix/getopt.c:807
 #, c-format
-msgid "%s: illegal option -- '%c'\n"
+msgid "%s: illegal option -- %c\n"
 msgstr "%s: otillåten flagga -- %c\n"
 
 #: posix/getopt.c:813 posix/getopt.c:816
 #, c-format
-msgid "%s: invalid option -- '%c'\n"
+msgid "%s: invalid option -- %c\n"
 msgstr "%s: ogiltig flagga -- %c\n"
 
 #: posix/getopt.c:868 posix/getopt.c:884 posix/getopt.c:1088
 #: posix/getopt.c:1106
 #, c-format
-msgid "%s: option requires an argument -- '%c'\n"
+msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: flaggan behöver ett argument -- %c\n"
 
 #: posix/getopt.c:937 posix/getopt.c:953
 #, c-format
-msgid "%s: option '-W %s' is ambiguous\n"
+msgid "%s: option `-W %s' is ambiguous\n"
 msgstr "%s: flaggan \"-W %s\" är tvetydig\n"
 
 #: posix/getopt.c:977 posix/getopt.c:995
 #, c-format
-msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgid "%s: option `-W %s' doesn't allow an argument\n"
 msgstr "%s: flaggan \"-W %s\" tar inget argument\n"
 
 #: posix/regcomp.c:135
diff --git a/resolv/res_send.c b/resolv/res_send.c
index 3130f64281..59cdc214e2 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -734,11 +734,11 @@ send_vc(res_state statp,
 	 */
 	int recvresp1 = 0;
 	int recvresp2 = buf2 == NULL;
- read_len:
-	cp = ans;
 	uint16_t rlen16;
+ read_len:
+	cp = (u_char *)&rlen16;
 	len = sizeof(rlen16);
-	while ((n = TEMP_FAILURE_RETRY (read(statp->_vcsock, &rlen16,
+	while ((n = TEMP_FAILURE_RETRY (read(statp->_vcsock, cp,
 					     (int)len))) > 0) {
 		cp += n;
 		if ((len -= n) <= 0)
@@ -778,8 +778,16 @@ send_vc(res_state statp,
 			/* No buffer allocated for the first
 			   reply.  We can try to use the rest
 			   of the user-provided buffer.  */
+#ifdef _STRING_ARCH_unaligned
 			*anssizp2 = orig_anssizp - resplen;
 			*ansp2 = *ansp + resplen;
+#else
+			int aligned_resplen
+			  = ((resplen + __alignof__ (HEADER) - 1)
+			     & (__alignof__ (HEADER) - 1));
+			*anssizp2 = orig_anssizp - aligned_resplen;
+			*ansp2 = *ansp + aligned_resplen;
+#endif
 		} else {
 			/* The first reply did not fit into the
 			   user-provided buffer.  Maybe the second
diff --git a/socket/Makefile b/socket/Makefile
index e7fa589e65..92a87079e3 100644
--- a/socket/Makefile
+++ b/socket/Makefile
@@ -27,7 +27,7 @@ headers	:= sys/socket.h sys/un.h bits/sockaddr.h bits/socket.h \
 routines := accept bind connect getpeername getsockname getsockopt	\
 	    listen recv recvfrom recvmsg send sendmsg sendto		\
 	    setsockopt shutdown socket socketpair isfdtype opensock	\
-	    sockatmark paccept
+	    sockatmark
 
 aux	 := have_sock_cloexec
 
diff --git a/socket/Versions b/socket/Versions
index 9764227c36..d282eff79e 100644
--- a/socket/Versions
+++ b/socket/Versions
@@ -31,7 +31,4 @@ libc {
     # Addition from P1003.1-200x
     sockatmark;
   }
-  GLIBC_2.9 {
-    paccept;
-  }
 }
diff --git a/socket/sys/socket.h b/socket/sys/socket.h
index ea4123d287..e0a6a5216a 100644
--- a/socket/sys/socket.h
+++ b/socket/sys/socket.h
@@ -214,18 +214,6 @@ extern int listen (int __fd, int __n) __THROW;
 extern int accept (int __fd, __SOCKADDR_ARG __addr,
 		   socklen_t *__restrict __addr_len);
 
-#ifdef __USE_GNU
-/* Variant of the accept function which takes additional parameters.  The
-   MASK parameter allows to change the thread signal mask for the duration
-   of the call.  The FLAGS parameter allows to pass additional flags.
-
-   This function is a cancellation point and therefore not marked with
-   __THROW.  */
-extern int paccept (int __fd, __SOCKADDR_ARG __addr,
-		    socklen_t *__restrict __addr_len,
-		    __const __sigset_t *__restrict __ss, int __flags);
-#endif
-
 /* Shut down all or part of the connection open on socket FD.
    HOW determines what to shut down:
      SHUT_RD   = No more receptions;
diff --git a/stdlib/divmod_1.c b/stdlib/divmod_1.c
index 51a47d85d3..0a8a77e12e 100644
--- a/stdlib/divmod_1.c
+++ b/stdlib/divmod_1.c
@@ -55,7 +55,7 @@ mpn_divmod_1 (quot_ptr, dividend_ptr, dividend_size, divisor_limb)
 {
   mp_size_t i;
   mp_limb_t n1, n0, r;
-  int dummy;
+  mp_limb_t dummy;
 
   /* ??? Should this be handled at all?  Rely on callers?  */
   if (dividend_size == 0)
diff --git a/stdlib/longlong.h b/stdlib/longlong.h
index ca6285a19b..a2f38ae2a5 100644
--- a/stdlib/longlong.h
+++ b/stdlib/longlong.h
@@ -229,6 +229,19 @@ UDItype __umulsidi3 (USItype, USItype);
 #define UDIV_TIME 100
 #endif /* __arm__ */
 
+#if defined(__arm__)
+/* Let gcc decide how best to implement count_leading_zeros.  */
+#define count_leading_zeros(COUNT,X)	((COUNT) = __builtin_clz (X))
+#define COUNT_LEADING_ZEROS_0 32
+#endif
+
+#if defined (__CRIS__) && __CRIS_arch_version >= 3
+#define count_leading_zeros(COUNT, X) ((COUNT) = __builtin_clz (X))
+#if __CRIS_arch_version >= 8
+#define count_trailing_zeros(COUNT, X) ((COUNT) = __builtin_ctz (X))
+#endif
+#endif /* __CRIS__ */
+
 #if defined (__hppa) && W_TYPE_SIZE == 32
 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
   __asm__ ("add %4,%5,%1\n\taddc %2,%3,%0"				\
@@ -315,7 +328,7 @@ UDItype __umulsidi3 (USItype, USItype);
 
 #if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32
 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
-  __asm__ ("addl %5,%1\n\tadcl %3,%0"					\
+  __asm__ ("add{l} {%5,%1|%1,%5}\n\tadc{l} {%3,%0|%0,%3}"		\
 	   : "=r" ((USItype) (sh)),					\
 	     "=&r" ((USItype) (sl))					\
 	   : "%0" ((USItype) (ah)),					\
@@ -323,7 +336,7 @@ UDItype __umulsidi3 (USItype, USItype);
 	     "%1" ((USItype) (al)),					\
 	     "g" ((USItype) (bl)))
 #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
-  __asm__ ("subl %5,%1\n\tsbbl %3,%0"					\
+  __asm__ ("sub{l} {%5,%1|%1,%5}\n\tsbb{l} {%3,%0|%0,%3}"		\
 	   : "=r" ((USItype) (sh)),					\
 	     "=&r" ((USItype) (sl))					\
 	   : "0" ((USItype) (ah)),					\
@@ -331,31 +344,60 @@ UDItype __umulsidi3 (USItype, USItype);
 	     "1" ((USItype) (al)),					\
 	     "g" ((USItype) (bl)))
 #define umul_ppmm(w1, w0, u, v) \
-  __asm__ ("mull %3"							\
+  __asm__ ("mul{l} %3"							\
 	   : "=a" ((USItype) (w0)),					\
 	     "=d" ((USItype) (w1))					\
 	   : "%0" ((USItype) (u)),					\
 	     "rm" ((USItype) (v)))
 #define udiv_qrnnd(q, r, n1, n0, dv) \
-  __asm__ ("divl %4"							\
+  __asm__ ("div{l} %4"							\
 	   : "=a" ((USItype) (q)),					\
 	     "=d" ((USItype) (r))					\
 	   : "0" ((USItype) (n0)),					\
 	     "1" ((USItype) (n1)),					\
 	     "rm" ((USItype) (dv)))
-#define count_leading_zeros(count, x) \
-  do {									\
-    USItype __cbtmp;							\
-    __asm__ ("bsrl %1,%0"						\
-	     : "=r" (__cbtmp) : "rm" ((USItype) (x)));			\
-    (count) = __cbtmp ^ 31;						\
-  } while (0)
-#define count_trailing_zeros(count, x) \
-  __asm__ ("bsfl %1,%0" : "=r" (count) : "rm" ((USItype)(x)))
+#define count_leading_zeros(count, x)	((count) = __builtin_clz (x))
+#define count_trailing_zeros(count, x)	((count) = __builtin_ctz (x))
 #define UMUL_TIME 40
 #define UDIV_TIME 40
 #endif /* 80x86 */
 
+#if (defined (__x86_64__) || defined (__i386__)) && W_TYPE_SIZE == 64
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+  __asm__ ("add{q} {%5,%1|%1,%5}\n\tadc{q} {%3,%0|%0,%3}"		\
+	   : "=r" ((UDItype) (sh)),					\
+	     "=&r" ((UDItype) (sl))					\
+	   : "%0" ((UDItype) (ah)),					\
+	     "rme" ((UDItype) (bh)),					\
+	     "%1" ((UDItype) (al)),					\
+	     "rme" ((UDItype) (bl)))
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+  __asm__ ("sub{q} {%5,%1|%1,%5}\n\tsbb{q} {%3,%0|%0,%3}"		\
+	   : "=r" ((UDItype) (sh)),					\
+	     "=&r" ((UDItype) (sl))					\
+	   : "0" ((UDItype) (ah)),					\
+	     "rme" ((UDItype) (bh)),					\
+	     "1" ((UDItype) (al)),					\
+	     "rme" ((UDItype) (bl)))
+#define umul_ppmm(w1, w0, u, v) \
+  __asm__ ("mul{q} %3"							\
+	   : "=a" ((UDItype) (w0)),					\
+	     "=d" ((UDItype) (w1))					\
+	   : "%0" ((UDItype) (u)),					\
+	     "rm" ((UDItype) (v)))
+#define udiv_qrnnd(q, r, n1, n0, dv) \
+  __asm__ ("div{q} %4"							\
+	   : "=a" ((UDItype) (q)),					\
+	     "=d" ((UDItype) (r))					\
+	   : "0" ((UDItype) (n0)),					\
+	     "1" ((UDItype) (n1)),					\
+	     "rm" ((UDItype) (dv)))
+#define count_leading_zeros(count, x)	((count) = __builtin_clzl (x))
+#define count_trailing_zeros(count, x)	((count) = __builtin_ctzl (x))
+#define UMUL_TIME 40
+#define UDIV_TIME 40
+#endif /* x86_64 */
+
 #if defined (__i960__) && W_TYPE_SIZE == 32
 #define umul_ppmm(w1, w0, u, v) \
   ({union {UDItype __ll;						\
@@ -523,6 +565,11 @@ UDItype __umulsidi3 (USItype, USItype);
   __asm__ ("bfffo %1{%b2:%b2},%0"					\
 	   : "=d" ((USItype) (count))					\
 	   : "od" ((USItype) (x)), "n" (0))
+/* Some ColdFire architectures have a ff1 instruction supported via
+   __builtin_clz. */
+#elif defined (__mcfisaaplus__) || defined (__mcfisac__)
+#define count_leading_zeros(count,x) ((count) = __builtin_clz (x))
+#define COUNT_LEADING_ZEROS_0 32
 #endif
 #endif /* mc68000 */
 
@@ -585,14 +632,19 @@ UDItype __umulsidi3 (USItype, USItype);
 #endif /* __m88000__ */
 
 #if defined (__mips__) && W_TYPE_SIZE == 32
-#define umul_ppmm(w1, w0, u, v) \
-  __asm__ ("multu %2,%3"						\
-	   : "=l" ((USItype) (w0)),					\
-	     "=h" ((USItype) (w1))					\
-	   : "d" ((USItype) (u)),					\
-	     "d" ((USItype) (v)))
+#define umul_ppmm(w1, w0, u, v)						\
+  do {									\
+    UDItype __x = (UDItype) (USItype) (u) * (USItype) (v);		\
+    (w1) = (USItype) (__x >> 32);					\
+    (w0) = (USItype) (__x);						\
+  } while (0)
 #define UMUL_TIME 10
 #define UDIV_TIME 100
+
+#if (__mips == 32 || __mips == 64) && ! __mips16
+#define count_leading_zeros(COUNT,X)	((COUNT) = __builtin_clz (X))
+#define COUNT_LEADING_ZEROS_0 32
+#endif
 #endif /* __mips__ */
 
 #if defined (__ns32000__) && W_TYPE_SIZE == 32
@@ -641,7 +693,9 @@ UDItype __umulsidi3 (USItype, USItype);
      || defined (__powerpc__)	/* gcc */				\
      || defined (__POWERPC__)	/* BEOS */				\
      || defined (__ppc__)	/* Darwin */				\
-     || defined (PPC)		/* GNU/Linux, SysV */			\
+     || (defined (PPC) && ! defined (CPU_FAMILY)) /* gcc 2.7.x GNU&SysV */    \
+     || (defined (PPC) && defined (CPU_FAMILY)    /* VxWorks */               \
+         && CPU_FAMILY == PPC)                                                \
      ) && W_TYPE_SIZE == 32
 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
   do {									\
@@ -679,7 +733,10 @@ UDItype __umulsidi3 (USItype, USItype);
   __asm__ ("{cntlz|cntlzw} %0,%1" : "=r" (count) : "r" (x))
 #define COUNT_LEADING_ZEROS_0 32
 #if defined (_ARCH_PPC) || defined (__powerpc__) || defined (__POWERPC__) \
-  || defined (__ppc__) || defined (PPC)
+  || defined (__ppc__)                                                    \
+  || (defined (PPC) && ! defined (CPU_FAMILY)) /* gcc 2.7.x GNU&SysV */       \
+  || (defined (PPC) && defined (CPU_FAMILY)    /* VxWorks */                  \
+         && CPU_FAMILY == PPC)
 #define umul_ppmm(ph, pl, m0, m1) \
   do {									\
     USItype __m0 = (m0), __m1 = (m1);					\
@@ -828,18 +885,51 @@ UDItype __umulsidi3 (USItype, USItype);
   } while (0)
 #endif
 
-#if defined (__sh2__) && W_TYPE_SIZE == 32
+#if defined(__sh__) && !__SHMEDIA__ && W_TYPE_SIZE == 32
+#ifndef __sh1__
 #define umul_ppmm(w1, w0, u, v) \
   __asm__ (								\
-       "dmulu.l	%2,%3\n\tsts	macl,%1\n\tsts	mach,%0"		\
-	   : "=r" ((USItype)(w1)),					\
-	     "=r" ((USItype)(w0))					\
+       "dmulu.l	%2,%3\n\tsts%M1	macl,%1\n\tsts%M0	mach,%0"	\
+	   : "=r<" ((USItype)(w1)),					\
+	     "=r<" ((USItype)(w0))					\
 	   : "r" ((USItype)(u)),					\
 	     "r" ((USItype)(v))						\
 	   : "macl", "mach")
 #define UMUL_TIME 5
 #endif
 
+/* This is the same algorithm as __udiv_qrnnd_c.  */
+#define UDIV_NEEDS_NORMALIZATION 1
+
+#define udiv_qrnnd(q, r, n1, n0, d) \
+  do {									\
+    extern UWtype __udiv_qrnnd_16 (UWtype, UWtype)			\
+                        __attribute__ ((visibility ("hidden")));	\
+    /* r0: rn r1: qn */ /* r0: n1 r4: n0 r5: d r6: d1 */ /* r2: __m */	\
+    __asm__ (								\
+	"mov%M4 %4,r5\n"						\
+"	swap.w %3,r4\n"							\
+"	swap.w r5,r6\n"							\
+"	jsr @%5\n"							\
+"	shll16 r6\n"							\
+"	swap.w r4,r4\n"							\
+"	jsr @%5\n"							\
+"	swap.w r1,%0\n"							\
+"	or r1,%0"							\
+	: "=r" (q), "=&z" (r)						\
+	: "1" (n1), "r" (n0), "rm" (d), "r" (&__udiv_qrnnd_16)		\
+	: "r1", "r2", "r4", "r5", "r6", "pr");				\
+  } while (0)
+
+#define UDIV_TIME 80
+
+#define sub_ddmmss(sh, sl, ah, al, bh, bl)				\
+  __asm__ ("clrt;subc %5,%1; subc %4,%0"				\
+	   : "=r" (sh), "=r" (sl)					\
+	   : "0" (ah), "1" (al), "r" (bh), "r" (bl))
+
+#endif /* __sh__ */
+
 #if defined (__SH5__) && __SHMEDIA__ && W_TYPE_SIZE == 32
 #define __umulsidi3(u,v) ((UDItype)(USItype)u*(USItype)v)
 #define count_leading_zeros(count, x) \
@@ -1153,6 +1243,23 @@ UDItype __umulsidi3 (USItype, USItype);
   } while (0)
 #endif /* __vax__ */
 
+#if defined (__xtensa__) && W_TYPE_SIZE == 32
+/* This code is not Xtensa-configuration-specific, so rely on the compiler
+   to expand builtin functions depending on what configuration features
+   are available.  This avoids library calls when the operation can be
+   performed in-line.  */
+#define umul_ppmm(w1, w0, u, v)						\
+  do {									\
+    DWunion __w;							\
+    __w.ll = __builtin_umulsidi3 (u, v);				\
+    w1 = __w.s.high;							\
+    w0 = __w.s.low;							\
+  } while (0)
+#define __umulsidi3(u, v)		__builtin_umulsidi3 (u, v)
+#define count_leading_zeros(COUNT, X)	((COUNT) = __builtin_clz (X))
+#define count_trailing_zeros(COUNT, X)	((COUNT) = __builtin_ctz (X))
+#endif /* __xtensa__ */
+
 #if defined (__z8000__) && W_TYPE_SIZE == 16
 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
   __asm__ ("add	%H1,%H5\n\tadc	%H0,%H3"				\
diff --git a/stdlib/mod_1.c b/stdlib/mod_1.c
index 3273c9222d..f4cfa6933f 100644
--- a/stdlib/mod_1.c
+++ b/stdlib/mod_1.c
@@ -50,7 +50,7 @@ mpn_mod_1 (dividend_ptr, dividend_size, divisor_limb)
 {
   mp_size_t i;
   mp_limb_t n1, n0, r;
-  int dummy;
+  mp_limb_t dummy;
 
   /* Botch: Should this be handled at all?  Rely on callers?  */
   if (dividend_size == 0)
diff --git a/sunrpc/rpc/svc.h b/sunrpc/rpc/svc.h
index 3ffca50bd0..171231919a 100644
--- a/sunrpc/rpc/svc.h
+++ b/sunrpc/rpc/svc.h
@@ -303,6 +303,11 @@ extern SVCXPRT *svcudp_bufcreate (int __sock, u_int __sendsz, u_int __recvsz)
 extern SVCXPRT *svctcp_create (int __sock, u_int __sendsize, u_int __recvsize)
      __THROW;
 
+/*
+ * FD based rpc.
+ */
+extern SVCXPRT *svcfd_create (int __sock, u_int __sendsize, u_int __recvsize)
+     __THROW;
 
 /*
  * Unix based rpc.
diff --git a/sysdeps/s390/s390-64/s390x-mcount.S b/sysdeps/s390/s390-64/s390x-mcount.S
index 0fa614cbf4..78b55218a9 100644
--- a/sysdeps/s390/s390-64/s390x-mcount.S
+++ b/sysdeps/s390/s390-64/s390x-mcount.S
@@ -64,7 +64,7 @@ C_LABEL(_mcount)
 	/* Pop the saved registers.  Please note that `mcount' has no
 	   return value.  */
 	lmg   %r14,%r5,160(%r15)
-        ahi   %r15,224
+        aghi   %r15,224
         br    %r14
 	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
 
diff --git a/sysdeps/sparc/sparc64/sparcv9v/memcpy.S b/sysdeps/sparc/sparc64/sparcv9v/memcpy.S
index 05c837fa25..ad2b0f742c 100644
--- a/sysdeps/sparc/sparc64/sparcv9v/memcpy.S
+++ b/sysdeps/sparc/sparc64/sparcv9v/memcpy.S
@@ -1,5 +1,5 @@
 /* Copy SIZE bytes from SRC to DEST.  For SUN4V Niagara.
-   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by David S. Miller (davem@davemloft.net)
 
@@ -61,6 +61,9 @@ END(bcopy)
 
 	.align		32
 ENTRY(memcpy)
+#ifndef USE_BPR
+	srl		%o2, 0, %o2
+#endif
 100:	/* %o0=dst, %o1=src, %o2=len */
 	mov		%o0, %g5
 	cmp		%o2, 0
diff --git a/sysdeps/sparc/sparc64/sparcv9v/memset.S b/sysdeps/sparc/sparc64/sparcv9v/memset.S
index ac0a50cf8e..64817b8871 100644
--- a/sysdeps/sparc/sparc64/sparcv9v/memset.S
+++ b/sysdeps/sparc/sparc64/sparcv9v/memset.S
@@ -1,5 +1,5 @@
 /* Set a block of memory to some byte value.  For SUN4V Niagara.
-   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by David S. Miller (davem@davemloft.net)
 
@@ -49,7 +49,11 @@ END(memset)
 
 ENTRY(__bzero)
 	clr		%o2
-1:	brz,pn		%o1, 90f
+1:
+#ifndef USE_BRP
+	srl		%o1, 0, %o1
+#endif
+	brz,pn		%o1, 90f
 	 mov		%o0, %o3
 
 	wr		%g0, ASI_P, %asi
diff --git a/sysdeps/sparc/sparc64/sparcv9v2/memcpy.S b/sysdeps/sparc/sparc64/sparcv9v2/memcpy.S
index d94dd4701e..b261f461a4 100644
--- a/sysdeps/sparc/sparc64/sparcv9v2/memcpy.S
+++ b/sysdeps/sparc/sparc64/sparcv9v2/memcpy.S
@@ -1,5 +1,5 @@
 /* Copy SIZE bytes from SRC to DEST.  For SUN4V Niagara-2.
-   Copyright (C) 2007 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by David S. Miller (davem@davemloft.net)
 
@@ -163,6 +163,9 @@ END(bcopy)
 
 	.align		32
 ENTRY(memcpy)
+#ifndef USE_BPR
+	srl		%o2, 0, %o2
+#endif
 100:	/* %o0=dst, %o1=src, %o2=len */
 	mov		%o0, %g5
 	cmp		%o2, 0
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h b/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h
index a820eafe79..4cbe977768 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h
@@ -59,7 +59,7 @@ __BEGIN_DECLS
 /* Request notification for delivery of signals in MASK to be
    performed using descriptor FD.*/
 extern int signalfd (int __fd, const sigset_t *__mask, int __flags)
-  __nonnull ((2)) __THROW;
+  __THROW __nonnull ((2));
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
index 177da80f00..4fb77faa9a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
@@ -15,3 +15,74 @@
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+
+/* This file provides functions converting between the 32 and 64 bit
+   struct utmp variants.  */
+
+#ifndef _UTMP_CONVERT_H
+#define _UTMP_CONVERT_H 1
+
+#include <string.h>
+
+#include "utmp32.h"
+
+/* Convert the 64 bit struct utmp value in FROM to the 32 bit version
+   returned in TO.  */
+static inline void
+utmp_convert64to32 (__const struct utmp *from, struct utmp32 *to)
+{
+#if _HAVE_UT_TYPE - 0
+  to->ut_type = from->ut_type;
+#endif
+#if _HAVE_UT_PID - 0
+  to->ut_pid = from->ut_pid;
+#endif
+  memcpy (to->ut_line, from->ut_line, UT_LINESIZE);
+  memcpy (to->ut_user, from->ut_user, UT_NAMESIZE);
+#if _HAVE_UT_ID - 0
+  memcpy (to->ut_id, from->ut_id, 4);
+#endif
+#if _HAVE_UT_HOST - 0
+  memcpy (to->ut_host, from->ut_host, UT_HOSTSIZE);
+#endif
+  to->ut_exit = from->ut_exit;
+  to->ut_session = (int32_t) from->ut_session;
+#if _HAVE_UT_TV - 0
+  to->ut_tv.tv_sec = (int32_t) from->ut_tv.tv_sec;
+  to->ut_tv.tv_usec = (int32_t) from->ut_tv.tv_usec;
+#endif
+  memcpy (to->ut_addr_v6, from->ut_addr_v6, 4 * 4);
+}
+
+/* Convert the 32 bit struct utmp value in FROM to the 64 bit version
+   returned in TO.  */
+static inline void
+utmp_convert32to64 (__const struct utmp32 *from, struct utmp *to)
+{
+#if _HAVE_UT_TYPE - 0
+  to->ut_type = from->ut_type;
+#endif
+#if _HAVE_UT_PID - 0
+  to->ut_pid = from->ut_pid;
+#endif
+  memcpy (to->ut_line, from->ut_line, UT_LINESIZE);
+  memcpy (to->ut_user, from->ut_user, UT_NAMESIZE);
+#if _HAVE_UT_ID - 0
+  memcpy (to->ut_id, from->ut_id, 4);
+#endif
+#if _HAVE_UT_HOST - 0
+  memcpy (to->ut_host, from->ut_host, UT_HOSTSIZE);
+#endif
+  to->ut_exit = from->ut_exit;
+  to->ut_session = (int64_t) from->ut_session;
+#if _HAVE_UT_TV - 0
+  to->ut_tv.tv_sec = (int64_t) from->ut_tv.tv_sec;
+  to->ut_tv.tv_usec = (int64_t) from->ut_tv.tv_usec;
+#endif
+  memcpy (to->ut_addr_v6, from->ut_addr_v6, 4 * 4);
+}
+
+#endif /* utmp-convert.h */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/socket.S b/sysdeps/unix/sysv/linux/s390/s390-64/socket.S
index d4c3a1c4e1..91c2a8031e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/socket.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/socket.S
@@ -61,7 +61,7 @@ ENTRY(__socket)
 	cfi_offset (%r6,-112)
         lgr     %r1,%r15
         lg      %r0,8(%r15)             /* Load eos.  */
-        ahi     %r15,-208               /* Buy stack space.  */
+        aghi     %r15,-208              /* Buy stack space.  */
 	cfi_adjust_cfa_offset (208)
         stg     %r1,0(%r15)             /* Store back chain.  */
         stg     %r0,8(%r15)             /* Store eos.  */
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/signalfd.h b/sysdeps/unix/sysv/linux/sparc/sys/signalfd.h
index a134cc7bab..bd380c29f0 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/signalfd.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/signalfd.h
@@ -59,7 +59,7 @@ __BEGIN_DECLS
 /* Request notification for delivery of signals in MASK to be
    performed using descriptor FD.*/
 extern int signalfd (int __fd, const sigset_t *__mask, int __flags)
-  __nonnull ((2)) __THROW;
+  __THROW __nonnull ((2));
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/signalfd.h b/sysdeps/unix/sysv/linux/sys/signalfd.h
index dae71a400e..eeb27ee03c 100644
--- a/sysdeps/unix/sysv/linux/sys/signalfd.h
+++ b/sysdeps/unix/sysv/linux/sys/signalfd.h
@@ -59,7 +59,7 @@ __BEGIN_DECLS
 /* Request notification for delivery of signals in MASK to be
    performed using descriptor FD.*/
 extern int signalfd (int __fd, const sigset_t *__mask, int __flags)
-  __nonnull ((2)) __THROW;
+  __THROW __nonnull ((2));
 
 __END_DECLS
 
diff --git a/timezone/africa b/timezone/africa
index 434110ccd7..304e7d3b77 100644
--- a/timezone/africa
+++ b/timezone/africa
@@ -1,4 +1,4 @@
-# @(#)africa	8.10
+# @(#)africa	8.16
 # <pre>
 
 # This data is by no means authoritative; if you think you know better,
@@ -387,9 +387,80 @@ Zone Africa/Nouakchott	-1:03:48 -	LMT	1912
 			 0:00	-	GMT
 
 # Mauritius
+
+# From Steffen Thorsen (2008-06-25):
+# Mauritius plans to observe DST from 2008-11-01 to 2009-03-31 on a trial
+# basis....
+# It seems that Mauritius observed daylight saving time from 1982-10-10 to 
+# 1983-03-20 as well, but that was not successful....
+# http://www.timeanddate.com/news/time/mauritius-daylight-saving-time.html
+
+# From Alex Krivenyshev (2008-06-25):
+# http://economicdevelopment.gov.mu/portal/site/Mainhomepage/menuitem.a42b24128104d9845dabddd154508a0c/?content_id=0a7cee8b5d69a110VgnVCM1000000a04a8c0RCRD
+
+# From Arthur David Olson (2008-06-30):
+# The www.timeanddate.com article cited by Steffen Thorsen notes that "A
+# final decision has yet to be made on the times that daylight saving
+# would begin and end on these dates." As a place holder, use midnight.
+
+# From Paul Eggert (2008-06-30):
+# Follow Thorsen on DST in 1982/1983, instead of Shanks & Pottenger.
+
+# From Steffen Thorsen (2008-07-10):
+# According to
+# <a href="http://www.lexpress.mu/display_article.php?news_id=111216">
+# http://www.lexpress.mu/display_article.php?news_id=111216
+# </a>
+# (in French), Mauritius will start and end their DST a few days earlier
+# than previously announced (2008-11-01 to 2009-03-31).  The new start
+# date is 2008-10-26 at 02:00 and the new end date is 2009-03-27 (no time
+# given, but it is probably at either 2 or 3 wall clock time).
+# 
+# A little strange though, since the article says that they moved the date 
+# to align itself with Europe and USA which also change time on that date, 
+# but that means they have not paid attention to what happened in 
+# USA/Canada last year (DST ends first Sunday in November). I also wonder 
+# why that they end on a Friday, instead of aligning with Europe which 
+# changes two days later.
+
+# From Alex Krivenyshev (2008-07-11):
+# Seems that English language article "The revival of daylight saving
+# time:  Energy conservation?"-# No. 16578 (07/11/2008) was originally
+# published on Monday, June 30, 2008...
+#
+# I guess that article in French "Le gouvernement avance l'introduction
+# de l'heure d'ete" stating that DST in Mauritius starting on October 26
+# and ending on March 27, 2009 is the most recent one.
+# ...
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_mauritius02.html">
+# http://www.worldtimezone.com/dst_news/dst_news_mauritius02.html
+# </a>
+
+# From Riad M. Hossen Ally (2008-08-03):
+# The Government of Mauritius weblink
+# <a href="http://www.gov.mu/portal/site/pmosite/menuitem.4ca0efdee47462e7440a600248a521ca/?content_id=3D4728ca68b2a5b110VgnVCM1000000a04a8c0RCRD">
+# http://www.gov.mu/portal/site/pmosite/menuitem.4ca0efdee47462e7440a600248a521ca/?content_id=3D4728ca68b2a5b110VgnVCM1000000a04a8c0RCRD
+# </a>
+# Cabinet Decision of July 18th, 2008 states as follows:
+#
+# 4. ...Cabinet has agreed to the introduction into the National Assembly
+# of the Time Bill which provides for the introduction of summer time in
+# Mauritius. The summer time period which will be of one hour ahead of
+# the standard time, will be aligned with that in Europe and the United
+# States of America. It will start at two o'clock in the morning on the
+# last Sunday of October and will end at two o'clock in the morning on
+# the last Sunday of March the following year. The summer time for the
+# year 2008 - 2009 will, therefore, be effective as from 26 October 2008
+# and end on 29 March 2009.
+
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule Mauritius	1982	only	-	Oct	10	0:00	1:00	S
+Rule Mauritius	1983	only	-	Mar	21	0:00	0	-
+Rule Mauritius	2008	max	-	Oct	lastSun	2:00	1:00	S
+Rule Mauritius	2009	max	-	Mar	lastSun	2:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Indian/Mauritius	3:50:00 -	LMT	1907		# Port Louis
-			4:00	-	MUT	# Mauritius Time
+			4:00 Mauritius	MU%sT	# Mauritius Time
 # Agalega Is, Rodriguez
 # no information; probably like Indian/Mauritius
 
@@ -400,7 +471,93 @@ Zone	Indian/Mayotte	3:00:56 -	LMT	1911 Jul	# Mamoutzou
 
 # Morocco
 # See the `europe' file for Spanish Morocco (Africa/Ceuta).
+
+# From Alex Krivenyshev (2008-05-09):
+# Here is an article that Morocco plan to introduce Daylight Saving Time between
+# 1 June, 2008 and 27 September, 2008.
+#
+# "... Morocco is to save energy by adjusting its clock during summer so it will
+# be one hour ahead of GMT between 1 June and 27 September, according to
+# Communication Minister and Gov ernment Spokesman, Khalid Naciri...."
+#
+# <a href="http://www.worldtimezone.net/dst_news/dst_news_morocco01.html">
+# http://www.worldtimezone.net/dst_news/dst_news_morocco01.html
+# </a>
+# OR
+# <a href="http://en.afrik.com/news11892.html">
+# http://en.afrik.com/news11892.html
+# </a>
+
+# From Alex Krivenyshev (2008-05-09):
+# The Morocco time change can be confirmed on Morocco web site Maghreb Arabe Presse:
+# <a href="http://www.map.ma/eng/sections/box3/morocco_shifts_to_da/view">
+# http://www.map.ma/eng/sections/box3/morocco_shifts_to_da/view
+# </a>
+#
+# Morocco shifts to daylight time on June 1st through September 27, Govt.
+# spokesman.
+
+# From Patrice Scattolin (2008-05-09):
+# According to this article:
+# <a href="http://www.avmaroc.com/actualite/heure-dete-comment-a127896.html">
+# http://www.avmaroc.com/actualite/heure-dete-comment-a127896.html
+# </a>
+# (and republished here:
+# <a href="http://www.actu.ma/heure-dete-comment_i127896_0.html">
+# http://www.actu.ma/heure-dete-comment_i127896_0.html
+# </a>
+# )
+# the changes occurs at midnight:
+#
+# saturday night may 31st at midnight (which in french is to be
+# intrepreted as the night between saturday and sunday)
+# sunday night the 28th  at midnight
+#
+# Seeing that the 28th is monday, I am guessing that she intends to say
+# the midnight of the 28th which is the midnight between sunday and
+# monday, which jives with other sources that say that it's inclusive
+# june1st to sept 27th.
+#
+# The decision was taken by decree *2-08-224 *but I can't find the decree
+# published on the web.
+#
+# It's also confirmed here:
+# <a href="http://www.maroc.ma/NR/exeres/FACF141F-D910-44B0-B7FA-6E03733425D1.htm">
+# http://www.maroc.ma/NR/exeres/FACF141F-D910-44B0-B7FA-6E03733425D1.htm
+# </a>
+# on a government portal as being  between june 1st and sept 27th (not yet
+# posted in english).
+#
+# The following google query will generate many relevant hits:
+# <a href="http://www.google.com/search?hl=en&q=Conseil+de+gouvernement+maroc+heure+avance&btnG=Search">
+# http://www.google.com/search?hl=en&q=Conseil+de+gouvernement+maroc+heure+avance&btnG=Search
+# </a>
+
+# From Alex Krivenyshev (2008-05-09):
+# Is Western Sahara (part which administrated by Morocco) going to follow
+# Morocco DST changes?  Any information?  What about other part of
+# Western Sahara - under administration of POLISARIO Front (also named
+# SADR Saharawi Arab Democratic Republic)?
+
+# From Arthur David Olson (2008-05-09):
+# XXX--guess that it is only Morocco for now; guess only 2008 for now.
+
+# From Steffen Thorsen (2008-08-27):
+# Morocco will change the clocks back on the midnight between August 31 
+# and September 1. They originally planned to observe DST to near the end 
+# of September:
+#
+# One article about it (in French):
+# <a href="http://www.menara.ma/fr/Actualites/Maroc/Societe/ci.retour_a_l_heure_gmt_a_partir_du_dimanche_31_aout_a_minuit_officiel_.default">
+# http://www.menara.ma/fr/Actualites/Maroc/Societe/ci.retour_a_l_heure_gmt_a_partir_du_dimanche_31_aout_a_minuit_officiel_.default
+# </a>
+#
+# We have some further details posted here:
+# <a href="http://www.timeanddate.com/news/time/morocco-ends-dst-early-2008.html">
+# http://www.timeanddate.com/news/time/morocco-ends-dst-early-2008.html
+# </a>
 # RULE	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+
 Rule	Morocco	1939	only	-	Sep	12	 0:00	1:00	S
 Rule	Morocco	1939	only	-	Nov	19	 0:00	0	-
 Rule	Morocco	1940	only	-	Feb	25	 0:00	1:00	S
@@ -416,11 +573,13 @@ Rule	Morocco	1976	only	-	Aug	 1	 0:00	0	-
 Rule	Morocco	1977	only	-	Sep	28	 0:00	0	-
 Rule	Morocco	1978	only	-	Jun	 1	 0:00	1:00	S
 Rule	Morocco	1978	only	-	Aug	 4	 0:00	0	-
+Rule	Morocco	2008	only	-	Jun	 1	 0:00	1:00	S
+Rule	Morocco	2008	only	-	Sep	 1	 0:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Africa/Casablanca	-0:30:20 -	LMT	1913 Oct 26
 			 0:00	Morocco	WE%sT	1984 Mar 16
 			 1:00	-	CET	1986
-			 0:00	-	WET
+			 0:00	Morocco	WE%sT
 # Western Sahara
 Zone Africa/El_Aaiun	-0:52:48 -	LMT	1934 Jan
 			-1:00	-	WAT	1976 Apr 14
diff --git a/timezone/asia b/timezone/asia
index 70f1515321..768850f3df 100644
--- a/timezone/asia
+++ b/timezone/asia
@@ -1,4 +1,4 @@
-# @(#)asia	8.18
+# @(#)asia	8.23
 # <pre>
 
 # This data is by no means authoritative; if you think you know better,
@@ -229,6 +229,28 @@ Rule	PRC	1987	1991	-	Apr	Sun>=10	0:00	1:00	D
 # (could be true), for the moment I am assuming that those two
 # counties are mistakes in the astro.com data.
 
+# From Paul Eggert (2008-02-11):
+# I just now checked Google News for western news sources that talk
+# about China's single time zone, and couldn't find anything before 1986
+# talking about China being in one time zone.  (That article was: Jim
+# Mann, "A clumsy embrace for another western custom: China on daylight
+# time--sort of", Los Angeles Times, 1986-05-05.  By the way, this
+# article confirms the tz database's data claiming that China began
+# observing daylight saving time in 1986.
+#
+# From Thomas S. Mullaney (2008-02-11):
+# I think you're combining two subjects that need to treated 
+# separately: daylight savings (which, you're correct, wasn't 
+# implemented until the 1980s) and the unified time zone centered near 
+# Beijing (which was implemented in 1949). Briefly, there was also a 
+# "Lhasa Time" in Tibet and "Urumqi Time" in Xinjiang. The first was 
+# ceased, and the second eventually recognized (again, in the 1980s).
+#
+# From Paul Eggert (2008-06-30):
+# There seems to be a good chance China switched to a single time zone in 1949
+# rather than in 1980 as Shanks & Pottenger have it, but we don't have a
+# reliable documentary source saying so yet, so for now we still go with
+# Shanks & Pottenger.
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 # Changbai Time ("Long-white Time", Long-white = Heilongjiang area)
@@ -1376,6 +1398,42 @@ Zone	Indian/Maldives	4:54:00 -	LMT	1880	# Male
 # They decided not to adopt daylight-saving time....
 # http://www.mongolnews.mn/index.php?module=unuudur&sec=view&id=15742
 
+# From Deborah Goldsmith (2008-03-30):
+# We received a bug report claiming that the tz database UTC offset for
+# Asia/Choibalsan (GMT+09:00) is incorrect, and that it should be GMT
+# +08:00 instead. Different sources appear to disagree with the tz
+# database on this, e.g.:
+#
+# <a href="http://www.timeanddate.com/worldclock/city.html?n=1026">
+# http://www.timeanddate.com/worldclock/city.html?n=1026
+# </a>
+# <a href="http://www.worldtimeserver.com/current_time_in_MN.aspx">
+# http://www.worldtimeserver.com/current_time_in_MN.aspx
+# </a>
+#
+# both say GMT+08:00.
+
+# From Steffen Thorsen (2008-03-31):
+# eznis airways, which operates several domestic flights, has a flight
+# schedule here:
+# <a href="http://www.eznis.com/Container.jsp?id=112">
+# http://www.eznis.com/Container.jsp?id=112
+# </a>
+# (click the English flag for English)
+#
+# There it appears that flights between Choibalsan and Ulaanbatar arrive
+# about 1:35 - 1:50 hours later in local clock time, no matter the
+# direction, while Ulaanbaatar-Khvod takes 2 hours in the Eastern
+# direction and 3:35 back, which indicates that Ulaanbatar and Khvod are
+# in different time zones (like we know about), while Choibalsan and
+# Ulaanbatar are in the same time zone (correction needed).
+
+# From Arthur David Olson (2008-05-19):
+# Assume that Choibalsan is indeed offset by 8:00.
+# XXX--in the absence of better information, assume that transition
+# was at the start of 2008-03-31 (the day of Steffen Thorsen's report);
+# this is almost surely wrong.
+
 # 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	-
@@ -1411,7 +1469,8 @@ Zone	Asia/Ulaanbaatar 7:07:32 -	LMT	1905 Aug
 Zone	Asia/Choibalsan	7:38:00 -	LMT	1905 Aug
 			7:00	-	ULAT	1978
 			8:00	-	ULAT	1983 Apr
-			9:00	Mongol	CHO%sT	# Choibalsan Time
+			9:00	Mongol	CHO%sT	2008 Mar 31 # Choibalsan Time
+			8:00	Mongol	CHO%sT
 
 # Nepal
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -1461,10 +1520,45 @@ Zone	Asia/Muscat	3:54:20 -	LMT	1920
 # The minister told a news conference that the experiment had rather
 # shown 8 per cent higher consumption of electricity.
 
+# From Alex Krivenyshev (2008-05-15):
+# 
+# Here is an article that Pakistan plan to introduce Daylight Saving Time 
+# on June 1, 2008 for 3 months.
+# 
+# "... The federal cabinet on Wednesday announced a new conservation plan to help 
+# reduce load shedding by approving the closure of commercial centres at 9pm and 
+# moving clocks forward by one hour for the next three months. 
+# ...."
+# 
+# <a href="http://www.worldtimezone.net/dst_news/dst_news_pakistan01.html">
+# http://www.worldtimezone.net/dst_news/dst_news_pakistan01.html
+# </a>
+# OR
+# <a href="http://www.dailytimes.com.pk/default.asp?page=2008%5C05%5C15%5Cstory_15-5-2008_pg1_4">
+# http://www.dailytimes.com.pk/default.asp?page=2008%5C05%5C15%5Cstory_15-5-2008_pg1_4
+# </a>
+
+# From Arthur David Olson (2008-05-19):
+# XXX--midnight transitions is a guess; 2008 only is a guess.
+
+# From Alexander Krivenyshev (2008-08-28):
+# Pakistan government has decided to keep the watches one-hour advanced
+# for another 2 months--plan to return to Standard Time on October 31
+# instead of August 31.
+#
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_pakistan02.html">
+# http://www.worldtimezone.com/dst_news/dst_news_pakistan02.html
+# </a>
+# OR
+# <a href="http://dailymailnews.com/200808/28/news/dmbrn03.html">
+# http://dailymailnews.com/200808/28/news/dmbrn03.html
+# </a>
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule Pakistan	2002	only	-	Apr	Sun>=2	0:01	1:00	S
 Rule Pakistan	2002	only	-	Oct	Sun>=2	0:01	0	-
+Rule Pakistan	2008	only	-	Jun	1	0:00	1:00	S
+Rule Pakistan	2008	only	-	Nov	1	0:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Karachi	4:28:12 -	LMT	1907
 			5:30	-	IST	1942 Sep
@@ -1584,6 +1678,23 @@ Zone	Asia/Karachi	4:28:12 -	LMT	1907
 # For lack of better information, predict that future changes will be
 # the 2nd Thursday of September at 02:00.
 
+# From Alexander Krivenyshev (2008-08-28):
+# Here is an article, that Mideast running on different clocks at Ramadan.
+#
+# Gaza Strip (as Egypt) ended DST at midnight Thursday (Aug 28, 2008), while
+# the West Bank will end Daylight Saving Time at midnight Sunday (Aug 31, 2008).
+#
+# <a href="http://www.guardian.co.uk/world/feedarticle/7759001">
+# http://www.guardian.co.uk/world/feedarticle/7759001
+# </a>
+# <a href="http://www.abcnews.go.com/International/wireStory?id=5676087">
+# http://www.abcnews.go.com/International/wireStory?id=5676087
+# </a>
+# or
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_gazastrip01.html">
+# http://www.worldtimezone.com/dst_news/dst_news_gazastrip01.html
+# </a>
+
 # The rules for Egypt are stolen from the `africa' file.
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule EgyptAsia	1957	only	-	May	10	0:00	1:00	S
@@ -1599,7 +1710,8 @@ Rule Palestine	2004	only	-	Oct	 1	1:00	0	-
 Rule Palestine	2005	only	-	Oct	 4	2:00	0	-
 Rule Palestine	2006	max	-	Apr	 1	0:00	1:00	S
 Rule Palestine	2006	only	-	Sep	22	0:00	0	-
-Rule Palestine	2007	max	-	Sep	Thu>=8	2:00	0	-
+Rule Palestine	2007	only	-	Sep	Thu>=8	2:00	0	-
+Rule Palestine	2008	max	-	Aug	lastThu	2:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Gaza	2:17:52	-	LMT	1900 Oct
diff --git a/timezone/australasia b/timezone/australasia
index 30d695ff5a..41608cdc34 100644
--- a/timezone/australasia
+++ b/timezone/australasia
@@ -1,4 +1,4 @@
-# @(#)australasia	8.8
+# @(#)australasia	8.9
 # <pre>
 
 # This file also includes Pacific islands.
@@ -1346,7 +1346,7 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 # * Tonga will introduce DST in November
 #
 # I was given this link by John Letts:
-# <a hef="http://news.bbc.co.uk/hi/english/world/asia-pacific/newsid_424000/424764.stm">
+# <a href="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>
 #
@@ -1356,7 +1356,7 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 # (12 + 1 hour DST).
 
 # From Arthur David Olson (1999-09-20):
-# According to <a href="http://www.tongaonline.com/news/sept1799.html>
+# According to <a href="http://www.tongaonline.com/news/sept1799.html">
 # http://www.tongaonline.com/news/sept1799.html
 # </a>:
 # "Daylight Savings Time will take effect on Oct. 2 through April 15, 2000
diff --git a/timezone/europe b/timezone/europe
index 73eed00fc2..7bb9864733 100644
--- a/timezone/europe
+++ b/timezone/europe
@@ -1,4 +1,4 @@
-# @(#)europe	8.12
+# @(#)europe	8.18
 # <pre>
 
 # This data is by no means authoritative; if you think you know better,
@@ -457,7 +457,7 @@ Rule	EU	1979	1995	-	Sep	lastSun	 1:00u	0	-
 Rule	EU	1981	max	-	Mar	lastSun	 1:00u	1:00	S
 Rule	EU	1996	max	-	Oct	lastSun	 1:00u	0	-
 # The most recent directive covers the years starting in 2002.  See:
-# <a href="http://europa.eu.int/eur-lex/en/lif/dat/2000/en_300L0084.html"
+# <a href="http://europa.eu.int/eur-lex/en/lif/dat/2000/en_300L0084.html">
 # Directive 2000/84/EC of the European Parliament and of the Council
 # of 19 January 2001 on summer-time arrangements.
 # </a>
@@ -480,9 +480,48 @@ Rule	C-Eur	1940	only	-	Apr	 1	 2:00s	1:00	S
 Rule	C-Eur	1942	only	-	Nov	 2	 2:00s	0	-
 Rule	C-Eur	1943	only	-	Mar	29	 2:00s	1:00	S
 Rule	C-Eur	1943	only	-	Oct	 4	 2:00s	0	-
-Rule	C-Eur	1944	only	-	Apr	 3	 2:00s	1:00	S
+Rule	C-Eur	1944	1945	-	Apr	Mon>=1	 2:00s	1:00	S
 # Whitman gives 1944 Oct 7; go with Shanks & Pottenger.
 Rule	C-Eur	1944	only	-	Oct	 2	 2:00s	0	-
+# From Jesper Norgaard Welen (2008-07-13):
+#
+# I found what is probably a typo of 2:00 which should perhaps be 2:00s
+# in the C-Eur rule from tz database version 2008d (this part was
+# corrected in version 2008d). The circumstancial evidence is simply the
+# tz database itself, as seen below:
+#
+# Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15  0:01
+#    0:00 France WE%sT 1945 Sep 16  3:00
+#
+# Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
+#    0:00 France WE%sT 1945 Sep 16 3:00
+#
+# Zone Europe/Belgrade 1:22:00 - LMT 1884
+#    1:00 1:00 CEST 1945 Sep 16  2:00s
+#
+# Rule France 1945 only - Sep 16  3:00 0 -
+# Rule Belgium 1945 only - Sep 16  2:00s 0 -
+# Rule Neth 1945 only - Sep 16 2:00s 0 -
+#
+# The rule line to be changed is:
+#
+# Rule C-Eur 1945 only - Sep 16  2:00 0 -
+#
+# It seems that Paris, Monaco, Rule France, Rule Belgium all agree on
+# 2:00 standard time, e.g. 3:00 local time.  However there are no
+# countries that use C-Eur rules in September 1945, so the only items
+# affected are apparently these ficticious zones that translates acronyms
+# CET and MET:
+#
+# Zone CET  1:00 C-Eur CE%sT
+# Zone MET  1:00 C-Eur ME%sT
+#
+# It this is right then the corrected version would look like:
+#
+# Rule C-Eur 1945 only - Sep 16  2:00s 0 -
+#
+# A small step for mankind though 8-)
+Rule	C-Eur	1945	only	-	Sep	16	 2:00s	0	-
 Rule	C-Eur	1977	1980	-	Apr	Sun>=1	 2:00s	1:00	S
 Rule	C-Eur	1977	only	-	Sep	lastSun	 2:00s	0	-
 Rule	C-Eur	1978	only	-	Oct	 1	 2:00s	0	-
@@ -725,7 +764,8 @@ Rule	Bulg	1981	only	-	Sep	27	 2:00	0	-
 Zone	Europe/Sofia	1:33:16 -	LMT	1880
 			1:56:56	-	IMT	1894 Nov 30 # Istanbul MT?
 			2:00	-	EET	1942 Nov  2  3:00
-			1:00	C-Eur	CE%sT	1945 Apr  2  3:00
+			1:00	C-Eur	CE%sT	1945
+			1:00	-	CET	1945 Apr 2 3:00
 			2:00	-	EET	1979 Mar 31 23:00
 			2:00	Bulg	EE%sT	1982 Sep 26  2:00
 			2:00	C-Eur	EE%sT	1991
@@ -1093,33 +1133,40 @@ Zone	Europe/Paris	0:09:21 -	LMT	1891 Mar 15  0:01
 # [See tz-link.htm for the URL.]
 
 # From Joerg Schilling (2002-10-23):
-# In 1945, Berlin was switched to Moscow Summer time (GMT+4) by <a
-# href="http://www.dhm.de/lemo/html/biografien/BersarinNikolai/">
+# In 1945, Berlin was switched to Moscow Summer time (GMT+4) by
+# <a href="http://www.dhm.de/lemo/html/biografien/BersarinNikolai/">
 # General [Nikolai] Bersarin</a>.
 
 # From Paul Eggert (2003-03-08):
 # <a href="http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf">
+# http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf
+# </a>
 # says that Bersarin issued an order to use Moscow time on May 20.
 # However, Moscow did not observe daylight saving in 1945, so
 # this was equivalent to CEMT (GMT+3), not GMT+4.
 
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Germany	1945	only	-	Apr	 2	2:00s	1:00	S
-Rule	Germany	1945	only	-	May	24	2:00	2:00	M # Midsummer
-Rule	Germany	1945	only	-	Sep	24	3:00	1:00	S
-Rule	Germany	1945	only	-	Nov	18	2:00s	0	-
 Rule	Germany	1946	only	-	Apr	14	2:00s	1:00	S
 Rule	Germany	1946	only	-	Oct	 7	2:00s	0	-
 Rule	Germany	1947	1949	-	Oct	Sun>=1	2:00s	0	-
-Rule	Germany	1947	only	-	Apr	 6	2:00s	1:00	S
+# http://www.ptb.de/de/org/4/44/441/salt.htm says the following transition
+# occurred at 3:00 MEZ, not the 2:00 MEZ given in Shanks & Pottenger.
+# Go with the PTB.
+Rule	Germany	1947	only	-	Apr	 6	3:00s	1:00	S
 Rule	Germany	1947	only	-	May	11	2:00s	2:00	M
 Rule	Germany	1947	only	-	Jun	29	3:00	1:00	S
 Rule	Germany	1948	only	-	Apr	18	2:00s	1:00	S
 Rule	Germany	1949	only	-	Apr	10	2:00s	1:00	S
+
+Rule SovietZone	1945	only	-	May	24	2:00	2:00	M # Midsummer
+Rule SovietZone	1945	only	-	Sep	24	3:00	1:00	S
+Rule SovietZone	1945	only	-	Nov	18	2:00s	0	-
+
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Europe/Berlin	0:53:28 -	LMT	1893 Apr
-			1:00	C-Eur	CE%sT	1945 Apr 2 2:00
+			1:00	C-Eur	CE%sT	1945 May 24 2:00
+			1:00 SovietZone	CE%sT	1946
 			1:00	Germany	CE%sT	1980
 			1:00	EU	CE%sT
 
@@ -1196,7 +1243,7 @@ Rule	Hungary	1980	only	-	Apr	 6	 1:00	1:00	S
 Zone	Europe/Budapest	1:16:20 -	LMT	1890 Oct
 			1:00	C-Eur	CE%sT	1918
 			1:00	Hungary	CE%sT	1941 Apr  6  2:00
-			1:00	C-Eur	CE%sT	1945 May  1 23:00
+			1:00	C-Eur	CE%sT	1945
 			1:00	Hungary	CE%sT	1980 Sep 28  2:00s
 			1:00	EU	CE%sT
 
@@ -2113,7 +2160,8 @@ Zone Asia/Anadyr	11:49:56 -	LMT	1924 May  2
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 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	C-Eur	CE%sT	1945
+			1:00	-	CET	1945 May 8 2:00s
 			1:00	1:00	CEST	1945 Sep 16  2:00s
 # Metod Kozelj reports that the legal date of
 # transition to EU rules was 1982-11-27, for all of Yugoslavia at the time.
@@ -2305,6 +2353,27 @@ Zone	Europe/Zurich	0:34:08 -	LMT	1848 Sep 12
 # (on a non-government server though) describing dates between 2002 and 2006:
 # http://www.alomaliye.com/bkk_2002_3769.htm
 
+# From Sue Williams (2008-08-11):
+# I spotted this news article about a potential change in Turkey.
+#
+# <a href="http://www.hurriyet.com.tr/english/domestic/9626174.asp?scr=1">
+# http://www.hurriyet.com.tr/english/domestic/9626174.asp?scr=1
+# </a>
+
+# From Sue Williams (2008-08-20):
+# This article says that around the end of March 2011, Turkey wants to
+# adjust the clocks forward by 1/2 hour and stay that way permanently.
+# The article indicates that this is a change in timezone offset in addition
+# to stopping observance of DST.
+# This proposal has not yet been approved.
+#
+# Read more here...
+#
+# Turkey to abandon daylight saving time in 2011
+# <a href="http://www.turkishdailynews.com.tr/article.php?enewsid=112989">
+# http://www.turkishdailynews.com.tr/article.php?enewsid=112989
+# </a>
+
 # 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	-
diff --git a/timezone/leapseconds b/timezone/leapseconds
index 35df858d79..a2f4f0be37 100644
--- a/timezone/leapseconds
+++ b/timezone/leapseconds
@@ -1,4 +1,4 @@
-# @(#)leapseconds	8.5
+# @(#)leapseconds	8.6
 
 # Allowance for leapseconds added to each timezone file.
 
@@ -44,40 +44,49 @@ 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
+Leap	2008	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
-# OBSERVATOIRE DE PARIS				
+# 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
-# Internet  : services.iers@obspm.fr
+# e-mail    : services.iers@obspm.fr
+# http://hpiers.obspm.fr/eop-pc
 #
-# Paris, 18 January 2008
+# Paris, 4 July 2008
 #
-# Bulletin C 35
+# Bulletin C 36
 #
-# To authorities responsible		
+# To authorities responsible
 # for the measurement and
-# distribution of time	
+# distribution of time
 #
-# INFORMATION ON UTC - TAI
+# UTC TIME STEP
+# on the 1st of January 2009
 #
-# NO positive leap second will be introduced at the end of June 2008.
-# The difference between Coordinated Universal Time UTC and the
-# International Atomic Time TAI is :		
+# A positive leap second will be introduced at the end of December 2008.
+# The sequence of dates of the UTC second markers will be:		
 #
-# from 2006 January 1, 0h UTC, until further notice : UTC-TAI = -33 s
+# 2008 December 31,     23h 59m 59s
+# 2008 December 31,     23h 59m 60s
+# 2009 January   1,      0h  0m  0s
+#
+# The difference between UTC and the International Atomic Time TAI is:
+#
+# from 2006 January 1, 0h UTC, to 2009 January 1  0h UTC  : UTC-TAI = - 33s
+# from 2009 January 1, 0h UTC, until further notice       : UTC-TAI = - 34s
 #
 # 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
+# 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 the IERS
+# Head		
+# Earth Orientation Center of IERS
 # Observatoire de Paris, France
diff --git a/timezone/northamerica b/timezone/northamerica
index 60e5d51e00..b8b333cc56 100644
--- a/timezone/northamerica
+++ b/timezone/northamerica
@@ -1,4 +1,4 @@
-# @(#)northamerica	8.23
+# @(#)northamerica	8.24
 # <pre>
 
 # also includes Central America and the Caribbean
@@ -2076,8 +2076,8 @@ Zone	America/Antigua	-4:07:12 -	LMT	1912 Mar 2
 # http://www.jonesbahamas.com/?c=45&a=10412
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Bahamas	1964	2006	-	Oct	lastSun	2:00	0	S
-Rule	Bahamas	1964	1986	-	Apr	lastSun	2:00	1:00	D
+Rule	Bahamas	1964	1975	-	Oct	lastSun	2:00	0	S
+Rule	Bahamas	1964	1975	-	Apr	lastSun	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	1976
diff --git a/timezone/southamerica b/timezone/southamerica
index 43f73d3238..e2244cf237 100644
--- a/timezone/southamerica
+++ b/timezone/southamerica
@@ -1,4 +1,4 @@
-# @(#)southamerica	8.19
+# @(#)southamerica	8.27
 # <pre>
 
 # This data is by no means authoritative; if you think you know better,
@@ -164,9 +164,22 @@ Rule	Arg	2000	only	-	Mar	3	0:00	0	-
 # From Paul Eggert (2007-12-22):
 # For dates after mid-2008, the following rules are my guesses and
 # are quite possibly wrong, but are more likely than no DST at all.
+
+# From Alexander Krivenyshev (2008-09-05):
+# As per message from Carlos Alberto Fonseca Arauz (Nicaragua),
+# Argentina will start DST on Sunday October 19, 2008.
+#
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_argentina03.html">
+# http://www.worldtimezone.com/dst_news/dst_news_argentina03.html
+# </a>
+# OR
+# <a href="http://www.impulsobaires.com.ar/nota.php?id=57832 (in spanish)">
+# http://www.impulsobaires.com.ar/nota.php?id=57832 (in spanish)
+# </a>
+
 Rule	Arg	2007	only	-	Dec	30	0:00	1:00	S
 Rule	Arg	2008	max	-	Mar	Sun>=15	0:00	0	-
-Rule	Arg	2008	max	-	Oct	Sun>=1	0:00	1:00	S
+Rule	Arg	2008	max	-	Oct	Sun>=15	0:00	1:00	S
  
 # From Mariano Absatz (2004-05-21):
 # Today it was officially published that the Province of Mendoza is changing
@@ -294,14 +307,14 @@ Rule	Arg	2008	max	-	Oct	Sun>=1	0:00	1:00	S
 # back in 2004, when these provinces changed to UTC-4 for a few days, I
 # mailed them personally and never got an answer).
 
-# From Arthur David Olson (2008-03-15):
-# Until there's better information, asssume San Luis was like San Juan
-# rather than Mendoza (since San Juan has a simpler DST history).
-
+# From Paul Eggert (2008-06-30):
 # Unless otherwise specified, data are from Shanks & Pottenger through 1992,
 # from the IATA otherwise.  As noted below, Shanks & Pottenger say that
-# America/Cordoba split into 6 subregions during 1991/1992, but we
-# haven't verified this yet so for now we'll keep it a single region.
+# America/Cordoba split into 6 subregions during 1991/1992, one of which
+# was America/San_Luis, but we haven't verified this yet so for now we'll
+# keep America/Cordoba a single region rather than splitting it into the
+# other 5 subregions.
+
 #
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 #
@@ -316,14 +329,12 @@ Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31
 #
 # Santa Fe (SF), Entre Rios (ER), Corrientes (CN), Misiones (MN), Chaco (CC),
 # Formosa (FM), Salta (SA), Santiago del Estero (SE), Cordoba (CB),
-# San Luis (SL), La Pampa (LP), Neuquen (NQ), Rio Negro (RN)
+# La Pampa (LP), Neuquen (NQ), Rio Negro (RN)
 #
 # Shanks & Pottenger also make the following claims, which we haven't verified:
 # - Formosa switched to -3:00 on 1991-01-07.
 # - Misiones switched to -3:00 on 1990-12-29.
 # - Chaco switched to -3:00 on 1991-01-04.
-# - San Luis switched to -4:00 on 1990-03-14, then to -3:00 on 1990-10-15,
-#   then to -4:00 on 1991-03-01, then to -3:00 on 1991-06-01.
 # - Santiago del Estero switched to -4:00 on 1991-04-01,
 #   then to -3:00 on 1991-04-26.
 #
@@ -425,10 +436,13 @@ Zone America/Argentina/San_Luis -4:25:24 - 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  1
-			-4:00	-	WART	1991 May  7
-			-3:00	Arg	AR%sT	1999 Oct  3
-			-4:00	Arg	AR%sT	2000 Mar  3
+			-3:00	Arg	AR%sT	1990
+			-3:00	1:00	ARST	1990 Mar 14
+			-4:00	-	WART	1990 Oct 15
+			-4:00	1:00	WARST	1991 Mar  1
+			-4:00	-	WART	1991 Jun  1
+			-3:00	-	ART	1999 Oct  3
+			-4:00	1:00	WARST	2000 Mar  3
 			-3:00	-	ART	2004 May 31
 			-4:00	-	WART	2004 Jul 25
 			-3:00	Arg	AR%sT	2008 Jan 21
@@ -540,12 +554,86 @@ Zone	America/La_Paz	-4:32:36 -	LMT	1890
 # Brazil will start DST on 2007-10-14 00:00 and end on 2008-02-17 00:00:
 # http://www.mme.gov.br/site/news/detail.do;jsessionid=BBA06811AFCAAC28F0285210913513DA?newsId=13975
 
+# From Paul Schulze (2008-06-24):
+# ...by law number 11.662 of April 24, 2008 (published in the "Diario
+# Oficial da Uniao"...) in Brazil there are changes in the timezones,
+# effective today (00:00am at June 24, 2008) as follows:
+#
+# a) The timezone UTC+5 is e[x]tinguished, with all the Acre state and the
+# part of the Amazonas state that had this timezone now being put to the
+# timezone UTC+4
+# b) The whole Para state now is put at timezone UTC+3, instead of just
+# part of it, as was before.
+#
+# This change follows a proposal of senator Tiao Viana of Acre state, that
+# proposed it due to concerns about open television channels displaying
+# programs inappropriate to youths in the states that had the timezone
+# UTC+5 too early in the night. In the occasion, some more corrections
+# were proposed, trying to unify the timezones of any given state. This
+# change modifies timezone rules defined in decree 2.784 of 18 June,
+# 1913.
+
+# From Rodrigo Severo (2008-06-24):
+# Just correcting the URL:
+# <a href="https://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=3Ddo&secao=3D1&pagina=3D1&data=3D25/04/2008">
+# https://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=3Ddo&secao=3D1&pagina=3D1&data=3D25/04/2008
+# </a>
+#
+# As a result of the above Decree I believe the America/Rio_Branco
+# timezone shall be modified from UTC-5 to UTC-4 and a new timezone shall
+# be created to represent the the west side of the Para State. I
+# suggest this new timezone be called Santarem as the most
+# important/populated city in the affected area.
+#
+# This new timezone would be the same as the Rio_Branco timezone up to
+# the 2008/06/24 change which would be to UTC-3 instead of UTC-4.
+
+# From Alex Krivenyshev (2008-06-24):
+# This is a quick reference page for New and Old Brazil Time Zones map.
+# <a href="http://www.worldtimezone.com/brazil-time-new-old.php">
+# http://www.worldtimezone.com/brazil-time-new-old.php
+# </a>
+#
+# - 4 time zones replaced by 3 time zones-eliminating time zone UTC- 05
+# (state Acre and the part of the Amazonas will be UTC/GMT- 04) - western
+# part of Par state is moving to one timezone UTC- 03 (from UTC -04).
+
 # From Paul Eggert (2002-10-10):
 # The official decrees referenced below are mostly taken from
 # <a href="http://pcdsh01.on.br/DecHV.html">
 # Decretos sobre o Horario de Verao no Brasil
 # </a>.
 
+# From Steffen Thorsen (2008-08-29):
+# As announced by the government and many newspapers in Brazil late
+# yesterday, Brazil will start DST on 2008-10-19 (need to change rule) and
+# it will end on 2009-02-15 (current rule for Brazil is fine). Based on
+# past years experience with the elections, there was a good chance that
+# the start was postponed to November, but it did not happen this year.
+#
+# It has not yet been posted to http://pcdsh01.on.br/DecHV.html
+#
+# An official page about it:
+# <a href="http://www.mme.gov.br/site/news/detail.do?newsId=16722">
+# http://www.mme.gov.br/site/news/detail.do?newsId=16722
+# </a>
+# Note that this link does not always work directly, but must be accessed
+# by going to
+# <a href="http://www.mme.gov.br/first>"
+# http://www.mme.gov.br/first
+# </a>
+#
+# One example link that works directly:
+# <a href="http://jornale.com.br/index.php?option=com_content&task=view&id=13530&Itemid=54">
+# http://jornale.com.br/index.php?option=com_content&task=view&id=13530&Itemid=54
+# (Portuguese)
+# </a>
+#
+# We have a written a short article about it as well:
+# <a href="http://www.timeanddate.com/news/time/brazil-dst-2008-2009.html">
+# http://www.timeanddate.com/news/time/brazil-dst-2008-2009.html
+# </a>
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 # Decree <a href="http://pcdsh01.on.br/HV20466.htm">20,466</a> (1931-10-01)
 # Decree <a href="http://pcdsh01.on.br/HV21896.htm">21,896</a> (1932-01-10)
@@ -662,13 +750,13 @@ Rule	Brazil	2000	only	-	Feb	27	 0:00	0	-
 Rule	Brazil	2000	2001	-	Oct	Sun>=8	 0:00	1:00	S
 Rule	Brazil	2001	2006	-	Feb	Sun>=15	 0:00	0	-
 # Decree 4,399 (2002-10-01) repeals DST in AL, CE, MA, PB, PE, PI, RN, SE.
-# <a href="http://www.presidencia.gov.br/CCIVIL/decreto/2002/D4399.htm"></a>
+# <a href="http://www.presidencia.gov.br/CCIVIL/decreto/2002/D4399.htm">4,399</a>
 Rule	Brazil	2002	only	-	Nov	 3	 0:00	1:00	S
 # Decree 4,844 (2003-09-24; corrected 2003-09-26) repeals DST in BA, MT, TO.
-# <a href="http://www.presidencia.gov.br/CCIVIL/decreto/2003/D4844.htm"></a>
+# <a href="http://www.presidencia.gov.br/CCIVIL/decreto/2003/D4844.htm">4,844</a>
 Rule	Brazil	2003	only	-	Oct	19	 0:00	1:00	S
 # Decree 5,223 (2004-10-01) reestablishes DST in MT.
-# <a href="http://www.planalto.gov.br/ccivil_03/_Ato2004-2006/2004/Decreto/D5223.htm"></a>
+# <a href="http://www.planalto.gov.br/ccivil_03/_Ato2004-2006/2004/Decreto/D5223.htm">5,223</a>
 Rule	Brazil	2004	only	-	Nov	 2	 0:00	1:00	S
 # Decree <a href="http://pcdsh01.on.br/DecHV5539.gif">5,539</a> (2005-09-19),
 # adopted by the same states as before.
@@ -677,17 +765,16 @@ Rule	Brazil	2005	only	-	Oct	16	 0:00	1:00	S
 # adopted by the same states as before.
 Rule	Brazil	2006	only	-	Nov	 5	 0:00	1:00	S
 Rule	Brazil	2007	only	-	Feb	25	 0:00	0	-
-# (Decree number not yet known)
-# http://www.brasil.gov.br/noticias/ultimas_noticias/horario_verao070920/
-# (2007-09-20) after a heads-up from Steffen Thorsen:
-Rule	Brazil	2007	max	-	Oct	Sun>=8	 0:00	1:00	S
+# Decree <a href="http://pcdsh01.on.br/DecHV6212.gif">6,212</a> (2007-09-26),
+# adopted by the same states as before.
+Rule	Brazil	2007	only	-	Oct	Sun>=8	 0:00	1:00	S
 Rule	Brazil	2008	max	-	Feb	Sun>=15	 0:00	0	-
+Rule	Brazil	2008	max	-	Oct	Sun>=15	 0:00	1:00	S
 # The latest ruleset listed above says that the following states observe DST:
 # DF, ES, GO, MG, MS, MT, PR, RJ, RS, SC, SP.
 # For dates after mid-2008, the above rules with TO="max" are guesses
 # and are quite possibly wrong, but are more likely than no DST at all.
 
-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 #
 # Fernando de Noronha (administratively part of PE)
@@ -713,6 +800,13 @@ Zone America/Belem	-3:13:56 -	LMT	1914
 			-3:00	Brazil	BR%sT	1988 Sep 12
 			-3:00	-	BRT
 #
+# west Para (PA)
+# West Para includes Altamira, Oribidos, Prainha, Oriximina, and Santarem.
+Zone America/Santarem	-3:38:48 -	LMT	1914
+			-4:00	Brazil	AM%sT	1988 Sep 12
+			-4:00	-	AMT	2008 Jun 24 00:00
+			-3:00	-	BRT
+#
 # Maranhao (MA), Piaui (PI), Ceara (CE), Rio Grande do Norte (RN),
 # Paraiba (PB)
 Zone America/Fortaleza	-2:34:00 -	LMT	1914
@@ -775,8 +869,7 @@ Zone America/Cuiaba	-3:44:20 -	LMT	1914
 			-4:00	-	AMT	2004 Oct  1
 			-4:00	Brazil	AM%sT
 #
-# west Para (PA), Rondonia (RO)
-# West Para includes Altamira, Oribidos, Prainha, Oriximina, and Santarem.
+# Rondonia (RO)
 Zone America/Porto_Velho -4:15:36 -	LMT	1914
 			-4:00	Brazil	AM%sT	1988 Sep 12
 			-4:00	-	AMT
@@ -803,13 +896,14 @@ Zone America/Eirunepe	-4:39:28 -	LMT	1914
 			-5:00	Brazil	AC%sT	1988 Sep 12
 			-5:00	-	ACT	1993 Sep 28
 			-5:00	Brazil	AC%sT	1994 Sep 22
-			-5:00	-	ACT
+			-5:00	-	ACT	2008 Jun 24 00:00
+			-4:00	-	AMT
 #
 # Acre (AC)
 Zone America/Rio_Branco	-4:31:12 -	LMT	1914
 			-5:00	Brazil	AC%sT	1988 Sep 12
-			-5:00	-	ACT
-
+			-5:00	-	ACT	2008 Jun 24 00:00
+			-4:00	-	AMT
 
 # Chile
 
@@ -856,7 +950,7 @@ Zone America/Rio_Branco	-4:31:12 -	LMT	1914
 # http://www.horaoficial.cl/cambio.htm
 # </a>.
 
-# From José Miguel Garrido (2008-03-05):
+# From Jose Miguel Garrido (2008-03-05):
 # ...
 # You could see the announces of the change on 
 # <a href="http://www.shoa.cl/noticias/2008/04hora/hora.htm">
diff --git a/timezone/zone.tab b/timezone/zone.tab
index 1647036c0e..39cc55f816 100644
--- a/timezone/zone.tab
+++ b/timezone/zone.tab
@@ -1,4 +1,4 @@
-# @(#)zone.tab	8.16
+# @(#)zone.tab	8.18
 #
 # TZ zone descriptions
 #
@@ -92,7 +92,8 @@ BR	-1259-03831	America/Bahia	Bahia
 BR	-2332-04637	America/Sao_Paulo	S & SE Brazil (GO, DF, MG, ES, RJ, SP, PR, SC, RS)
 BR	-2027-05437	America/Campo_Grande	Mato Grosso do Sul
 BR	-1535-05605	America/Cuiaba	Mato Grosso
-BR	-0846-06354	America/Porto_Velho	W Para, Rondonia
+BR	-0226-05452	America/Santarem	W Para
+BR	-0846-06354	America/Porto_Velho	Rondonia
 BR	+0249-06040	America/Boa_Vista	Roraima
 BR	-0308-06001	America/Manaus	E Amazonas
 BR	-0640-06952	America/Eirunepe	W Amazonas