[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commits] r7063 - in /trunk: libc/ libc/dlfcn/ libc/elf/ libc/hurd/hurd/ libc/localedata/ libc/localedata/locales/ libc/malloc/ libc/n...
- To: commits@xxxxxxxxxx
- Subject: [commits] r7063 - in /trunk: libc/ libc/dlfcn/ libc/elf/ libc/hurd/hurd/ libc/localedata/ libc/localedata/locales/ libc/malloc/ libc/n...
- From: joseph@xxxxxxxxxx
- Date: Wed, 01 Oct 2008 20:03:35 -0000
Author: joseph
Date: Wed Oct 1 13:03:35 2008
New Revision: 7063
Log:
Merge changes between r6780 and r7062 from /fsf/trunk.
Added:
trunk/libc/localedata/locales/en_AG
- copied unchanged from r7062, fsf/trunk/libc/localedata/locales/en_AG
trunk/libc/localedata/locales/ht_HT
- copied unchanged from r7062, fsf/trunk/libc/localedata/locales/ht_HT
trunk/libc/localedata/locales/ks_IN@devanagari
- copied unchanged from r7062, fsf/trunk/libc/localedata/locales/ks_IN@devanagari
trunk/libc/localedata/locales/nl_AW
- copied unchanged from r7062, fsf/trunk/libc/localedata/locales/nl_AW
trunk/libc/localedata/locales/sd_IN
- copied unchanged from r7062, fsf/trunk/libc/localedata/locales/sd_IN
trunk/libc/localedata/locales/sd_IN@devanagari
- copied unchanged from r7062, fsf/trunk/libc/localedata/locales/sd_IN@devanagari
trunk/ports/sysdeps/mips/bits/linkmap.h
- copied unchanged from r7062, fsf/trunk/ports/sysdeps/mips/bits/linkmap.h
trunk/ports/sysdeps/mips/dl-lookup.c
- copied unchanged from r7062, fsf/trunk/ports/sysdeps/mips/dl-lookup.c
trunk/ports/sysdeps/mips/do-lookup.h
- copied unchanged from r7062, fsf/trunk/ports/sysdeps/mips/do-lookup.h
Modified:
trunk/libc/ChangeLog
trunk/libc/NEWS
trunk/libc/dlfcn/dlopen.c
trunk/libc/elf/elf.h
trunk/libc/hurd/hurd/signal.h
trunk/libc/localedata/ChangeLog
trunk/libc/localedata/SUPPORTED
trunk/libc/localedata/locales/de_DE
trunk/libc/localedata/locales/en_GB
trunk/libc/malloc/malloc.c
trunk/libc/nptl/ChangeLog
trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
trunk/libc/nscd/connections.c
trunk/libc/po/sv.po
trunk/libc/socket/Makefile
trunk/libc/socket/Versions
trunk/libc/socket/sys/socket.h
trunk/libc/sunrpc/rpc/svc.h
trunk/libc/sysdeps/s390/s390-64/s390x-mcount.S
trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
trunk/libc/sysdeps/unix/sysv/linux/s390/s390-64/socket.S
trunk/libc/timezone/africa
trunk/libc/timezone/asia
trunk/libc/timezone/australasia
trunk/libc/timezone/europe
trunk/libc/timezone/leapseconds
trunk/libc/timezone/northamerica
trunk/libc/timezone/southamerica
trunk/libc/timezone/zone.tab
trunk/ports/ChangeLog.mips
trunk/ports/sysdeps/mips/dl-dtprocnum.h
trunk/ports/sysdeps/mips/dl-machine.h
trunk/ports/sysdeps/mips/dl-trampoline.c
trunk/ports/sysdeps/mips/tls-macros.h
trunk/ports/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
trunk/ports/sysdeps/unix/sysv/linux/mips/nptl/sysdep-cancel.h
Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Wed Oct 1 13:03:35 2008
@@ -1,3 +1,68 @@
+2008-10-01 Mark Shinwell <shinwell@xxxxxxxxxxxxxxxx>
+
+ * 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@xxxxxxxxxx>
+
+ * 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@xxxxxxxxxx>
+
+ * nscd/connections.c: Disable use of paccept for now.
+
+2008-09-29 Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ * 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@xxxxxxxxxx>
+
+ * 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@xxxxxxxxxx>
+
+ * dlfcn/dlopen.c (dlopen_doit): Allow __RTLD_SPROF flag.
+ Patch by Olivier Fourdan <ofourdan@xxxxxxxxxx>.
+
+2008-09-15 Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ * sunrpc/rpc/svc.h: Declare svcfd_create.
+ Patch by Michael Solberg <msolberg@xxxxxxxxxx>.
+
+2008-09-12 Flavio Leitner <fleitner@xxxxxxxxxx>
+ Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ * malloc/malloc.c (public_vALLOc): Try other arenas in case
+ _int_valloc fails.
+ (public_pVALLOc): Likewise.
+
+2008-09-02 Andreas Jaeger <aj@xxxxxxx>
+
+ * sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h: Fix last
+ commit.
+
+2008-08-26 Aurelien Jarno <aurelien@xxxxxxxxxxx>
+
+ [BZ #6860]
+ * hurd/hurd/signal.h (HURD_MSGPORT_RPC): Fix a typo.
+
2008-07-18 Daniel Jacobowitz <dan@xxxxxxxxxxxxxxxx>
* Makefile (check-data): Check data directory in add-ons.
Modified: trunk/libc/NEWS
==============================================================================
--- trunk/libc/NEWS (original)
+++ trunk/libc/NEWS Wed Oct 1 13:03:35 2008
@@ -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 @@
* 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 @@
* 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
Modified: trunk/libc/dlfcn/dlopen.c
==============================================================================
--- trunk/libc/dlfcn/dlopen.c (original)
+++ trunk/libc/dlfcn/dlopen.c Wed Oct 1 13:03:35 2008
@@ -60,7 +60,8 @@
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,
Modified: trunk/libc/elf/elf.h
==============================================================================
--- trunk/libc/elf/elf.h (original)
+++ trunk/libc/elf/elf.h Wed Oct 1 13:03:35 2008
@@ -1397,6 +1397,7 @@
#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 @@
#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 @@
#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. */
Modified: trunk/libc/hurd/hurd/signal.h
==============================================================================
--- trunk/libc/hurd/hurd/signal.h (original)
+++ trunk/libc/hurd/hurd/signal.h Wed Oct 1 13:03:35 2008
@@ -347,7 +347,7 @@
if (__err) \
break; \
/* Get the reference port. */ \
- _err = (fetch_refport_expr); \
+ __err = (fetch_refport_expr); \
if (__err) \
{ \
/* Couldn't get it; deallocate MSGPORT and fail. */ \
Modified: trunk/libc/localedata/ChangeLog
==============================================================================
--- trunk/libc/localedata/ChangeLog (original)
+++ trunk/libc/localedata/ChangeLog Wed Oct 1 13:03:35 2008
@@ -1,8 +1,49 @@
+2008-09-17 Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ * locales/en_GB: Set first weekday and workday to 2.
+
+2008-09-16 Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ * 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@xxxxxxxxxx>
+
+ * 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@xxxxxxxxxx>.
+
+ * locales/sd_IN@devanagari: Fix locale name.
+ * locales/ks_IN@devanagari: Likewise.
+
+2008-09-01 Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ * SUPPORTED (SUPPORTED-LOCALES): Add ks_IN@devnagari and
+ sd_IN@devanagari.
+
+ [BZ #6857]
+ * locales/sd_IN@devanagari: New file.
+ Contributed by Pravin Satpute <psatpute@xxxxxxxxxx>.
+
+ [BZ #6856]
+ * locales/ks_IN@devanagari: New file.
+ Contributed by Pravin Satpute <psatpute@xxxxxxxxxx>.
+
2008-07-11 Ulrich Drepper <drepper@xxxxxxxxxx>
* locales/iso14651_t1_common: Add Kannada collation support.
Patch by Pravin Satpute <psatpute@xxxxxxxxxx>.
-
+
2008-07-08 Ulrich Drepper <drepper@xxxxxxxxxx>
[BZ #6713]
Modified: trunk/libc/localedata/SUPPORTED
==============================================================================
--- trunk/libc/localedata/SUPPORTED (original)
+++ trunk/libc/localedata/SUPPORTED Wed Oct 1 13:03:35 2008
@@ -103,6 +103,7 @@
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 \
@@ -225,6 +226,7 @@
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 \
@@ -255,6 +257,7 @@
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 \
@@ -288,6 +291,7 @@
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 \
@@ -324,6 +328,8 @@
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 \
Modified: trunk/libc/localedata/locales/de_DE
==============================================================================
--- trunk/libc/localedata/locales/de_DE (original)
+++ trunk/libc/localedata/locales/de_DE Wed Oct 1 13:03:35 2008
@@ -203,7 +203,7 @@
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
Modified: trunk/libc/localedata/locales/en_GB
==============================================================================
--- trunk/libc/localedata/locales/en_GB (original)
+++ trunk/libc/localedata/locales/en_GB Wed Oct 1 13:03:35 2008
@@ -122,8 +122,8 @@
<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 @@
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
Modified: trunk/libc/malloc/malloc.c
==============================================================================
--- trunk/libc/malloc/malloc.c (original)
+++ trunk/libc/malloc/malloc.c Wed Oct 1 13:03:35 2008
@@ -3800,17 +3800,39 @@
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));
-
- arena_get(ar_ptr, bytes + mp_.pagesize + MINSIZE);
+ return (*hook)(pagesz, bytes, RETURN_ADDRESS (0));
+
+ 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 @@
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));
-
- arena_get(ar_ptr, bytes + 2*mp_.pagesize + MINSIZE);
+ return (*hook)(pagesz, rounded_bytes, RETURN_ADDRESS (0));
+
+ 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;
}
Modified: trunk/libc/nptl/ChangeLog
==============================================================================
--- trunk/libc/nptl/ChangeLog (original)
+++ trunk/libc/nptl/ChangeLog Wed Oct 1 13:03:35 2008
@@ -1,3 +1,10 @@
+2008-09-08 Richard Guenther <rguenther@xxxxxxx>
+
+ * 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@xxxxxxxxxx>
* sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
Modified: trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
==============================================================================
--- trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h (original)
+++ trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h Wed Oct 1 13:03:35 2008
@@ -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@xxxxxxxxxx>, 2002.
@@ -323,7 +323,7 @@
"=m" (futex), "=&d" (ignore3) \
: "1" (1), "m" (futex), \
"i" (MULTIPLE_THREADS_OFFSET), "0" (0), \
- "g" (private) \
+ "g" ((int) (private)) \
: "memory"); \
} \
})
@@ -345,7 +345,7 @@
"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 @@
"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 @@
: "=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 @@
: "=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 @@
: "=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 @@
"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_4 \
"18:" \
: "=m" (futex), "=&a" (ignore), "=&c" (ignore2) \
- : "i" (FUTEX_WAITERS), "m" (futex), "g" (private) \
+ : "i" (FUTEX_WAITERS), "m" (futex), \
+ "g" ((int) (private)) \
: "memory"); \
})
Modified: trunk/libc/nscd/connections.c
==============================================================================
--- trunk/libc/nscd/connections.c (original)
+++ trunk/libc/nscd/connections.c Wed Oct 1 13:03:35 2008
@@ -239,7 +239,7 @@
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. */
Modified: trunk/libc/po/sv.po
==============================================================================
--- trunk/libc/po/sv.po (original)
+++ trunk/libc/po/sv.po Wed Oct 1 13:03:35 2008
@@ -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@xxxxxxxxxx>, 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@xxxxxxxxxx>, 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@xxxxxxxxxx>\n"
"Language-Team: Swedish <tp-sv@xxxxxxxxxxxxxxx>\n"
"MIME-Version: 1.0\n"
@@ -2853,7 +2854,7 @@
"\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 @@
#: 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
Modified: trunk/libc/socket/Makefile
==============================================================================
--- trunk/libc/socket/Makefile (original)
+++ trunk/libc/socket/Makefile Wed Oct 1 13:03:35 2008
@@ -27,7 +27,7 @@
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
Modified: trunk/libc/socket/Versions
==============================================================================
--- trunk/libc/socket/Versions (original)
+++ trunk/libc/socket/Versions Wed Oct 1 13:03:35 2008
@@ -31,7 +31,4 @@
# Addition from P1003.1-200x
sockatmark;
}
- GLIBC_2.9 {
- paccept;
- }
}
Modified: trunk/libc/socket/sys/socket.h
==============================================================================
--- trunk/libc/socket/sys/socket.h (original)
+++ trunk/libc/socket/sys/socket.h Wed Oct 1 13:03:35 2008
@@ -214,18 +214,6 @@
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;
Modified: trunk/libc/sunrpc/rpc/svc.h
==============================================================================
--- trunk/libc/sunrpc/rpc/svc.h (original)
+++ trunk/libc/sunrpc/rpc/svc.h Wed Oct 1 13:03:35 2008
@@ -303,6 +303,11 @@
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.
Modified: trunk/libc/sysdeps/s390/s390-64/s390x-mcount.S
==============================================================================
--- trunk/libc/sysdeps/s390/s390-64/s390x-mcount.S (original)
+++ trunk/libc/sysdeps/s390/s390-64/s390x-mcount.S Wed Oct 1 13:03:35 2008
@@ -64,7 +64,7 @@
/* 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))
Modified: trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h Wed Oct 1 13:03:35 2008
@@ -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 */
Modified: trunk/libc/sysdeps/unix/sysv/linux/s390/s390-64/socket.S
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/s390/s390-64/socket.S (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/s390/s390-64/socket.S Wed Oct 1 13:03:35 2008
@@ -61,7 +61,7 @@
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. */
Modified: trunk/libc/timezone/africa
==============================================================================
--- trunk/libc/timezone/africa (original)
+++ trunk/libc/timezone/africa Wed Oct 1 13:03:35 2008
@@ -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 @@
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 @@
# 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 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
Modified: trunk/libc/timezone/asia
==============================================================================
--- trunk/libc/timezone/asia (original)
+++ trunk/libc/timezone/asia Wed Oct 1 13:03:35 2008
@@ -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 @@
# (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 @@
# 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/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 @@
# 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 @@
# 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 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
Modified: trunk/libc/timezone/australasia
==============================================================================
--- trunk/libc/timezone/australasia (original)
+++ trunk/libc/timezone/australasia Wed Oct 1 13:03:35 2008
@@ -1,4 +1,4 @@
-# @(#)australasia 8.8
+# @(#)australasia 8.9
# <pre>
# This file also includes Pacific islands.
@@ -1346,7 +1346,7 @@
# * 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 @@
# (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
Modified: trunk/libc/timezone/europe
==============================================================================
--- trunk/libc/timezone/europe (original)
+++ trunk/libc/timezone/europe Wed Oct 1 13:03:35 2008
@@ -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 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 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 @@
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 @@
# [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 @@
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 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.
@@ -2304,6 +2352,27 @@
# I was able to locate the following seemingly official document
# (on a non-government server though) describing dates between 2002 and 2006:
# http://www.alomaliye.com/bkk_2002_3769.htm
+
+# 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
Modified: trunk/libc/timezone/leapseconds
==============================================================================
--- trunk/libc/timezone/leapseconds (original)
+++ trunk/libc/timezone/leapseconds Wed Oct 1 13:03:35 2008
@@ -1,4 +1,4 @@
-# @(#)leapseconds 8.5
+# @(#)leapseconds 8.6
# Allowance for leapseconds added to each timezone file.
@@ -44,40 +44,49 @@
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@xxxxxxxx
+# e-mail : services.iers@xxxxxxxx
+# 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
Modified: trunk/libc/timezone/northamerica
==============================================================================
--- trunk/libc/timezone/northamerica (original)
+++ trunk/libc/timezone/northamerica Wed Oct 1 13:03:35 2008
@@ -1,4 +1,4 @@
-# @(#)northamerica 8.23
+# @(#)northamerica 8.24
# <pre>
# also includes Central America and the Caribbean
@@ -2076,8 +2076,8 @@
# 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
Modified: trunk/libc/timezone/southamerica
==============================================================================
--- trunk/libc/timezone/southamerica (original)
+++ trunk/libc/timezone/southamerica Wed Oct 1 13:03:35 2008
@@ -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 @@
# 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 @@
# 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 @@
#
# 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 @@
-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,11 +554,85 @@
# 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)
@@ -662,13 +750,13 @@
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,16 +765,15 @@
# 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]
#
@@ -713,6 +800,13 @@
-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 @@
-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 @@
-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 @@
# 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">
Modified: trunk/libc/timezone/zone.tab
==============================================================================
--- trunk/libc/timezone/zone.tab (original)
+++ trunk/libc/timezone/zone.tab Wed Oct 1 13:03:35 2008
@@ -1,4 +1,4 @@
-# @(#)zone.tab 8.16
+# @(#)zone.tab 8.18
#
# TZ zone descriptions
#
@@ -92,7 +92,8 @@
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
Modified: trunk/ports/ChangeLog.mips
==============================================================================
--- trunk/ports/ChangeLog.mips (original)
+++ trunk/ports/ChangeLog.mips Wed Oct 1 13:03:35 2008
@@ -1,3 +1,42 @@
+2008-10-01 Mark Shinwell <shinwell@xxxxxxxxxxxxxxxx>
+ Daniel Jacobowitz <dan@xxxxxxxxxxxxxxxx>
+ Richard Sandiford <rdsandiford@xxxxxxxxxxxxxx>
+
+ * sysdeps/mips/dl-dtprocnum.h (DT_MIPS_NUM): Redefine.
+ * sysdeps/mips/dl-lookup.c: New.
+ * sysdeps/mips/do-lookup.h: New.
+ * sysdeps/mips/dl-machine.h (ELF_MACHINE_NO_PLT): Remove
+ definition.
+ (STO_MIPS_PLT, R_MIPS_COPY, R_MIPS_JUMP_SLOT, DT_MIPS_PLTGOT): Define
+ if needed.
+ (ELF_MACHINE_JMP_SLOT): Alter definition and update comment.
+ (elf_machine_type_class): Likewise.
+ (ELF_MACHINE_PLT_REL): Define.
+ (elf_machine_fixup_plt): New.
+ (elf_machine_plt_value): New.
+ (elf_machine_reloc): Handle jump slot and copy relocations.
+ (elf_machine_lazy_rel): Point relocation place at PLT if
+ required.
+ (RESOLVE_GOTSYM): Take a relocation type argument.
+ (elf_machine_got_rel): Bind lazy stubs directly to their target if
+ !lazy. Skip lazy binding for PLT symbols.
+ (elf_machine_runtime_setup): Fill in .got.plt header.
+ * sysdeps/mips/dl-trampoline.c (IFNEWABI): New macro.
+ (ELF_DL_PLT_FRAME_SIZE, ELF_DL_PLT_SAVE_ARG_REGS,
+ ELF_DL_PLT_RESTORE_ARG_REGS): Define.
+ (_dl_runtime_pltresolve): New.
+ * sysdeps/mips/bits/linkmap.h: New file.
+ * sysdeps/mips/tls-macros.h: Load $gp as required. Merge 32-bit and
+ 64-bit versions.
+
+ * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h (SYSCALL_ERROR_LABEL):
+ Delete definition.
+ * sysdeps/unix/sysv/linux/mips/nptl/sysdep-cancel.h (PSEUDO_CPLOAD,
+ PSEUDO_ERRJMP, PSEUDO_SAVEGP, PSEUDO_LOADGP): Define.
+ (PSEUDO): Use them. Move outside __PIC__.
+ (PSEUDO_JMP): New.
+ (CENABLE, CDISABLE): Use it.
+
2008-08-19 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/mips/sys/epoll.h: Change epoll_create2
Modified: trunk/ports/sysdeps/mips/dl-dtprocnum.h
==============================================================================
--- trunk/ports/sysdeps/mips/dl-dtprocnum.h (original)
+++ trunk/ports/sysdeps/mips/dl-dtprocnum.h Wed Oct 1 13:03:35 2008
@@ -17,6 +17,12 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+/* Until elf/elf.h in glibc is updated. */
+#ifndef STO_MIPS_PLT
+# undef DT_MIPS_NUM
+# define DT_MIPS_NUM 0x35
+#endif
+
/* Number of extra dynamic section entries for this architecture. By
default there are none. */
#define DT_THISPROCNUM DT_MIPS_NUM
Modified: trunk/ports/sysdeps/mips/dl-machine.h
==============================================================================
--- trunk/ports/sysdeps/mips/dl-machine.h (original)
+++ trunk/ports/sysdeps/mips/dl-machine.h Wed Oct 1 13:03:35 2008
@@ -24,8 +24,6 @@
#define dl_machine_h
#define ELF_MACHINE_NAME "MIPS"
-
-#define ELF_MACHINE_NO_PLT
#include <entry.h>
@@ -55,11 +53,23 @@
".size\t" __STRING(entry) ", . - " __STRING(entry) "\n\t"
#endif
+/* Until elf/elf.h in glibc is updated. */
+#ifndef STO_MIPS_PLT
+#define STO_MIPS_PLT 0x8
+#define R_MIPS_COPY 126
+#define R_MIPS_JUMP_SLOT 127
+#define DT_MIPS_PLTGOT 0x70000032
+#endif
+
/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries.
- This makes no sense on MIPS but we have to define this to R_MIPS_REL32
- to avoid the asserts in dl-lookup.c from blowing. */
-#define ELF_MACHINE_JMP_SLOT R_MIPS_REL32
-#define elf_machine_type_class(type) ELF_RTYPE_CLASS_PLT
+ This only makes sense on MIPS when using PLTs, so choose the
+ PLT relocation (not encountered when not using PLTs). */
+#define ELF_MACHINE_JMP_SLOT R_MIPS_JUMP_SLOT
+#define elf_machine_type_class(type) \
+ ((((type) == ELF_MACHINE_JMP_SLOT) * ELF_RTYPE_CLASS_PLT) \
+ | (((type) == R_MIPS_COPY) * ELF_RTYPE_CLASS_COPY))
+
+#define ELF_MACHINE_PLT_REL 1
/* Translate a processor specific dynamic tag to the index
in l_info array. */
@@ -72,6 +82,15 @@
*(ElfW(Addr) *)((l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) = \
(ElfW(Addr)) (r); \
} while (0)
+
+/* Allow ABIVERSION == 1, meaning PLTs and copy relocations are
+ required. */
+#define VALID_ELF_ABIVERSION(ver) (ver == 0 || ver == 2)
+#define VALID_ELF_OSABI(osabi) (osabi == ELFOSABI_SYSV)
+#define VALID_ELF_HEADER(hdr,exp,size) \
+ memcmp (hdr,exp,size-2) == 0 \
+ && VALID_ELF_OSABI (hdr[EI_OSABI]) \
+ && VALID_ELF_ABIVERSION (hdr[EI_ABIVERSION])
/* Return nonzero iff ELF header is compatible with the running host. */
static inline int __attribute_used__
@@ -294,6 +313,24 @@
# define ARCH_LA_PLTEXIT mips_n64_gnu_pltexit
# endif
+/* For a non-writable PLT, rewrite the .got.plt entry at RELOC_ADDR to
+ point at the symbol with address VALUE. For a writable PLT, rewrite
+ the corresponding PLT entry instead. */
+static inline ElfW(Addr)
+elf_machine_fixup_plt (struct link_map *map, lookup_t t,
+ const ElfW(Rel) *reloc,
+ ElfW(Addr) *reloc_addr, ElfW(Addr) value)
+{
+ return *reloc_addr = value;
+}
+
+static inline ElfW(Addr)
+elf_machine_plt_value (struct link_map *map, const ElfW(Rel) *reloc,
+ ElfW(Addr) value)
+{
+ return value;
+}
+
#endif /* !dl_machine_h */
#ifdef RESOLVE_MAP
@@ -461,6 +498,57 @@
#endif
case R_MIPS_NONE: /* Alright, Wilbur. */
break;
+
+ case R_MIPS_JUMP_SLOT:
+ {
+ struct link_map *sym_map;
+ ElfW(Addr) value;
+
+ /* The addend for a jump slot relocation must always be zero:
+ calls via the PLT always branch to the symbol's address and
+ not to the address plus a non-zero offset. */
+ if (r_addend != 0)
+ _dl_signal_error (0, map->l_name, NULL,
+ "found jump slot relocation with non-zero addend");
+
+ sym_map = RESOLVE_MAP (&sym, version, r_type);
+ value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value;
+ *addr_field = value;
+
+ break;
+ }
+
+ case R_MIPS_COPY:
+ {
+ const ElfW(Sym) *const refsym = sym;
+ struct link_map *sym_map;
+ ElfW(Addr) value;
+
+ /* Calculate the address of the symbol. */
+ sym_map = RESOLVE_MAP (&sym, version, r_type);
+ value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value;
+
+ if (__builtin_expect (sym == NULL, 0))
+ /* This can happen in trace mode if an object could not be
+ found. */
+ break;
+ if (__builtin_expect (sym->st_size > refsym->st_size, 0)
+ || (__builtin_expect (sym->st_size < refsym->st_size, 0)
+ && GLRO(dl_verbose)))
+ {
+ const char *strtab;
+
+ strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
+ _dl_error_printf ("\
+ %s: Symbol `%s' has different size in shared object, consider re-linking\n",
+ rtld_progname ?: "<program name unknown>",
+ strtab + refsym->st_name);
+ }
+ memcpy (reloc_addr, (void *) value,
+ MIN (sym->st_size, refsym->st_size));
+ break;
+ }
+
#if _MIPS_SIM == _ABI64
case R_MIPS_64:
/* For full compliance with the ELF64 ABI, one must precede the
@@ -505,9 +593,23 @@
auto inline void
__attribute__((always_inline))
elf_machine_lazy_rel (struct link_map *map,
- ElfW(Addr) l_addr, const ElfW(Rela) *reloc)
-{
- /* Do nothing. */
+ ElfW(Addr) l_addr, const ElfW(Rel) *reloc)
+{
+ ElfW(Addr) *const reloc_addr = (void *) (l_addr + reloc->r_offset);
+ const unsigned int r_type = ELFW(R_TYPE) (reloc->r_info);
+ /* Check for unexpected PLT reloc type. */
+ if (__builtin_expect (r_type == R_MIPS_JUMP_SLOT, 1))
+ {
+ if (__builtin_expect (map->l_mach.plt, 0) == 0)
+ {
+ /* Nothing is required here since we only support lazy
+ relocation in executables. */
+ }
+ else
+ *reloc_addr = map->l_mach.plt;
+ }
+ else
+ _dl_reloc_bad_type (map, r_type, 1);
}
auto inline void
@@ -538,13 +640,13 @@
const ElfW(Half) *vernum;
int i, n, symidx;
-#define RESOLVE_GOTSYM(sym,vernum,sym_index) \
+#define RESOLVE_GOTSYM(sym,vernum,sym_index,reloc) \
({ \
const ElfW(Sym) *ref = sym; \
const struct r_found_version *version \
= vernum ? &map->l_versions[vernum[sym_index] & 0x7fff] : NULL; \
struct link_map *sym_map; \
- sym_map = RESOLVE_MAP (&ref, version, R_MIPS_REL32); \
+ sym_map = RESOLVE_MAP (&ref, version, reloc); \
ref ? sym_map->l_addr + ref->st_value : 0; \
})
@@ -585,25 +687,38 @@
{
if (sym->st_shndx == SHN_UNDEF)
{
- if (ELFW(ST_TYPE) (sym->st_info) == STT_FUNC
- && sym->st_value && lazy)
- *got = sym->st_value + map->l_addr;
+ if (ELFW(ST_TYPE) (sym->st_info) == STT_FUNC && sym->st_value
+ && !(sym->st_other & STO_MIPS_PLT))
+ {
+ if (lazy)
+ *got = sym->st_value + map->l_addr;
+ else
+ /* This is a lazy-binding stub, so we don't need the
+ canonical address. */
+ *got = RESOLVE_GOTSYM (sym, vernum, symidx, R_MIPS_JUMP_SLOT);
+ }
else
- *got = RESOLVE_GOTSYM (sym, vernum, symidx);
+ *got = RESOLVE_GOTSYM (sym, vernum, symidx, R_MIPS_32);
}
else if (sym->st_shndx == SHN_COMMON)
- *got = RESOLVE_GOTSYM (sym, vernum, symidx);
+ *got = RESOLVE_GOTSYM (sym, vernum, symidx, R_MIPS_32);
else if (ELFW(ST_TYPE) (sym->st_info) == STT_FUNC
- && *got != sym->st_value
- && lazy)
- *got += map->l_addr;
+ && *got != sym->st_value)
+ {
+ if (lazy)
+ *got += map->l_addr;
+ else
+ /* This is a lazy-binding stub, so we don't need the
+ canonical address. */
+ *got = RESOLVE_GOTSYM (sym, vernum, symidx, R_MIPS_JUMP_SLOT);
+ }
else if (ELFW(ST_TYPE) (sym->st_info) == STT_SECTION)
{
if (sym->st_other == 0)
*got += map->l_addr;
}
else
- *got = RESOLVE_GOTSYM (sym, vernum, symidx);
+ *got = RESOLVE_GOTSYM (sym, vernum, symidx, R_MIPS_32);
++got;
++sym;
@@ -624,6 +739,7 @@
# ifndef RTLD_BOOTSTRAP
ElfW(Addr) *got;
extern void _dl_runtime_resolve (ElfW(Word));
+ extern void _dl_runtime_pltresolve (void);
extern int _dl_mips_gnu_objects;
if (lazy)
@@ -650,6 +766,20 @@
/* Relocate global offset table. */
elf_machine_got_rel (l, lazy);
+ /* If using PLTs, fill in the first two entries of .got.plt. */
+ if (l->l_info[DT_JMPREL] && lazy)
+ {
+ ElfW(Addr) *gotplt;
+ gotplt = (ElfW(Addr) *) D_PTR (l, l_info[DT_MIPS (PLTGOT)]);
+ /* If a library is prelinked but we have to relocate anyway,
+ we have to be able to undo the prelinking of .got.plt.
+ The prelinker saved the address of .plt for us here. */
+ if (gotplt[1])
+ l->l_mach.plt = gotplt[1] + l->l_addr;
+ gotplt[0] = (ElfW(Addr)) &_dl_runtime_pltresolve;
+ gotplt[1] = (ElfW(Addr)) l;
+ }
+
# endif
return lazy;
}
Modified: trunk/ports/sysdeps/mips/dl-trampoline.c
==============================================================================
--- trunk/ports/sysdeps/mips/dl-trampoline.c (original)
+++ trunk/ports/sysdeps/mips/dl-trampoline.c Wed Oct 1 13:03:35 2008
@@ -200,7 +200,24 @@
lw $7, 28($29)\n \
"
+/* The PLT resolver should also save and restore $2 and $3, which are used
+ as arguments to MIPS16 stub functions. */
+#define ELF_DL_PLT_FRAME_SIZE 48
+
+#define ELF_DL_PLT_SAVE_ARG_REGS \
+ ELF_DL_SAVE_ARG_REGS "\
+ sw $2, 40($29)\n \
+ sw $3, 44($29)\n \
+"
+
+#define ELF_DL_PLT_RESTORE_ARG_REGS \
+ ELF_DL_RESTORE_ARG_REGS "\
+ lw $2, 40($29)\n \
+ lw $3, 44($29)\n \
+"
+
#define IFABIO32(X) X
+#define IFNEWABI(X)
#else /* _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64 */
@@ -230,7 +247,24 @@
ld $11, 64($29)\n \
"
+/* The PLT resolver should also save and restore $2 and $3, which are used
+ as arguments to MIPS16 stub functions. */
+#define ELF_DL_PLT_FRAME_SIZE 96
+
+#define ELF_DL_PLT_SAVE_ARG_REGS \
+ ELF_DL_SAVE_ARG_REGS "\
+ sd $2, 80($29)\n \
+ sd $3, 88($29)\n \
+"
+
+#define ELF_DL_PLT_RESTORE_ARG_REGS \
+ ELF_DL_RESTORE_ARG_REGS "\
+ ld $2, 80($29)\n \
+ ld $3, 88($29)\n \
+"
+
#define IFABIO32(X)
+#define IFNEWABI(X) X
#endif
@@ -270,3 +304,56 @@
.end _dl_runtime_resolve\n\
.previous\n\
");
+
+/* Assembler veneer called from the PLT header code when using PLTs.
+
+ Code in each PLT entry and the PLT header fills in the arguments to
+ this function:
+
+ - $15 (o32 t7, n32/n64 t3) - caller's return address
+ - $24 (t8) - PLT entry index
+ - $25 (t9) - address of _dl_runtime_pltresolve
+ - o32 $28 (gp), n32/n64 $14 (t2) - address of .got.plt
+
+ Different registers are used for .got.plt because the ABI was
+ originally designed for o32, where gp was available (call
+ clobbered). On n32/n64 gp is call saved.
+
+ _dl_fixup needs:
+
+ - $4 (a0) - link map address
+ - $5 (a1) - .rel.plt offset (== PLT entry index * 8) */
+
+asm ("\n\
+ .text\n\
+ .align 2\n\
+ .globl _dl_runtime_pltresolve\n\
+ .type _dl_runtime_pltresolve,@function\n\
+ .ent _dl_runtime_pltresolve\n\
+_dl_runtime_pltresolve:\n\
+ .frame $29, " STRINGXP(ELF_DL_PLT_FRAME_SIZE) ", $31\n\
+ .set noreorder\n\
+ # Save arguments and sp value in stack.\n\
+ " STRINGXP(PTR_SUBIU) " $29, " STRINGXP(ELF_DL_PLT_FRAME_SIZE) "\n\
+ " IFABIO32(STRINGXP(PTR_L) " $13, " STRINGXP(PTRSIZE) "($28)") "\n\
+ " IFNEWABI(STRINGXP(PTR_L) " $13, " STRINGXP(PTRSIZE) "($14)") "\n\
+ # Modify t9 ($25) so as to point .cpload instruction.\n\
+ " IFABIO32(STRINGXP(PTR_ADDIU) " $25, 12\n") "\
+ # Compute GP.\n\
+ " STRINGXP(SETUP_GP) "\n\
+ " STRINGXV(SETUP_GP64 (0, _dl_runtime_pltresolve)) "\n\
+ .set reorder\n\
+ " IFABIO32(STRINGXP(CPRESTORE(32))) "\n\
+ " ELF_DL_PLT_SAVE_ARG_REGS "\
+ move $4, $13\n\
+ sll $5, $24, " STRINGXP(PTRLOG) " + 1\n\
+ jal _dl_fixup\n\
+ move $25, $2\n\
+ " ELF_DL_PLT_RESTORE_ARG_REGS "\
+ " STRINGXP(RESTORE_GP64) "\n\
+ " STRINGXP(PTR_ADDIU) " $29, " STRINGXP(ELF_DL_PLT_FRAME_SIZE) "\n\
+ jr $25\n\
+ .end _dl_runtime_pltresolve\n\
+ .previous\n\
+");
+
Modified: trunk/ports/sysdeps/mips/tls-macros.h
==============================================================================
--- trunk/ports/sysdeps/mips/tls-macros.h (original)
+++ trunk/ports/sysdeps/mips/tls-macros.h Wed Oct 1 13:03:35 2008
@@ -1,44 +1,56 @@
/* Macros to support TLS testing in times of missing compiler support. */
-#if _MIPS_SIM != _ABI64
+#include <sys/cdefs.h>
+#include <sys/asm.h>
-/* These versions are for o32 and n32. */
+#define __STRING2(X) __STRING(X)
+#define ADDU __STRING2(PTR_ADDU)
+#define ADDIU __STRING2(PTR_ADDIU)
+#define LW __STRING2(PTR_L)
+
+/* Load the GOT pointer, which may not be in $28 in a non-PIC
+ (abicalls pic0) function. */
+#ifndef __PIC__
+# if _MIPS_SIM != _ABI64
+# define LOAD_GP "move %[tmp], $28\n\tla $28, __gnu_local_gp\n\t"
+# else
+# define LOAD_GP "move %[tmp], $28\n\tdla $28, __gnu_local_gp\n\t"
+# endif
+# define UNLOAD_GP "\n\tmove $28, %[tmp]"
+#else
+# define LOAD_GP
+# define UNLOAD_GP
+#endif
# define TLS_GD(x) \
- ({ void *__result; \
+ ({ void *__result, *__tmp; \
extern void *__tls_get_addr (void *); \
- asm ("addiu %0, $28, %%tlsgd(" #x ")" \
- : "=r" (__result)); \
+ asm (LOAD_GP ADDIU " %0, $28, %%tlsgd(" #x ")" \
+ UNLOAD_GP \
+ : "=r" (__result), [tmp] "=&r" (__tmp)); \
(int *)__tls_get_addr (__result); })
-#else
-# define TLS_GD(x) \
- ({ void *__result; \
+# define TLS_LD(x) \
+ ({ void *__result, *__tmp; \
extern void *__tls_get_addr (void *); \
- asm ("daddiu %0, $28, %%tlsgd(" #x ")" \
- : "=r" (__result)); \
- (int *)__tls_get_addr (__result); })
-#endif
-
-#if _MIPS_SIM != _ABI64
-# define TLS_LD(x) \
- ({ void *__result; \
- extern void *__tls_get_addr (void *); \
- asm ("addiu %0, $28, %%tlsldm(" #x ")" \
- : "=r" (__result)); \
+ asm (LOAD_GP ADDIU " %0, $28, %%tlsldm(" #x ")" \
+ UNLOAD_GP \
+ : "=r" (__result), [tmp] "=&r" (__tmp)); \
__result = __tls_get_addr (__result); \
asm ("lui $3,%%dtprel_hi(" #x ")\n\t" \
"addiu $3,$3,%%dtprel_lo(" #x ")\n\t" \
- "addu %0,%0,$3" \
+ ADDU " %0,%0,$3" \
: "+r" (__result) : : "$3"); \
__result; })
# define TLS_IE(x) \
- ({ void *__result; \
+ ({ void *__result, *__tmp; \
asm (".set push\n\t.set mips32r2\n\t" \
"rdhwr\t%0,$29\n\t.set pop" \
: "=v" (__result)); \
- asm ("lw $3,%%gottprel(" #x ")($28)\n\t" \
- "addu %0,%0,$3" \
- : "+r" (__result) : : "$3"); \
+ asm (LOAD_GP LW " $3,%%gottprel(" #x ")($28)\n\t" \
+ ADDU " %0,%0,$3" \
+ UNLOAD_GP \
+ : "+r" (__result), [tmp] "=&r" (__tmp) \
+ : : "$3"); \
__result; })
# define TLS_LE(x) \
({ void *__result; \
@@ -47,42 +59,6 @@
: "=v" (__result)); \
asm ("lui $3,%%tprel_hi(" #x ")\n\t" \
"addiu $3,$3,%%tprel_lo(" #x ")\n\t" \
- "addu %0,%0,$3" \
+ ADDU " %0,%0,$3" \
: "+r" (__result) : : "$3"); \
__result; })
-
-#else
-
-/* These versions are for n64. */
-
-# define TLS_LD(x) \
- ({ void *__result; \
- extern void *__tls_get_addr (void *); \
- asm ("daddiu %0, $28, %%tlsldm(" #x ")" \
- : "=r" (__result)); \
- __result = __tls_get_addr (__result); \
- asm ("lui $3,%%dtprel_hi(" #x ")\n\t" \
- "daddiu $3,$3,%%dtprel_lo(" #x ")\n\t" \
- "daddu %0,%0,$3" \
- : "+r" (__result) : : "$3"); \
- __result; })
-# define TLS_IE(x) \
- ({ void *__result; \
- asm (".set push\n\t.set mips32r2\n\t" \
- "rdhwr\t%0,$29\n\t.set pop" \
- : "=v" (__result)); \
- asm ("ld $3,%%gottprel(" #x ")($28)\n\t" \
- "daddu %0,%0,$3" \
- : "+r" (__result) : : "$3"); \
- __result; })
-# define TLS_LE(x) \
- ({ void *__result; \
- asm (".set push\n\t.set mips32r2\n\t" \
- "rdhwr\t%0,$29\n\t.set pop" \
- : "=v" (__result)); \
- asm ("lui $3,%%tprel_hi(" #x ")\n\t" \
- "daddiu $3,$3,%%tprel_lo(" #x ")\n\t" \
- "daddu %0,%0,$3" \
- : "+r" (__result) : : "$3"); \
- __result; })
-#endif
Modified: trunk/ports/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
==============================================================================
--- trunk/ports/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h (original)
+++ trunk/ports/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h Wed Oct 1 13:03:35 2008
@@ -35,15 +35,7 @@
# define SYS_ify(syscall_name) __NR_/**/syscall_name
#endif
-#ifdef __ASSEMBLER__
-
-/* We don't want the label for the error handler to be visible in the symbol
- table when we define it here. */
-#ifdef __PIC__
-# define SYSCALL_ERROR_LABEL 99b
-#endif
-
-#else /* ! __ASSEMBLER__ */
+#ifndef __ASSEMBLER__
/* Define a macro which expands into the inline wrapper code for a system
call. */
Modified: trunk/ports/sysdeps/unix/sysv/linux/mips/nptl/sysdep-cancel.h
==============================================================================
--- trunk/ports/sysdeps/unix/sysv/linux/mips/nptl/sysdep-cancel.h (original)
+++ trunk/ports/sysdeps/unix/sysv/linux/mips/nptl/sysdep-cancel.h Wed Oct 1 13:03:35 2008
@@ -25,28 +25,38 @@
#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-#ifdef __PIC__
+# ifdef __PIC__
+# define PSEUDO_CPLOAD .cpload t9;
+# define PSEUDO_ERRJMP la t9, __syscall_error; jr t9;
+# define PSEUDO_SAVEGP sw gp, 32(sp); cfi_rel_offset (gp, 32);
+# define PSEUDO_LOADGP lw gp, 32(sp);
+# else
+# define PSEUDO_CPLOAD
+# define PSEUDO_ERRJMP j __syscall_error;
+# define PSEUDO_SAVEGP
+# define PSEUDO_LOADGP
+# endif
+
# undef PSEUDO
# define PSEUDO(name, syscall_name, args) \
.align 2; \
L(pseudo_start): \
cfi_startproc; \
- 99: la t9,__syscall_error; \
- jr t9; \
+ 99: PSEUDO_ERRJMP \
.type __##syscall_name##_nocancel, @function; \
.globl __##syscall_name##_nocancel; \
__##syscall_name##_nocancel: \
.set noreorder; \
- .cpload t9; \
+ PSEUDO_CPLOAD \
li v0, SYS_ify(syscall_name); \
syscall; \
.set reorder; \
- bne a3, zero, SYSCALL_ERROR_LABEL; \
+ bne a3, zero, 99b; \
ret; \
.size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
ENTRY (name) \
.set noreorder; \
- .cpload t9; \
+ PSEUDO_CPLOAD \
.set reorder; \
SINGLE_THREAD_P(v1); \
bne zero, v1, L(pseudo_cancel); \
@@ -54,17 +64,16 @@
li v0, SYS_ify(syscall_name); \
syscall; \
.set reorder; \
- bne a3, zero, SYSCALL_ERROR_LABEL; \
+ bne a3, zero, 99b; \
ret; \
L(pseudo_cancel): \
SAVESTK_##args; \
sw ra, 28(sp); \
cfi_rel_offset (ra, 28); \
- sw gp, 32(sp); \
- cfi_rel_offset (gp, 32); \
+ PSEUDO_SAVEGP \
PUSHARGS_##args; /* save syscall args */ \
CENABLE; \
- lw gp, 32(sp); \
+ PSEUDO_LOADGP \
sw v0, 44(sp); /* save mask */ \
POPARGS_##args; /* restore syscall args */ \
.set noreorder; \
@@ -75,20 +84,18 @@
sw a3, 40(sp); /* save syscall error flag */ \
lw a0, 44(sp); /* pass mask as arg1 */ \
CDISABLE; \
- lw gp, 32(sp); \
+ PSEUDO_LOADGP \
lw v0, 36(sp); /* restore syscall result */ \
lw a3, 40(sp); /* restore syscall error flag */ \
lw ra, 28(sp); /* restore return address */ \
.set noreorder; \
- bne a3, zero, SYSCALL_ERROR_LABEL; \
+ bne a3, zero, 99b; \
RESTORESTK; \
L(pseudo_end): \
.set reorder;
# undef PSEUDO_END
# define PSEUDO_END(sym) cfi_endproc; .end sym; .size sym,.-sym
-
-#endif
# define PUSHARGS_0 /* nothing to do */
# define PUSHARGS_1 PUSHARGS_0 sw a0, 0(sp); cfi_rel_offset (a0, 0);
@@ -136,19 +143,25 @@
# define RESTORESTK addu sp, STKSPACE; cfi_adjust_cfa_offset(-STKSPACE)
+# ifdef __PIC__
/* We use jalr rather than jal. This means that the assembler will not
automatically restore $gp (in case libc has multiple GOTs) so we must
do it manually - which we have to do anyway since we don't use .cprestore.
It also shuts up the assembler warning about not using .cprestore. */
+# define PSEUDO_JMP(sym) la t9, sym; jalr t9;
+# else
+# define PSEUDO_JMP(sym) jal sym;
+# endif
+
# ifdef IS_IN_libpthread
-# define CENABLE la t9, __pthread_enable_asynccancel; jalr t9;
-# define CDISABLE la t9, __pthread_disable_asynccancel; jalr t9;
+# define CENABLE PSEUDO_JMP (__pthread_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__pthread_disable_asynccancel)
# elif defined IS_IN_librt
-# define CENABLE la t9, __librt_enable_asynccancel; jalr t9;
-# define CDISABLE la t9, __librt_disable_asynccancel; jalr t9;
+# define CENABLE PSEUDO_JMP (__librt_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__librt_disable_asynccancel)
# else
-# define CENABLE la t9, __libc_enable_asynccancel; jalr t9;
-# define CDISABLE la t9, __libc_disable_asynccancel; jalr t9;
+# define CENABLE PSEUDO_JMP (__libc_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__libc_disable_asynccancel)
# endif
# ifndef __ASSEMBLER__