aboutsummaryrefslogtreecommitdiff
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
parentUpdated to fedora-glibc-20080828T1623 (diff)
downloadglibc-6d8225fe1a3277273c245ceb1b35fd536300f649.tar.gz
glibc-6d8225fe1a3277273c245ceb1b35fd536300f649.tar.bz2
glibc-6d8225fe1a3277273c245ceb1b35fd536300f649.zip
Updated to fedora-glibc-20081019T1815cvs/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