mirror of
git://sourceware.org/git/glibc.git
synced 2025-04-06 14:10:30 +08:00
Updated to fedora-glibc-20050503T0852
This commit is contained in:
parent
a0971eefb7
commit
eec65e81e7
95
ChangeLog
95
ChangeLog
@ -1,3 +1,98 @@
|
||||
2005-05-02 Roland McGrath <roland@redhat.com>
|
||||
|
||||
[BZ #924]
|
||||
* crypt/md5.c [! HAVE_MEMCPY] (memcpy): Yield proper expression value.
|
||||
|
||||
2005-04-29 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* timezone/africa: Update from tzdata2005i.
|
||||
* timezone/asia: Likewise.
|
||||
* timezone/northamerica: Likewise.
|
||||
* timezone/yearistype: Likewise.
|
||||
|
||||
* sysdeps/i386/sysdep.h (CALL_MCOUNT): Fix typo in last change.
|
||||
|
||||
2005-04-29 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* nis/nis_table.c: Fix realloc handling.
|
||||
* nis/nis_removemember.c: Likewise.
|
||||
|
||||
2005-04-28 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
[BZ #798]
|
||||
* nscd/Makefile: Help losers who use --with-headers.
|
||||
|
||||
2005-04-28 Roland McGrath <roland@redhat.com>
|
||||
|
||||
[BZ #796]
|
||||
* sysdeps/unix/sysv/linux/dl-sysdep.h: New file.
|
||||
Define NEED_DL_SYSINFO_DSO for all platforms.
|
||||
|
||||
* sysdeps/generic/dl-sysdep.h: Remove multiple inclusion protection.
|
||||
* sysdeps/alpha/dl-sysdep.h: Likewise.
|
||||
Use #include_next instead of duplicating generic file's contents.
|
||||
* sysdeps/ia64/dl-sysdep.h: Likewise.
|
||||
* sysdeps/sparc/dl-sysdep.h: Likewise.
|
||||
|
||||
2005-03-22 Steven Munroe <sjmunroe@us.ibm.com>
|
||||
|
||||
* sysdeps/powerpc/powerpc64/memset.S (memset): Make ___memset local.
|
||||
|
||||
2005-03-07 Steven Munroe <sjmunroe@us.ibm.com>
|
||||
|
||||
[BZ #781]
|
||||
* sysdeps/unix/sysv/linux/kernel-features.h
|
||||
(__ASSUME_TGKILL): Define for powerpc32/64 starting with 2.6.1.
|
||||
(__ASSUME_UTIMES): Define for powerpc32/64 starting with 2.6.1.
|
||||
(__ASSUME_FADVISE64_64_SYSCALL): Define for powerpc32 only starting
|
||||
with 2.6.1.
|
||||
(__ASSUME_WAITID_SYSCALL): Don't define for powerpc32/64.
|
||||
|
||||
2005-04-28 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* sysdeps/i386/sysdep.h: Add cfi instrumentation to asm fragments.
|
||||
* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/i386/socket.S: Remove now duplicate
|
||||
cfi_startproc and cfi_endproc.
|
||||
|
||||
* configure.in: Remove ultrasparc names.
|
||||
|
||||
* sysdeps/i386/i686/memcmp.S: Move misplaced END.
|
||||
|
||||
2005-03-27 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
Make it possible for multiple threads to use gettext() in different
|
||||
locales.
|
||||
* intl/dcigettext.c (HAVE_PER_THREAD_LOCALE): New macro.
|
||||
(struct known_translation_t): If HAVE_PER_THREAD_LOCALE, add localename
|
||||
field.
|
||||
(transcmp): If HAVE_PER_THREAD_LOCALE, compare localename fields.
|
||||
(DCIGETTEXT): If HAVE_PER_THREAD_LOCALE, fill the localename field in
|
||||
search and newp.
|
||||
|
||||
* intl/tst-gettext4.c: New file.
|
||||
* intl/tst-gettext4.sh: New file.
|
||||
* intl/tst-gettext4-de.po: New file.
|
||||
* intl/tst-gettext4-fr.po: New file.
|
||||
* intl/tst-gettext5.c: New file.
|
||||
* intl/tst-gettext5.sh: New file.
|
||||
* intl/Makefile (distribute): Add tst-gettext4.sh, tst-gettext4-de.po,
|
||||
tst-gettext4-fr.po, tst-gettext5.sh.
|
||||
(multithread-test-srcs): New variable.
|
||||
(test-srcs): Add its contents.
|
||||
(tests): Depend on tst-gettext4.out, tst-gettext5.out.
|
||||
(tst-gettext4.out, tst-gettext5.out): New rules.
|
||||
(CFLAGS-tst-gettext4.c, CFLAGS-tst-gettext5.c): New variables.
|
||||
Add rule for linking the multithread-test-srcs with the appropriate
|
||||
thread-library.
|
||||
|
||||
2005-04-28 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* po/rw.po: New file. From translation team.
|
||||
|
||||
* scripts/config.guess: Update from upstream.
|
||||
* scripts/config.sub: Likewise.
|
||||
|
||||
2005-04-27 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* nscd/connections.c (nscd_run): Use time() value in prune_cache
|
||||
|
4
configure
vendored
4
configure
vendored
@ -1976,9 +1976,9 @@ sparcv8plus | sparcv8plusa | sparcv9)
|
||||
base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
|
||||
sparcv8plusb | sparcv9b)
|
||||
base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
|
||||
sparc64 | ultrasparc)
|
||||
sparc64)
|
||||
base_machine=sparc machine=sparc/sparc64 ;;
|
||||
sparc64b | ultrasparc3)
|
||||
sparc64b)
|
||||
base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
|
||||
thumb*) base_machine=thumb machine=arm/thumb/$machine ;;
|
||||
*) base_machine=$machine ;;
|
||||
|
@ -475,9 +475,9 @@ sparcv8plus | sparcv8plusa | sparcv9)
|
||||
base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
|
||||
sparcv8plusb | sparcv9b)
|
||||
base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
|
||||
sparc64 | ultrasparc)
|
||||
sparc64)
|
||||
base_machine=sparc machine=sparc/sparc64 ;;
|
||||
sparc64b | ultrasparc3)
|
||||
sparc64b)
|
||||
base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
|
||||
thumb*) base_machine=thumb machine=arm/thumb/$machine ;;
|
||||
*) base_machine=$machine ;;
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* Functions to compute MD5 message digest of files or memory blocks.
|
||||
according to the definition of MD5 in RFC 1321 from April 1992.
|
||||
Copyright (C) 1995,1996,1997,1999,2000,2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995,1996,1997,1999,2000,2001,2005
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -31,7 +32,7 @@
|
||||
# include <string.h>
|
||||
#else
|
||||
# ifndef HAVE_MEMCPY
|
||||
# define memcpy(d, s, n) bcopy ((s), (d), (n))
|
||||
# define memcpy(d, s, n) (bcopy ((s), (d), (n)), (d))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# This file is updated automatically by Makefile.
|
||||
glibc-branch := fedora
|
||||
glibc-base := HEAD
|
||||
fedora-sync-date := 2005-04-28 08:46 UTC
|
||||
fedora-sync-tag := fedora-glibc-20050428T0846
|
||||
fedora-sync-date := 2005-05-03 08:52 UTC
|
||||
fedora-sync-tag := fedora-glibc-20050503T0852
|
||||
|
@ -30,9 +30,17 @@ distribute = gmo.h gettextP.h hash-string.h loadinfo.h locale.alias \
|
||||
tst-translit.sh translit.po \
|
||||
tst-gettext2.sh tstlang1.po tstlang2.po \
|
||||
tst-codeset.sh tstcodeset.po \
|
||||
tst-gettext3.sh
|
||||
tst-gettext3.sh \
|
||||
tst-gettext4.sh tst-gettext4-de.po tst-gettext4-fr.po \
|
||||
tst-gettext5.sh
|
||||
|
||||
include ../Makeconfig
|
||||
|
||||
multithread-test-srcs := tst-gettext4 tst-gettext5
|
||||
test-srcs := tst-gettext tst-translit tst-gettext2 tst-codeset tst-gettext3
|
||||
ifeq ($(have-thread-library),yes)
|
||||
test-srcs += $(multithread-test-srcs)
|
||||
endif
|
||||
tests = tst-ngettext
|
||||
|
||||
before-compile = $(objpfx)msgs.h
|
||||
@ -42,8 +50,6 @@ install-others = $(inst_msgcatdir)/locale.alias
|
||||
generated = msgs.h mtrace-tst-gettext tst-gettext.mtrace
|
||||
generated-dirs := domaindir localedir
|
||||
|
||||
include ../Makeconfig
|
||||
|
||||
ifneq (no,$(BISON))
|
||||
plural.c: plural.y
|
||||
$(BISON) $(BISONFLAGS) $@ $^
|
||||
@ -60,6 +66,9 @@ ifeq (yes,$(build-shared))
|
||||
ifneq ($(strip $(MSGFMT)),:)
|
||||
tests: $(objpfx)tst-translit.out $(objpfx)tst-gettext2.out \
|
||||
$(objpfx)tst-codeset.out $(objpfx)tst-gettext3.out
|
||||
ifeq ($(have-thread-library),yes)
|
||||
tests: $(objpfx)tst-gettext4.out $(objpfx)tst-gettext5.out
|
||||
endif
|
||||
ifneq (no,$(PERL))
|
||||
tests: $(objpfx)mtrace-tst-gettext
|
||||
endif
|
||||
@ -77,6 +86,10 @@ $(objpfx)tst-codeset.out: tst-codeset.sh $(objpfx)tst-codeset
|
||||
$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
|
||||
$(objpfx)tst-gettext3.out: tst-gettext3.sh $(objpfx)tst-gettext3
|
||||
$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
|
||||
$(objpfx)tst-gettext4.out: tst-gettext4.sh $(objpfx)tst-gettext4
|
||||
$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
|
||||
$(objpfx)tst-gettext5.out: tst-gettext5.sh $(objpfx)tst-gettext5
|
||||
$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -89,11 +102,26 @@ CFLAGS-tst-translit.c = -DOBJPFX=\"$(objpfx)\"
|
||||
CFLAGS-tst-gettext2.c = -DOBJPFX=\"$(objpfx)\"
|
||||
CFLAGS-tst-codeset.c = -DOBJPFX=\"$(objpfx)\"
|
||||
CFLAGS-tst-gettext3.c = -DOBJPFX=\"$(objpfx)\"
|
||||
CFLAGS-tst-gettext4.c = -DOBJPFX=\"$(objpfx)\"
|
||||
CFLAGS-tst-gettext5.c = -DOBJPFX=\"$(objpfx)\"
|
||||
|
||||
ifeq ($(have-thread-library),yes)
|
||||
ifeq (yes,$(build-shared))
|
||||
$(addprefix $(objpfx),$(multithread-test-srcs)): $(shared-thread-library)
|
||||
else
|
||||
$(addprefix $(objpfx),$(multithread-test-srcs)): $(static-thread-library)
|
||||
endif
|
||||
ifeq (yes,$(build-bounded))
|
||||
$(multithread-test-srcs:%=$(objpfx)%-bp): $(bounded-thread-library)
|
||||
endif
|
||||
endif
|
||||
|
||||
$(objpfx)tst-translit.out: $(objpfx)tst-gettext.out
|
||||
$(objpfx)tst-gettext2.out: $(objpfx)tst-gettext.out
|
||||
$(objpfx)tst-codeset.out: $(objpfx)tst-gettext.out
|
||||
$(objpfx)tst-gettext3.out: $(objpfx)tst-gettext.out
|
||||
$(objpfx)tst-gettext4.out: $(objpfx)tst-gettext.out
|
||||
$(objpfx)tst-gettext5.out: $(objpfx)tst-gettext.out
|
||||
|
||||
CPPFLAGS += -D'LOCALEDIR="$(msgcatdir)"' \
|
||||
-D'LOCALE_ALIAS_PATH="$(msgcatdir)"'
|
||||
|
@ -172,6 +172,11 @@ static void *mempcpy PARAMS ((void *dest, const void *src, size_t n));
|
||||
# define PATH_MAX _POSIX_PATH_MAX
|
||||
#endif
|
||||
|
||||
/* Whether to support different locales in different threads. */
|
||||
#if defined _LIBC || HAVE_NL_LOCALE_NAME
|
||||
# define HAVE_PER_THREAD_LOCALE
|
||||
#endif
|
||||
|
||||
/* This is the type used for the search tree where known translations
|
||||
are stored. */
|
||||
struct known_translation_t
|
||||
@ -182,6 +187,11 @@ struct known_translation_t
|
||||
/* The category. */
|
||||
int category;
|
||||
|
||||
#ifdef HAVE_PER_THREAD_LOCALE
|
||||
/* Name of the relevant locale category, or "" for the global locale. */
|
||||
const char *localename;
|
||||
#endif
|
||||
|
||||
/* State of the catalog counter at the point the string was found. */
|
||||
int counter;
|
||||
|
||||
@ -226,10 +236,16 @@ transcmp (p1, p2)
|
||||
{
|
||||
result = strcmp (s1->domainname, s2->domainname);
|
||||
if (result == 0)
|
||||
/* We compare the category last (though this is the cheapest
|
||||
operation) since it is hopefully always the same (namely
|
||||
LC_MESSAGES). */
|
||||
result = s1->category - s2->category;
|
||||
{
|
||||
#ifdef HAVE_PER_THREAD_LOCALE
|
||||
result = strcmp (s1->localename, s2->localename);
|
||||
if (result == 0)
|
||||
#endif
|
||||
/* We compare the category last (though this is the cheapest
|
||||
operation) since it is hopefully always the same (namely
|
||||
LC_MESSAGES). */
|
||||
result = s1->category - s2->category;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -408,6 +424,9 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
|
||||
struct known_translation_t *search;
|
||||
struct known_translation_t **foundp = NULL;
|
||||
size_t msgid_len;
|
||||
# ifdef HAVE_PER_THREAD_LOCALE
|
||||
const char *localename;
|
||||
# endif
|
||||
#endif
|
||||
size_t domainname_len;
|
||||
|
||||
@ -442,6 +461,12 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
|
||||
memcpy (search->msgid, msgid1, msgid_len);
|
||||
search->domainname = domainname;
|
||||
search->category = category;
|
||||
# ifdef HAVE_PER_THREAD_LOCALE
|
||||
# ifdef _LIBC
|
||||
localename = __current_locale_name (category);
|
||||
# endif
|
||||
search->localename = localename;
|
||||
# endif
|
||||
|
||||
/* Since tfind/tsearch manage a balanced tree, concurrent tfind and
|
||||
tsearch calls can be fatal. */
|
||||
@ -629,19 +654,33 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
|
||||
if (foundp == NULL)
|
||||
{
|
||||
/* Create a new entry and add it to the search tree. */
|
||||
size_t size;
|
||||
struct known_translation_t *newp;
|
||||
|
||||
newp = (struct known_translation_t *)
|
||||
malloc (offsetof (struct known_translation_t, msgid)
|
||||
+ msgid_len + domainname_len + 1);
|
||||
size = offsetof (struct known_translation_t, msgid)
|
||||
+ msgid_len + domainname_len + 1;
|
||||
# ifdef HAVE_PER_THREAD_LOCALE
|
||||
size += strlen (localename) + 1;
|
||||
# endif
|
||||
newp = (struct known_translation_t *) malloc (size);
|
||||
if (newp != NULL)
|
||||
{
|
||||
char *new_domainname;
|
||||
# ifdef HAVE_PER_THREAD_LOCALE
|
||||
char *new_localename;
|
||||
# endif
|
||||
|
||||
new_domainname = mempcpy (newp->msgid, msgid1, msgid_len);
|
||||
memcpy (new_domainname, domainname, domainname_len + 1);
|
||||
# ifdef HAVE_PER_THREAD_LOCALE
|
||||
new_localename = new_domainname + domainname_len + 1;
|
||||
strcpy (new_localename, localename);
|
||||
# endif
|
||||
newp->domainname = new_domainname;
|
||||
newp->category = category;
|
||||
# ifdef HAVE_PER_THREAD_LOCALE
|
||||
newp->localename = new_localename;
|
||||
# endif
|
||||
newp->counter = _nl_msg_cat_cntr;
|
||||
newp->domain = domain;
|
||||
newp->translation = retval;
|
||||
|
8
intl/tst-gettext4-de.po
Normal file
8
intl/tst-gettext4-de.po
Normal file
@ -0,0 +1,8 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8-bit\n"
|
||||
|
||||
msgid "beauty"
|
||||
msgstr "Schönheit"
|
8
intl/tst-gettext4-fr.po
Normal file
8
intl/tst-gettext4-fr.po
Normal file
@ -0,0 +1,8 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8-bit\n"
|
||||
|
||||
msgid "beauty"
|
||||
msgstr "beauté"
|
151
intl/tst-gettext4.c
Normal file
151
intl/tst-gettext4.c
Normal file
@ -0,0 +1,151 @@
|
||||
/* Test that gettext() in multithreaded applications works correctly if
|
||||
different threads operate in different locales with the same encoding.
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Bruno Haible <bruno@clisp.org>, 2005.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
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
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <libintl.h>
|
||||
#include <locale.h>
|
||||
#include <pthread.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
/* Set to 1 if the program is not behaving correctly. */
|
||||
int result;
|
||||
|
||||
/* Denotes which thread should run next. */
|
||||
int flipflop;
|
||||
/* Lock and wait queue used to switch between the threads. */
|
||||
pthread_mutex_t lock;
|
||||
pthread_cond_t waitqueue;
|
||||
|
||||
/* Waits until the flipflop has a given value.
|
||||
Before the call, the lock is unlocked. After the call, it is locked. */
|
||||
static void
|
||||
waitfor (int value)
|
||||
{
|
||||
if (pthread_mutex_lock (&lock))
|
||||
exit (10);
|
||||
while (flipflop != value)
|
||||
if (pthread_cond_wait (&waitqueue, &lock))
|
||||
exit (11);
|
||||
}
|
||||
|
||||
/* Sets the flipflop to a given value.
|
||||
Before the call, the lock is locked. After the call, it is unlocked. */
|
||||
static void
|
||||
setto (int value)
|
||||
{
|
||||
flipflop = value;
|
||||
if (pthread_cond_signal (&waitqueue))
|
||||
exit (20);
|
||||
if (pthread_mutex_unlock (&lock))
|
||||
exit (21);
|
||||
}
|
||||
|
||||
void *
|
||||
thread1_execution (void *arg)
|
||||
{
|
||||
char *s;
|
||||
|
||||
waitfor (1);
|
||||
uselocale (newlocale (LC_ALL_MASK, "de_DE.ISO-8859-1", NULL));
|
||||
setto (2);
|
||||
|
||||
waitfor (1);
|
||||
s = gettext ("beauty");
|
||||
puts (s);
|
||||
if (strcmp (s, "Sch\366nheit"))
|
||||
{
|
||||
fprintf (stderr, "thread 1 call 1 returned: %s\n", s);
|
||||
result = 1;
|
||||
}
|
||||
setto (2);
|
||||
|
||||
waitfor (1);
|
||||
s = gettext ("beauty");
|
||||
puts (s);
|
||||
if (strcmp (s, "Sch\366nheit"))
|
||||
{
|
||||
fprintf (stderr, "thread 1 call 2 returned: %s\n", s);
|
||||
result = 1;
|
||||
}
|
||||
setto (2);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void *
|
||||
thread2_execution (void *arg)
|
||||
{
|
||||
char *s;
|
||||
|
||||
waitfor (2);
|
||||
uselocale (newlocale (LC_ALL_MASK, "fr_FR.ISO-8859-1", NULL));
|
||||
setto (1);
|
||||
|
||||
waitfor (2);
|
||||
s = gettext ("beauty");
|
||||
puts (s);
|
||||
if (strcmp (s, "beaut\351"))
|
||||
{
|
||||
fprintf (stderr, "thread 2 call 1 returned: %s\n", s);
|
||||
result = 1;
|
||||
}
|
||||
setto (1);
|
||||
|
||||
waitfor (2);
|
||||
s = gettext ("beauty");
|
||||
puts (s);
|
||||
if (strcmp (s, "beaut\351"))
|
||||
{
|
||||
fprintf (stderr, "thread 2 call 2 returned: %s\n", s);
|
||||
result = 1;
|
||||
}
|
||||
setto (1);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
pthread_t thread1;
|
||||
pthread_t thread2;
|
||||
|
||||
unsetenv ("LANGUAGE");
|
||||
unsetenv ("OUTPUT_CHARSET");
|
||||
textdomain ("multithread");
|
||||
bindtextdomain ("multithread", OBJPFX "domaindir");
|
||||
result = 0;
|
||||
|
||||
flipflop = 1;
|
||||
if (pthread_mutex_init (&lock, NULL))
|
||||
exit (2);
|
||||
if (pthread_cond_init (&waitqueue, NULL))
|
||||
exit (2);
|
||||
if (pthread_create (&thread1, NULL, &thread1_execution, NULL))
|
||||
exit (2);
|
||||
if (pthread_create (&thread2, NULL, &thread2_execution, NULL))
|
||||
exit (2);
|
||||
if (pthread_join (thread2, NULL))
|
||||
exit (3);
|
||||
|
||||
return result;
|
||||
}
|
48
intl/tst-gettext4.sh
Executable file
48
intl/tst-gettext4.sh
Executable file
@ -0,0 +1,48 @@
|
||||
#! /bin/sh
|
||||
# Test that gettext() in multithreaded applications works correctly if
|
||||
# different threads operate in different locales with the same encoding.
|
||||
# Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
|
||||
# This file is part of the GNU C Library.
|
||||
#
|
||||
|
||||
# The GNU C Library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
# The GNU C Library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# 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
|
||||
# 02111-1307 USA.
|
||||
|
||||
common_objpfx=$1
|
||||
objpfx=$2
|
||||
|
||||
LC_ALL=C
|
||||
export LC_ALL
|
||||
|
||||
# Generate the test data.
|
||||
test -d ${objpfx}domaindir || mkdir ${objpfx}domaindir
|
||||
# Create the domain directories.
|
||||
test -d ${objpfx}domaindir/de_DE || mkdir ${objpfx}domaindir/de_DE
|
||||
test -d ${objpfx}domaindir/de_DE/LC_MESSAGES || mkdir ${objpfx}domaindir/de_DE/LC_MESSAGES
|
||||
test -d ${objpfx}domaindir/fr_FR || mkdir ${objpfx}domaindir/fr_FR
|
||||
test -d ${objpfx}domaindir/fr_FR/LC_MESSAGES || mkdir ${objpfx}domaindir/fr_FR/LC_MESSAGES
|
||||
# Populate them.
|
||||
msgfmt -o ${objpfx}domaindir/de_DE/LC_MESSAGES/multithread.mo tst-gettext4-de.po
|
||||
msgfmt -o ${objpfx}domaindir/fr_FR/LC_MESSAGES/multithread.mo tst-gettext4-fr.po
|
||||
|
||||
GCONV_PATH=${common_objpfx}iconvdata
|
||||
export GCONV_PATH
|
||||
LOCPATH=${common_objpfx}localedata
|
||||
export LOCPATH
|
||||
|
||||
${common_objpfx}elf/ld.so --library-path $common_objpfx \
|
||||
${objpfx}tst-gettext4 > ${objpfx}tst-gettext4.out
|
||||
|
||||
exit $?
|
156
intl/tst-gettext5.c
Normal file
156
intl/tst-gettext5.c
Normal file
@ -0,0 +1,156 @@
|
||||
/* Test that gettext() in multithreaded applications works correctly if
|
||||
different threads operate in different locales referring to the same
|
||||
catalog file but with different encodings.
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Bruno Haible <bruno@clisp.org>, 2005.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
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
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <libintl.h>
|
||||
#include <locale.h>
|
||||
#include <pthread.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
/* Set to 1 if the program is not behaving correctly. */
|
||||
int result;
|
||||
|
||||
/* Denotes which thread should run next. */
|
||||
int flipflop;
|
||||
/* Lock and wait queue used to switch between the threads. */
|
||||
pthread_mutex_t lock;
|
||||
pthread_cond_t waitqueue;
|
||||
|
||||
/* Waits until the flipflop has a given value.
|
||||
Before the call, the lock is unlocked. After the call, it is locked. */
|
||||
static void
|
||||
waitfor (int value)
|
||||
{
|
||||
if (pthread_mutex_lock (&lock))
|
||||
exit (10);
|
||||
while (flipflop != value)
|
||||
if (pthread_cond_wait (&waitqueue, &lock))
|
||||
exit (11);
|
||||
}
|
||||
|
||||
/* Sets the flipflop to a given value.
|
||||
Before the call, the lock is locked. After the call, it is unlocked. */
|
||||
static void
|
||||
setto (int value)
|
||||
{
|
||||
flipflop = value;
|
||||
if (pthread_cond_signal (&waitqueue))
|
||||
exit (20);
|
||||
if (pthread_mutex_unlock (&lock))
|
||||
exit (21);
|
||||
}
|
||||
|
||||
void *
|
||||
thread1_execution (void *arg)
|
||||
{
|
||||
char *s;
|
||||
|
||||
waitfor (1);
|
||||
uselocale (newlocale (LC_ALL_MASK, "de_DE.ISO-8859-1", NULL));
|
||||
setto (2);
|
||||
|
||||
/* Here we expect output in ISO-8859-1. */
|
||||
|
||||
waitfor (1);
|
||||
s = gettext ("cheese");
|
||||
puts (s);
|
||||
if (strcmp (s, "K\344se"))
|
||||
{
|
||||
fprintf (stderr, "thread 1 call 1 returned: %s\n", s);
|
||||
result = 1;
|
||||
}
|
||||
setto (2);
|
||||
|
||||
waitfor (1);
|
||||
s = gettext ("cheese");
|
||||
puts (s);
|
||||
if (strcmp (s, "K\344se"))
|
||||
{
|
||||
fprintf (stderr, "thread 1 call 2 returned: %s\n", s);
|
||||
result = 1;
|
||||
}
|
||||
setto (2);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void *
|
||||
thread2_execution (void *arg)
|
||||
{
|
||||
char *s;
|
||||
|
||||
waitfor (2);
|
||||
uselocale (newlocale (LC_ALL_MASK, "de_DE.UTF-8", NULL));
|
||||
setto (1);
|
||||
|
||||
/* Here we expect output in UTF-8. */
|
||||
|
||||
waitfor (2);
|
||||
s = gettext ("cheese");
|
||||
puts (s);
|
||||
if (strcmp (s, "K\303\244se"))
|
||||
{
|
||||
fprintf (stderr, "thread 2 call 1 returned: %s\n", s);
|
||||
result = 1;
|
||||
}
|
||||
setto (1);
|
||||
|
||||
waitfor (2);
|
||||
s = gettext ("cheese");
|
||||
puts (s);
|
||||
if (strcmp (s, "K\303\244se"))
|
||||
{
|
||||
fprintf (stderr, "thread 2 call 2 returned: %s\n", s);
|
||||
result = 1;
|
||||
}
|
||||
setto (1);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
pthread_t thread1;
|
||||
pthread_t thread2;
|
||||
|
||||
unsetenv ("LANGUAGE");
|
||||
unsetenv ("OUTPUT_CHARSET");
|
||||
textdomain ("codeset");
|
||||
bindtextdomain ("codeset", OBJPFX "domaindir");
|
||||
result = 0;
|
||||
|
||||
flipflop = 1;
|
||||
if (pthread_mutex_init (&lock, NULL))
|
||||
exit (2);
|
||||
if (pthread_cond_init (&waitqueue, NULL))
|
||||
exit (2);
|
||||
if (pthread_create (&thread1, NULL, &thread1_execution, NULL))
|
||||
exit (2);
|
||||
if (pthread_create (&thread2, NULL, &thread2_execution, NULL))
|
||||
exit (2);
|
||||
if (pthread_join (thread2, NULL))
|
||||
exit (3);
|
||||
|
||||
return result;
|
||||
}
|
46
intl/tst-gettext5.sh
Executable file
46
intl/tst-gettext5.sh
Executable file
@ -0,0 +1,46 @@
|
||||
#! /bin/sh
|
||||
# Test that gettext() in multithreaded applications works correctly if
|
||||
# different threads operate in different locales referring to the same
|
||||
# catalog file but with different encodings.
|
||||
# Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
|
||||
# This file is part of the GNU C Library.
|
||||
#
|
||||
|
||||
# The GNU C Library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
# The GNU C Library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# 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
|
||||
# 02111-1307 USA.
|
||||
|
||||
common_objpfx=$1
|
||||
objpfx=$2
|
||||
|
||||
LC_ALL=C
|
||||
export LC_ALL
|
||||
|
||||
# Generate the test data.
|
||||
test -d ${objpfx}domaindir || mkdir ${objpfx}domaindir
|
||||
# Create the domain directories.
|
||||
test -d ${objpfx}domaindir/de_DE || mkdir ${objpfx}domaindir/de_DE
|
||||
test -d ${objpfx}domaindir/de_DE/LC_MESSAGES || mkdir ${objpfx}domaindir/de_DE/LC_MESSAGES
|
||||
# Populate them.
|
||||
msgfmt -o ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo tstcodeset.po
|
||||
|
||||
GCONV_PATH=${common_objpfx}iconvdata
|
||||
export GCONV_PATH
|
||||
LOCPATH=${common_objpfx}localedata
|
||||
export LOCPATH
|
||||
|
||||
${common_objpfx}elf/ld.so --library-path $common_objpfx \
|
||||
${objpfx}tst-gettext5 > ${objpfx}tst-gettext5.out
|
||||
|
||||
exit $?
|
@ -1,3 +1,7 @@
|
||||
2005-04-28 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* SUPPORTED: Add UTF-8 locales where UTF-8 was not already supported.
|
||||
|
||||
2005-04-26 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* locales/fa_IR: Add alt_digits, change date and time
|
||||
|
@ -1,6 +1,7 @@
|
||||
# This file names the currently supported and somewhat tested locales.
|
||||
# If you have any additions please file a glibc bug report.
|
||||
SUPPORTED-LOCALES=\
|
||||
aa_DJ.UTF-8/UTF-8 \
|
||||
aa_DJ/ISO-8859-1 \
|
||||
aa_ER/UTF-8 \
|
||||
aa_ER@saaho/UTF-8 \
|
||||
@ -8,6 +9,7 @@ aa_ET/UTF-8 \
|
||||
af_ZA.UTF-8/UTF-8 \
|
||||
af_ZA/ISO-8859-1 \
|
||||
am_ET/UTF-8 \
|
||||
an_ES.UTF-8/UTF-8 \
|
||||
an_ES/ISO-8859-15 \
|
||||
ar_AE.UTF-8/UTF-8 \
|
||||
ar_AE/ISO-8859-6 \
|
||||
@ -51,8 +53,10 @@ bg_BG.UTF-8/UTF-8 \
|
||||
bg_BG/CP1251 \
|
||||
bn_BD/UTF-8 \
|
||||
bn_IN/UTF-8 \
|
||||
br_FR.UTF-8/UTF-8 \
|
||||
br_FR/ISO-8859-1 \
|
||||
br_FR@euro/ISO-8859-15 \
|
||||
bs_BA.UTF-8/UTF-8 \
|
||||
bs_BA/ISO-8859-2 \
|
||||
byn_ER/UTF-8 \
|
||||
ca_ES.UTF-8/UTF-8 \
|
||||
@ -180,6 +184,7 @@ fr_LU@euro/ISO-8859-15 \
|
||||
ga_IE.UTF-8/UTF-8 \
|
||||
ga_IE/ISO-8859-1 \
|
||||
ga_IE@euro/ISO-8859-15 \
|
||||
gd_GB.UTF-8/UTF-8 \
|
||||
gd_GB/ISO-8859-15 \
|
||||
gez_ER/UTF-8 \
|
||||
gez_ER@abegede/UTF-8 \
|
||||
@ -211,7 +216,9 @@ iw_IL.UTF-8/UTF-8 \
|
||||
iw_IL/ISO-8859-8 \
|
||||
ja_JP.EUC-JP/EUC-JP \
|
||||
ja_JP.UTF-8/UTF-8 \
|
||||
ka_GE.UTF-8/UTF-8 \
|
||||
ka_GE/GEORGIAN-PS \
|
||||
kk_KZ.UTF-8/UTF-8 \
|
||||
kk_KZ/PT154 \
|
||||
kl_GL.UTF-8/UTF-8 \
|
||||
kl_GL/ISO-8859-1 \
|
||||
@ -220,12 +227,14 @@ ko_KR.EUC-KR/EUC-KR \
|
||||
ko_KR.UTF-8/UTF-8 \
|
||||
kw_GB.UTF-8/UTF-8 \
|
||||
kw_GB/ISO-8859-1 \
|
||||
lg_UG.UTF-8/UTF-8 \
|
||||
lg_UG/ISO-8859-10 \
|
||||
lo_LA/UTF-8 \
|
||||
lt_LT.UTF-8/UTF-8 \
|
||||
lt_LT/ISO-8859-13 \
|
||||
lv_LV.UTF-8/UTF-8 \
|
||||
lv_LV/ISO-8859-13 \
|
||||
mi_NZ.UTF-8/UTF-8 \
|
||||
mi_NZ/ISO-8859-13 \
|
||||
mk_MK.UTF-8/UTF-8 \
|
||||
mk_MK/ISO-8859-5 \
|
||||
@ -249,8 +258,10 @@ nn_NO.UTF-8/UTF-8 \
|
||||
nn_NO/ISO-8859-1 \
|
||||
no_NO.UTF-8/UTF-8 \
|
||||
no_NO/ISO-8859-1 \
|
||||
oc_FR.UTF-8/UTF-8 \
|
||||
oc_FR/ISO-8859-1 \
|
||||
om_ET/UTF-8 \
|
||||
om_KE.UTF-8/UTF-8 \
|
||||
om_KE/ISO-8859-1 \
|
||||
pa_IN/UTF-8 \
|
||||
pl_PL.UTF-8/UTF-8 \
|
||||
@ -273,9 +284,12 @@ sk_SK.UTF-8/UTF-8 \
|
||||
sk_SK/ISO-8859-2 \
|
||||
sl_SI.UTF-8/UTF-8 \
|
||||
sl_SI/ISO-8859-2 \
|
||||
so_DJ.UTF-8/UTF-8 \
|
||||
so_DJ/ISO-8859-1 \
|
||||
so_ET/UTF-8 \
|
||||
so_KE.UTF-8/UTF-8 \
|
||||
so_KE/ISO-8859-1 \
|
||||
so_SO.UTF-8/UTF-8 \
|
||||
so_SO/ISO-8859-1 \
|
||||
sq_AL.UTF-8/UTF-8 \
|
||||
sq_AL/ISO-8859-1 \
|
||||
@ -291,12 +305,14 @@ sv_SE/ISO-8859-1 \
|
||||
sv_SE.ISO-8859-15/ISO-8859-15 \
|
||||
ta_IN/UTF-8 \
|
||||
te_IN/UTF-8 \
|
||||
tg_TJ.UTF-8/UTF-8 \
|
||||
tg_TJ/KOI8-T \
|
||||
th_TH.UTF-8/UTF-8 \
|
||||
th_TH/TIS-620 \
|
||||
ti_ER/UTF-8 \
|
||||
ti_ET/UTF-8 \
|
||||
tig_ER/UTF-8 \
|
||||
tl_PH.UTF-8/UTF-8 \
|
||||
tl_PH/ISO-8859-1 \
|
||||
tr_TR.UTF-8/UTF-8 \
|
||||
tr_TR/ISO-8859-9 \
|
||||
@ -313,6 +329,7 @@ wa_BE@euro/ISO-8859-15 \
|
||||
wa_BE.UTF-8/UTF-8 \
|
||||
xh_ZA.UTF-8/UTF-8 \
|
||||
xh_ZA/ISO-8859-1 \
|
||||
yi_US.UTF-8/UTF-8 \
|
||||
yi_US/CP1255 \
|
||||
zh_CN.GB18030/GB18030 \
|
||||
zh_CN.GBK/GBK \
|
||||
@ -320,6 +337,7 @@ zh_CN.UTF-8/UTF-8 \
|
||||
zh_CN/GB2312 \
|
||||
zh_HK.UTF-8/UTF-8 \
|
||||
zh_HK/BIG5-HKSCS \
|
||||
zh_SG.UTF-8/UTF-8 \
|
||||
zh_SG.GBK/GBK \
|
||||
zh_SG/GB2312 \
|
||||
zh_TW.EUC-TW/EUC-TW \
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 1997, 1998, 1999, 2004 Free Software Foundation, Inc.
|
||||
/* Copyright (c) 1997, 1998, 1999, 2004, 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
|
||||
|
||||
@ -92,9 +92,13 @@ nis_removemember (const_nis_name member, const_nis_name group)
|
||||
/* This realloc() call always decreases the size. This cannot
|
||||
fail. We still have the test but do not recover memory
|
||||
(i.e., we overwrite the input pointer). */
|
||||
newmem = realloc (newmem, k * sizeof (char*));
|
||||
if (newmem == NULL)
|
||||
return NIS_NOMEMORY;
|
||||
nis_name *newp = realloc (newmem, k * sizeof (char*));
|
||||
if (newp == NULL)
|
||||
{
|
||||
free (newmem);
|
||||
return NIS_NOMEMORY;
|
||||
}
|
||||
newmem = newp;
|
||||
|
||||
NIS_RES_OBJECT (res)->GR_data.gr_members.gr_members_val = newmem;
|
||||
NIS_RES_OBJECT (res)->GR_data.gr_members.gr_members_len = k;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 1997, 1998, 1999, 2003, 2004 Free Software Foundation, Inc.
|
||||
/* Copyright (c) 1997,1998,1999,2003,2004,2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
|
||||
|
||||
@ -94,9 +94,10 @@ __create_ib_request (const_nis_name name, unsigned int flags)
|
||||
if ((search_len + 1) >= size)
|
||||
{
|
||||
size += 1;
|
||||
search_val = realloc (search_val, size * sizeof (nis_attr));
|
||||
if (search_val == NULL)
|
||||
nis_attr *newp = realloc (search_val, size * sizeof (nis_attr));
|
||||
if (newp == NULL)
|
||||
goto free_null;
|
||||
search_val = newp;
|
||||
}
|
||||
search_val[search_len].zattr_ndx = strdup (key);
|
||||
if ((search_val[search_len].zattr_ndx) == NULL)
|
||||
|
@ -59,6 +59,14 @@ endif
|
||||
|
||||
LDLIBS-nscd = $(selinux-LIBS)
|
||||
|
||||
# The configure.in check for libselinux and its headers did not use
|
||||
# $SYSINCLUDES. The directory specified by --with-headers usually
|
||||
# contains only the basic kernel interface headers, not something like
|
||||
# libselinux. So the simplest thing is to presume that the standard
|
||||
# system headers will be ok for this file.
|
||||
$(objpfx)nscd_stat.o: sysincludes = # nothing
|
||||
$(objpfx)selinux.o: sysincludes = # nothing
|
||||
|
||||
distribute := nscd.h nscd-client.h dbg_log.h \
|
||||
$(addsuffix .c, $(filter-out xmalloc,$(all-nscd-modules))) \
|
||||
nscd_nischeck.c nscd.conf nscd.init nscd_proto.h \
|
||||
|
6
scripts/config.guess
vendored
6
scripts/config.guess
vendored
@ -3,7 +3,7 @@
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2005-03-24'
|
||||
timestamp='2005-04-22'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
@ -1140,6 +1140,10 @@ EOF
|
||||
# From seanf@swdc.stratus.com.
|
||||
echo i860-stratus-sysv4
|
||||
exit 0 ;;
|
||||
i*86:VOS:*:*)
|
||||
# From Paul.Green@stratus.com.
|
||||
echo ${UNAME_MACHINE}-stratus-vos
|
||||
exit 0 ;;
|
||||
*:VOS:*:*)
|
||||
# From Paul.Green@stratus.com.
|
||||
echo hppa1.1-stratus-vos
|
||||
|
11
scripts/config.sub
vendored
11
scripts/config.sub
vendored
@ -3,7 +3,7 @@
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2005-02-10'
|
||||
timestamp='2005-04-22'
|
||||
|
||||
# This file is (in principle) common to ALL GNU software.
|
||||
# The presence of a machine in this file suggests that SOME GNU software
|
||||
@ -231,6 +231,7 @@ case $basic_machine in
|
||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
||||
| am33_2.0 \
|
||||
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
|
||||
| bfin \
|
||||
| c4x | clipper \
|
||||
| d10v | d30v | dlx | dsp16xx \
|
||||
| fr30 | frv \
|
||||
@ -262,7 +263,8 @@ case $basic_machine in
|
||||
| pyramid \
|
||||
| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
|
||||
| sh64 | sh64le \
|
||||
| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
|
||||
| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
|
||||
| sparcv8 | sparcv9 | sparcv9b \
|
||||
| strongarm \
|
||||
| tahoe | thumb | tic4x | tic80 | tron \
|
||||
| v850 | v850e \
|
||||
@ -298,7 +300,7 @@ case $basic_machine in
|
||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
||||
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
|
||||
| avr-* \
|
||||
| bs2000-* \
|
||||
| bfin-* | bs2000-* \
|
||||
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
|
||||
| clipper-* | craynv-* | cydra-* \
|
||||
| d10v-* | d30v-* | dlx-* \
|
||||
@ -336,7 +338,8 @@ case $basic_machine in
|
||||
| romp-* | rs6000-* \
|
||||
| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
|
||||
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
||||
| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
|
||||
| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
|
||||
| sparclite-* \
|
||||
| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
|
||||
| tahoe-* | thumb-* \
|
||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* System-specific settings for dynamic linker code. Alpha version.
|
||||
Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -17,25 +17,8 @@
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _DL_SYSDEP_H
|
||||
#define _DL_SYSDEP_H 1
|
||||
|
||||
/* This macro must be defined to either 0 or 1.
|
||||
|
||||
If 1, then an errno global variable hidden in ld.so will work right with
|
||||
all the errno-using libc code compiled for ld.so, and there is never a
|
||||
need to share the errno location with libc. This is appropriate only if
|
||||
all the libc functions that ld.so uses are called without PLT and always
|
||||
get the versions linked into ld.so rather than the libc ones. */
|
||||
|
||||
#ifdef IS_IN_rtld
|
||||
# define RTLD_PRIVATE_ERRNO 1
|
||||
#else
|
||||
# define RTLD_PRIVATE_ERRNO 0
|
||||
#endif
|
||||
#include_next <dl-sysdep.h>
|
||||
|
||||
/* _dl_argv cannot be attribute_relro, because _dl_start_user
|
||||
might write into it after _dl_start returns. */
|
||||
#define DL_ARGV_NOT_RELRO 1
|
||||
|
||||
#endif /* dl-sysdep.h */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* System-specific settings for dynamic linker code. Generic version.
|
||||
Copyright (C) 2002, 2003 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -17,8 +17,8 @@
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _DL_SYSDEP_H
|
||||
#define _DL_SYSDEP_H 1
|
||||
/* No multiple inclusion protection need here because it's just macros.
|
||||
We don't want to use _DL_SYSDEP_H in case we are #include_next'd. */
|
||||
|
||||
/* This macro must be defined to either 0 or 1.
|
||||
|
||||
@ -33,5 +33,3 @@
|
||||
#else
|
||||
# define RTLD_PRIVATE_ERRNO 0
|
||||
#endif
|
||||
|
||||
#endif /* dl-sysdep.h */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Compare two memory blocks for differences in the first COUNT bytes.
|
||||
Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -350,6 +350,7 @@ L(set):
|
||||
sbbl $-1, %eax
|
||||
popl %esi
|
||||
RETURN
|
||||
END (BP_SYM (memcmp))
|
||||
|
||||
.section .rodata
|
||||
ALIGN (2)
|
||||
@ -387,7 +388,6 @@ L(table_32bytes) :
|
||||
.long L(30bytes) - . + 0x78
|
||||
.long L(31bytes) - . + 0x7c
|
||||
|
||||
END (BP_SYM (memcmp))
|
||||
|
||||
#undef bcmp
|
||||
weak_alias (BP_SYM (memcmp), BP_SYM (bcmp))
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Assembler macros for i386.
|
||||
Copyright (C) 1991,92,93,95,96,98,2002,2003 Free Software Foundation, Inc.
|
||||
Copyright (C) 1991-93,95,96,98,2002,2003,2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -57,10 +57,12 @@
|
||||
.align ALIGNARG(4); \
|
||||
STABS_FUN(name) \
|
||||
C_LABEL(name) \
|
||||
cfi_startproc; \
|
||||
CALL_MCOUNT
|
||||
|
||||
#undef END
|
||||
#define END(name) \
|
||||
cfi_endproc; \
|
||||
ASM_SIZE_DIRECTIVE(name) \
|
||||
STABS_FUN_END(name)
|
||||
|
||||
@ -92,7 +94,9 @@
|
||||
/* The mcount code relies on a normal frame pointer being on the stack
|
||||
to locate our caller, so push one just for its benefit. */
|
||||
#define CALL_MCOUNT \
|
||||
pushl %ebp; movl %esp, %ebp; call JUMPTARGET(mcount); popl %ebp;
|
||||
pushl %ebp; cfi_adjust_cfa_offset (4); movl %esp, %ebp; \
|
||||
cfi_def_cfa_register (ebp); call JUMPTARGET(mcount); \
|
||||
popl %ebp; cfi_def_cfa (esp, 4);
|
||||
#else
|
||||
#define CALL_MCOUNT /* Do nothing. */
|
||||
#endif
|
||||
@ -122,8 +126,10 @@ lose: SYSCALL_PIC_SETUP \
|
||||
#define JUMPTARGET(name) name##@PLT
|
||||
#define SYSCALL_PIC_SETUP \
|
||||
pushl %ebx; \
|
||||
cfi_adjust_cfa_offset (4); \
|
||||
call 0f; \
|
||||
0: popl %ebx; \
|
||||
cfi_adjust_cfa_offset (-4); \
|
||||
addl $_GLOBAL_OFFSET_TABLE+[.-0b], %ebx;
|
||||
#else
|
||||
#define JUMPTARGET(name) name
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* System-specific settings for dynamic linker code. IA-64 version.
|
||||
Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -17,25 +17,8 @@
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _DL_SYSDEP_H
|
||||
#define _DL_SYSDEP_H 1
|
||||
|
||||
/* This macro must be defined to either 0 or 1.
|
||||
|
||||
If 1, then an errno global variable hidden in ld.so will work right with
|
||||
all the errno-using libc code compiled for ld.so, and there is never a
|
||||
need to share the errno location with libc. This is appropriate only if
|
||||
all the libc functions that ld.so uses are called without PLT and always
|
||||
get the versions linked into ld.so rather than the libc ones. */
|
||||
|
||||
#ifdef IS_IN_rtld
|
||||
# define RTLD_PRIVATE_ERRNO 1
|
||||
#else
|
||||
# define RTLD_PRIVATE_ERRNO 0
|
||||
#endif
|
||||
#include_next <dl-sysdep.h>
|
||||
|
||||
/* _dl_argv cannot be attribute_relro, because _dl_start_user
|
||||
might write into it after _dl_start returns. */
|
||||
#define DL_ARGV_NOT_RELRO 1
|
||||
|
||||
#endif /* dl-sysdep.h */
|
||||
|
@ -62,8 +62,7 @@ EALIGN (BP_SYM (memset), 5, 0)
|
||||
#define rNEG64 r8 /* Constant -64 for clearing with dcbz. */
|
||||
#define rCLS r8 /* Cache line size obtained from static. */
|
||||
#define rCLM r9 /* Cache line size mask to check for cache alignment. */
|
||||
|
||||
___memset:
|
||||
L(_memset):
|
||||
#if __BOUNDED_POINTERS__
|
||||
cmpldi cr1, rRTN, 0
|
||||
CHECK_BOUNDS_BOTH_WIDE (rMEMP0, rTMP, rTMP2, rLEN)
|
||||
@ -282,11 +281,11 @@ ENTRY (BP_SYM (__bzero))
|
||||
mr r4,r3
|
||||
/* Tell memset that we don't want a return value. */
|
||||
li r3,0
|
||||
b ___memset
|
||||
b L(_memset)
|
||||
#else
|
||||
mr r5,r4
|
||||
li r4,0
|
||||
b ___memset
|
||||
b L(_memset)
|
||||
#endif
|
||||
END_GEN_TB (BP_SYM (__bzero),TB_TOCLESS)
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* System-specific settings for dynamic linker code. SPARC version.
|
||||
Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -17,25 +17,8 @@
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _DL_SYSDEP_H
|
||||
#define _DL_SYSDEP_H 1
|
||||
|
||||
/* This macro must be defined to either 0 or 1.
|
||||
|
||||
If 1, then an errno global variable hidden in ld.so will work right with
|
||||
all the errno-using libc code compiled for ld.so, and there is never a
|
||||
need to share the errno location with libc. This is appropriate only if
|
||||
all the libc functions that ld.so uses are called without PLT and always
|
||||
get the versions linked into ld.so rather than the libc ones. */
|
||||
|
||||
#ifdef IS_IN_rtld
|
||||
# define RTLD_PRIVATE_ERRNO 1
|
||||
#else
|
||||
# define RTLD_PRIVATE_ERRNO 0
|
||||
#endif
|
||||
#include_next <dl-sysdep.h>
|
||||
|
||||
/* _dl_argv cannot be attribute_relro, because _dl_start_user
|
||||
might write into it after _dl_start returns. */
|
||||
#define DL_ARGV_NOT_RELRO 1
|
||||
|
||||
#endif /* dl-sysdep.h */
|
||||
|
27
sysdeps/unix/sysv/linux/dl-sysdep.h
Normal file
27
sysdeps/unix/sysv/linux/dl-sysdep.h
Normal file
@ -0,0 +1,27 @@
|
||||
/* System-specific settings for dynamic linker code. Linux version.
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
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
|
||||
02111-1307 USA. */
|
||||
|
||||
#include_next <dl-sysdep.h>
|
||||
|
||||
/* On many architectures the kernel provides a virtual DSO and gives
|
||||
AT_SYSINFO_EHDR to point us to it. As this is introduced for new
|
||||
machines, we should look at it for unwind information even if
|
||||
we aren't making direct use of it. So enable this across the board. */
|
||||
|
||||
#define NEED_DL_SYSINFO_DSO 1
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1995,1996,1997,1998,2002,2003 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1995-1998,2002,2003,2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -41,7 +41,6 @@
|
||||
#endif
|
||||
|
||||
.globl __socket
|
||||
cfi_startproc
|
||||
ENTRY (__socket)
|
||||
#if defined NEED_CANCELLATION && defined CENABLE
|
||||
SINGLE_THREAD_P
|
||||
@ -118,7 +117,6 @@ L(pseudo_end):
|
||||
/* Successful; return the syscall's value. */
|
||||
ret
|
||||
#endif
|
||||
cfi_endproc
|
||||
PSEUDO_END (__socket)
|
||||
|
||||
#ifndef NO_WEAK_ALIAS
|
||||
|
@ -168,16 +168,22 @@ __i686.get_pc_thunk.reg: \
|
||||
# else
|
||||
# define SYSCALL_ERROR_HANDLER \
|
||||
0:pushl %ebx; \
|
||||
cfi_adjust_cfa_offset (4); \
|
||||
cfi_rel_offset (ebx, 0); \
|
||||
SETUP_PIC_REG (bx); \
|
||||
addl $_GLOBAL_OFFSET_TABLE_, %ebx; \
|
||||
xorl %edx, %edx; \
|
||||
subl %eax, %edx; \
|
||||
pushl %edx; \
|
||||
cfi_adjust_cfa_offset (4); \
|
||||
PUSH_ERRNO_LOCATION_RETURN; \
|
||||
call BP_SYM (__errno_location)@PLT; \
|
||||
POP_ERRNO_LOCATION_RETURN; \
|
||||
popl %ecx; \
|
||||
cfi_adjust_cfa_offset (-4); \
|
||||
popl %ebx; \
|
||||
cfi_adjust_cfa_offset (-4); \
|
||||
cfi_restore (ebx); \
|
||||
movl %ecx, (%eax); \
|
||||
orl $-1, %eax; \
|
||||
jmp L(pseudo_end);
|
||||
@ -273,9 +279,11 @@ __i686.get_pc_thunk.reg: \
|
||||
#define PUSHARGS_1 movl %ebx, %edx; L(SAVEBX1): PUSHARGS_0
|
||||
#define DOARGS_1 _DOARGS_1 (4)
|
||||
#define POPARGS_1 POPARGS_0; movl %edx, %ebx; L(RESTBX1):
|
||||
#define _PUSHARGS_1 pushl %ebx; L(PUSHBX1): _PUSHARGS_0
|
||||
#define _PUSHARGS_1 pushl %ebx; cfi_adjust_cfa_offset (4); \
|
||||
cfi_rel_offset (ebx, 0); L(PUSHBX1): _PUSHARGS_0
|
||||
#define _DOARGS_1(n) movl n(%esp), %ebx; _DOARGS_0(n-4)
|
||||
#define _POPARGS_1 _POPARGS_0; popl %ebx; L(POPBX1):
|
||||
#define _POPARGS_1 _POPARGS_0; popl %ebx; cfi_adjust_cfa_offset (-4); \
|
||||
cfi_restore (ebx); L(POPBX1):
|
||||
|
||||
#define PUSHARGS_2 PUSHARGS_1
|
||||
#define DOARGS_2 _DOARGS_2 (8)
|
||||
@ -294,23 +302,29 @@ __i686.get_pc_thunk.reg: \
|
||||
#define PUSHARGS_4 _PUSHARGS_4
|
||||
#define DOARGS_4 _DOARGS_4 (24)
|
||||
#define POPARGS_4 _POPARGS_4
|
||||
#define _PUSHARGS_4 pushl %esi; L(PUSHSI1): _PUSHARGS_3
|
||||
#define _PUSHARGS_4 pushl %esi; cfi_adjust_cfa_offset (4); \
|
||||
cfi_rel_offset (esi, 0); L(PUSHSI1): _PUSHARGS_3
|
||||
#define _DOARGS_4(n) movl n(%esp), %esi; _DOARGS_3 (n-4)
|
||||
#define _POPARGS_4 _POPARGS_3; popl %esi; L(POPSI1):
|
||||
#define _POPARGS_4 _POPARGS_3; popl %esi; cfi_adjust_cfa_offset (-4); \
|
||||
cfi_restore (esi); L(POPSI1):
|
||||
|
||||
#define PUSHARGS_5 _PUSHARGS_5
|
||||
#define DOARGS_5 _DOARGS_5 (32)
|
||||
#define POPARGS_5 _POPARGS_5
|
||||
#define _PUSHARGS_5 pushl %edi; L(PUSHDI1): _PUSHARGS_4
|
||||
#define _PUSHARGS_5 pushl %edi; cfi_adjust_cfa_offset (4); \
|
||||
cfi_rel_offset (edi, 0); L(PUSHDI1): _PUSHARGS_4
|
||||
#define _DOARGS_5(n) movl n(%esp), %edi; _DOARGS_4 (n-4)
|
||||
#define _POPARGS_5 _POPARGS_4; popl %edi; L(POPDI1):
|
||||
#define _POPARGS_5 _POPARGS_4; popl %edi; cfi_adjust_cfa_offset (-4); \
|
||||
cfi_restore (edi); L(POPDI1):
|
||||
|
||||
#define PUSHARGS_6 _PUSHARGS_6
|
||||
#define DOARGS_6 _DOARGS_6 (36)
|
||||
#define POPARGS_6 _POPARGS_6
|
||||
#define _PUSHARGS_6 pushl %ebp; L(PUSHBP1): _PUSHARGS_5
|
||||
#define _PUSHARGS_6 pushl %ebp; cfi_adjust_cfa_offset (4); \
|
||||
cfi_rel_offset (ebp, 0); L(PUSHBP1): _PUSHARGS_5
|
||||
#define _DOARGS_6(n) movl n(%esp), %ebp; _DOARGS_5 (n-4)
|
||||
#define _POPARGS_6 _POPARGS_5; popl %ebp; L(POPBP1):
|
||||
#define _POPARGS_6 _POPARGS_5; popl %ebp; cfi_adjust_cfa_offset (-4); \
|
||||
cfi_restore (ebp); L(POPBP1):
|
||||
|
||||
#else /* !__ASSEMBLER__ */
|
||||
|
||||
|
@ -354,22 +354,24 @@
|
||||
|
||||
/* The tgkill syscall was instroduced for i386 in 2.5.75. For Alpha
|
||||
it was introduced in 2.6.0-test1 which unfortunately cannot be
|
||||
distinguished from 2.6.0. On x86-64 it was introduced in
|
||||
2.6.0-test3. */
|
||||
distinguished from 2.6.0. On x86-64, ppc, and ppc64 it was
|
||||
introduced in 2.6.0-test3. */
|
||||
#if (__LINUX_KERNEL_VERSION >= 132427 && defined __i386__) \
|
||||
|| (__LINUX_KERNEL_VERSION >= 132609 && defined __alpha__) \
|
||||
|| (__LINUX_KERNEL_VERSION >= 132609 && defined __x86_64__) \
|
||||
|| (__LINUX_KERNEL_VERSION >= 132609 && defined __powerpc__) \
|
||||
|| (__LINUX_KERNEL_VERSION >= 132609 && defined __sh__)
|
||||
# define __ASSUME_TGKILL 1
|
||||
#endif
|
||||
|
||||
/* The utimes syscall has been available for some architectures
|
||||
forever. For x86 it was introduced after 2.5.75, for x86-64 in
|
||||
2.6.0-test3. */
|
||||
forever. For x86 it was introduced after 2.5.75, for x86-64,
|
||||
ppc, and ppc64 it was introduced in 2.6.0-test3. */
|
||||
#if defined __alpha__ || defined __ia64__ || defined __hppa__ \
|
||||
|| defined __sparc__ \
|
||||
|| (__LINUX_KERNEL_VERSION > 132427 && defined __i386__) \
|
||||
|| (__LINUX_KERNEL_VERSION > 132609 && defined __x86_64__) \
|
||||
|| (__LINUX_KERNEL_VERSION >= 132609 && defined __powerpc__) \
|
||||
|| (__LINUX_KERNEL_VERSION >= 132609 && defined __sh__)
|
||||
# define __ASSUME_UTIMES 1
|
||||
#endif
|
||||
@ -383,8 +385,11 @@
|
||||
#endif
|
||||
|
||||
/* The fixed version of the posix_fadvise64 syscall appeared in
|
||||
2.6.0-test3. At least for x86. */
|
||||
#if __LINUX_KERNEL_VERSION >= 132609 && defined __i386__
|
||||
2.6.0-test3. At least for x86. Powerpc support appeared in
|
||||
2.6.2, but for 32-bit userspace only. */
|
||||
#if (__LINUX_KERNEL_VERSION >= 132609 && defined __i386__) \
|
||||
|| (__LINUX_KERNEL_VERSION >= 132610 && defined __powerpc__ \
|
||||
&& !defined __powerpc64__)
|
||||
# define __ASSUME_FADVISE64_64_SYSCALL 1
|
||||
#endif
|
||||
|
||||
@ -419,8 +424,9 @@
|
||||
# define __ASSUME_BRK_PAGE_ROUNDED 1
|
||||
#endif
|
||||
|
||||
/* Starting with version 2.6.9, the waitid system call is available. */
|
||||
#if __LINUX_KERNEL_VERSION >= 0x020609
|
||||
/* Starting with version 2.6.9, the waitid system call is available.
|
||||
Except for powerpc and powerpc64. */
|
||||
#if __LINUX_KERNEL_VERSION >= 0x020609 && !defined __powerpc__
|
||||
# define __ASSUME_WAITID_SYSCALL 1
|
||||
#endif
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# @(#)africa 7.36
|
||||
# @(#)africa 7.37
|
||||
|
||||
# This data is by no means authoritative; if you think you know better,
|
||||
# go ahead and edit the file (and please send any changes to
|
||||
@ -317,7 +317,7 @@ Rule Libya 1985 only - Apr 6 0:00 1:00 S
|
||||
Rule Libya 1986 only - Apr 4 0:00 1:00 S
|
||||
Rule Libya 1986 only - Oct 3 0:00 0 -
|
||||
Rule Libya 1987 1989 - Apr 1 0:00 1:00 S
|
||||
Rule Libya 1987 1990 - Oct 1 0:00 0 -
|
||||
Rule Libya 1987 1989 - Oct 1 0:00 0 -
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Tripoli 0:52:44 - LMT 1920
|
||||
1:00 Libya CE%sT 1959
|
||||
|
@ -1,4 +1,4 @@
|
||||
# @(#)asia 7.81
|
||||
# @(#)asia 7.82
|
||||
|
||||
# This data is by no means authoritative; if you think you know better,
|
||||
# go ahead and edit the file (and please send any changes to
|
||||
@ -476,12 +476,33 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov
|
||||
# Thursday night of Shahrivar, but I can't give exact dates....
|
||||
# I have also changed the abbreviations to what is considered correct
|
||||
# here in Iran, IRST for regular time and IRDT for daylight saving time.
|
||||
|
||||
# From Paul Eggert (2003-03-15)
|
||||
#
|
||||
# From Roozbeh Pournader (2005-04-05):
|
||||
# The text of the Iranian law, in effect since 1925, clearly mentions
|
||||
# that the true solar year is the measure, and there is no arithmetic
|
||||
# leap year calculation involved. There has never been any serious
|
||||
# plan to change that law....
|
||||
#
|
||||
# From Paul Eggert (2005-04-05):
|
||||
# Go with Shanks before September 1991, and with Pournader thereafter.
|
||||
# I used Ed Reingold's cal-persia in GNU Emacs 21.2 to check Persian dates.
|
||||
# The Persian calendar is based on the sun, and dates after around 2050
|
||||
# are approximate; stop after 2037 when 32-bit time_t's overflow.
|
||||
# I used Ed Reingold's cal-persia in GNU Emacs 21.2 to check Persian dates,
|
||||
# stopping after 2037 when 32-bit time_t's overflow.
|
||||
# That cal-persia used Birashk's approximation, which disagrees with the solar
|
||||
# calendar predictions for the year 2025, so I corrected those dates by hand.
|
||||
#
|
||||
# From Oscar van Vlijmen (2005-03-30), writing about future
|
||||
# discrepancies between cal-persia and the Iranian calendar:
|
||||
# For 2091 solar-longitude-after yields 2091-03-20 08:40:07.7 UT for
|
||||
# the vernal equinox and that gets so close to 12:00 some local
|
||||
# Iranian time that the definition of the correct location needs to be
|
||||
# known exactly, amongst other factors. 2157 is even closer:
|
||||
# 2157-03-20 08:37:15.5 UT. But the Gregorian year 2025 should give
|
||||
# no interpretation problem whatsoever. By the way, another instant
|
||||
# in the near future where there will be a discrepancy between
|
||||
# arithmetical and astronomical Iranian calendars will be in 2058:
|
||||
# vernal equinox on 2058-03-20 09:03:05.9 UT. The Java version of
|
||||
# Reingold's/Dershowitz' calculator gives correctly the Gregorian date
|
||||
# 2058-03-21 for 1 Farvardin 1437 (astronomical).
|
||||
#
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule Iran 1978 1980 - Mar 21 0:00 1:00 D
|
||||
@ -519,10 +540,10 @@ Rule Iran 2020 only - Mar 21 0:00 1:00 D
|
||||
Rule Iran 2020 only - Sep 21 0:00 0 S
|
||||
Rule Iran 2021 2023 - Mar 22 0:00 1:00 D
|
||||
Rule Iran 2021 2023 - Sep 22 0:00 0 S
|
||||
Rule Iran 2024 2025 - Mar 21 0:00 1:00 D
|
||||
Rule Iran 2024 2025 - Sep 21 0:00 0 S
|
||||
Rule Iran 2026 2027 - Mar 22 0:00 1:00 D
|
||||
Rule Iran 2026 2027 - Sep 22 0:00 0 S
|
||||
Rule Iran 2024 only - Mar 21 0:00 1:00 D
|
||||
Rule Iran 2024 only - Sep 21 0:00 0 S
|
||||
Rule Iran 2025 2027 - Mar 22 0:00 1:00 D
|
||||
Rule Iran 2025 2027 - Sep 22 0:00 0 S
|
||||
Rule Iran 2028 2029 - Mar 21 0:00 1:00 D
|
||||
Rule Iran 2028 2029 - Sep 21 0:00 0 S
|
||||
Rule Iran 2030 2031 - Mar 22 0:00 1:00 D
|
||||
|
@ -1,11 +1,11 @@
|
||||
# @(#)northamerica 7.72
|
||||
# @(#)northamerica 7.74
|
||||
# also includes Central America and the Caribbean
|
||||
|
||||
# This data is by no means authoritative; if you think you know better,
|
||||
# go ahead and edit the file (and please send any changes to
|
||||
# tz@elsie.nci.nih.gov for general use in the future).
|
||||
|
||||
# From Paul Eggert <eggert@twinsun.com> (1999-03-22):
|
||||
# From Paul Eggert (1999-03-22):
|
||||
# A reliable and entertaining source about time zones is
|
||||
# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
|
||||
|
||||
@ -24,12 +24,16 @@
|
||||
# His proposal was adopted by the railroads on 1883-11-18 at 12:00,
|
||||
# and the most of the country soon followed suit.
|
||||
|
||||
# From Paul Eggert <eggert@twinsun.com> (1995-12-19):
|
||||
# From Paul Eggert (2005-04-16):
|
||||
# That 1883 transition occurred at 12:00 new time, not at 12:00 old time.
|
||||
# See p 46 of David Prerau, Seize the daylight, Thunder's Mouth Press (2005).
|
||||
|
||||
# From Paul Eggert (1995-12-19):
|
||||
# A good source for time zone historical data in the US is
|
||||
# Thomas G. Shanks, The American Atlas (5th edition),
|
||||
# San Diego: ACS Publications, Inc. (1991).
|
||||
# Make sure you have the errata sheet; the book is somewhat useless without it.
|
||||
# It is the source for the US and Puerto Rico entries below.
|
||||
# It is the source for most of the pre-1991 US and Puerto Rico entries below.
|
||||
|
||||
# From Paul Eggert (2001-03-06):
|
||||
# Daylight Saving Time was first suggested as a joke by Benjamin Franklin
|
||||
@ -48,7 +52,8 @@
|
||||
# to push people into bed earlier, and get them up earlier, to make
|
||||
# them healthy, wealthy and wise in spite of themselves.
|
||||
#
|
||||
# -- Robertson Davies, The Diary of Samuel Marchbanks (1947), XIX, Sunday
|
||||
# -- Robertson Davies, The diary of Samuel Marchbanks,
|
||||
# Clarke, Irwin (1947), XIX, Sunday
|
||||
#
|
||||
# For more about the first ten years of DST in the United States, see
|
||||
# Robert Garland's <a href="http://www.clpgh.org/exhibit/dst.html">
|
||||
@ -222,7 +227,7 @@ Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D
|
||||
Rule NYC 1921 1954 - Sep lastSun 2:00 0 S
|
||||
Rule NYC 1955 1966 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:00
|
||||
Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:03:58
|
||||
-5:00 US E%sT 1920
|
||||
-5:00 NYC E%sT 1942
|
||||
-5:00 US E%sT 1946
|
||||
@ -248,7 +253,7 @@ Rule Chicago 1922 1966 - Apr lastSun 2:00 1:00 D
|
||||
Rule Chicago 1922 1954 - Sep lastSun 2:00 0 S
|
||||
Rule Chicago 1955 1966 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:00
|
||||
Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24
|
||||
-6:00 US C%sT 1920
|
||||
-6:00 Chicago C%sT 1936 Mar 1 2:00
|
||||
-5:00 - EST 1936 Nov 15 2:00
|
||||
@ -257,7 +262,7 @@ Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:00
|
||||
-6:00 Chicago C%sT 1967
|
||||
-6:00 US C%sT
|
||||
# Oliver County, ND switched from mountain to central time on 1992-10-25.
|
||||
Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:00
|
||||
Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48
|
||||
-7:00 US M%sT 1992 Oct 25 02:00
|
||||
-6:00 US C%sT
|
||||
|
||||
@ -276,7 +281,7 @@ Rule Denver 1921 only - May 22 2:00 0 S
|
||||
Rule Denver 1965 1966 - Apr lastSun 2:00 1:00 D
|
||||
Rule Denver 1965 1966 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00
|
||||
Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04
|
||||
-7:00 US M%sT 1920
|
||||
-7:00 Denver M%sT 1942
|
||||
-7:00 US M%sT 1946
|
||||
@ -296,7 +301,7 @@ Rule CA 1950 1966 - Apr lastSun 2:00 1:00 D
|
||||
Rule CA 1950 1961 - Sep lastSun 2:00 0 S
|
||||
Rule CA 1962 1966 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:00
|
||||
Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02
|
||||
-8:00 US P%sT 1946
|
||||
-8:00 CA P%sT 1967
|
||||
-8:00 US P%sT
|
||||
@ -423,7 +428,7 @@ Zone Pacific/Honolulu -10:31:26 - LMT 1900 Jan 1 12:00
|
||||
# Shanks says the 1944 experiment came to an end on 1944-03-17.
|
||||
# Go with the Arizona State Library instead.
|
||||
|
||||
Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 12:00
|
||||
Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 11:31:42
|
||||
-7:00 US M%sT 1944 Jan 1 00:01
|
||||
-7:00 - MST 1944 Apr 1 00:01
|
||||
-7:00 US M%sT 1944 Oct 1 00:01
|
||||
@ -447,7 +452,7 @@ Link America/Denver America/Shiprock
|
||||
# switched four weeks late in 1974.
|
||||
#
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:00
|
||||
Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11
|
||||
-8:00 US P%sT 1923 May 13 2:00
|
||||
-7:00 US M%sT 1974
|
||||
-7:00 - MST 1974 Feb 3 2:00
|
||||
@ -491,7 +496,7 @@ Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D
|
||||
Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S
|
||||
Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:00
|
||||
Zone America/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:15:22
|
||||
-6:00 US C%sT 1920
|
||||
-6:00 Indianapolis C%sT 1942
|
||||
-6:00 US C%sT 1946
|
||||
@ -511,7 +516,7 @@ Rule Marengo 1951 only - Sep lastSun 2:00 0 S
|
||||
Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D
|
||||
Rule Marengo 1954 1960 - Sep lastSun 2:00 0 S
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 12:00
|
||||
Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 12:14:37
|
||||
-6:00 US C%sT 1951
|
||||
-6:00 Marengo C%sT 1961 Apr 30 2:00
|
||||
-5:00 - EST 1969
|
||||
@ -532,7 +537,7 @@ Rule Starke 1955 1956 - Oct lastSun 2:00 0 S
|
||||
Rule Starke 1957 1958 - Sep lastSun 2:00 0 S
|
||||
Rule Starke 1959 1961 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 12:00
|
||||
Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 12:13:30
|
||||
-6:00 US C%sT 1947
|
||||
-6:00 Starke C%sT 1962 Apr 29 2:00
|
||||
-5:00 - EST 1963 Oct 27 2:00
|
||||
@ -541,7 +546,7 @@ Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 12:00
|
||||
#
|
||||
# Switzerland County, Indiana, last observed DST in 1972.
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:00
|
||||
Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:19:44
|
||||
-6:00 US C%sT 1954 Apr 25 2:00
|
||||
-5:00 - EST 1969
|
||||
-5:00 US E%sT 1973
|
||||
@ -558,7 +563,7 @@ Rule Louisville 1946 only - Jun 2 2:00 0 S
|
||||
Rule Louisville 1950 1955 - Sep lastSun 2:00 0 S
|
||||
Rule Louisville 1956 1960 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Louisville -5:43:02 - LMT 1883 Nov 18 12:00
|
||||
Zone America/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58
|
||||
-6:00 US C%sT 1921
|
||||
-6:00 Louisville C%sT 1942
|
||||
-6:00 US C%sT 1946
|
||||
@ -595,7 +600,7 @@ Link America/Louisville America/Kentucky/Louisville
|
||||
# Federal Register 65, 160 (2000-08-17), page 50154-50158.
|
||||
# </a>
|
||||
#
|
||||
Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:00
|
||||
Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:20:36
|
||||
-6:00 US C%sT 1946
|
||||
-6:00 - CST 1968
|
||||
-6:00 US C%sT 2000 Oct 29 2:00
|
||||
@ -704,7 +709,7 @@ Link Pacific/Honolulu HST
|
||||
################################################################################
|
||||
|
||||
|
||||
# From Paul Eggert <eggert@twinsun.com> (1999-10-29):
|
||||
# From Paul Eggert (1999-10-29):
|
||||
# A good source for time zone historical data outside the US is
|
||||
# Thomas G. Shanks, The International Atlas (5th edition),
|
||||
# San Diego: ACS Publications, Inc. (1999).
|
||||
@ -761,7 +766,7 @@ Link Pacific/Honolulu HST
|
||||
# T: de Terre-Neuve
|
||||
# Y: du Yukon Yukon
|
||||
#
|
||||
# From Paul Eggert <eggert@twinsun.com> (1994-11-22):
|
||||
# From Paul Eggert (1994-11-22):
|
||||
# Alas, this sort of thing must be handled by localization software.
|
||||
|
||||
# Unless otherwise specified, the data for Canada are all from Shanks.
|
||||
@ -1427,7 +1432,7 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
|
||||
# Shanks reports that Baja was at -8:00 in 1922/1923.
|
||||
# Shanks says the 1930 transition in Baja was 1930-11-16.
|
||||
# Shanks reports no DST during summer 1931.
|
||||
# Shanks reports a transition at 1032-03-30 23:00, not 1932-04-01.
|
||||
# Shanks reports a transition at 1932-03-30 23:00, not 1932-04-01.
|
||||
# Shanks does not report transitions for Baja in 1945 or 1948.
|
||||
# Shanks reports southern Mexico transitions on 1981-12-01, not 12-23.
|
||||
# Shanks says Quintana Roo switched to -6:00 on 1982-12-02, and to -5:00
|
||||
@ -1873,6 +1878,26 @@ Zone America/Guatemala -6:02:04 - LMT 1918 Oct 5
|
||||
-6:00 Guat C%sT
|
||||
|
||||
# Haiti
|
||||
# From Gwillim Law (2005-04-15):
|
||||
# Risto O. Nykanen wrote me that Haiti is now on DST.
|
||||
# I searched for confirmation, and I found a
|
||||
# <a href="http://www.haitianconsulate.org/time.doc"> press release
|
||||
# on the Web page of the Haitian Consulate in Chicago (2005-03-31),
|
||||
# </a>. Translated from French, it says:
|
||||
#
|
||||
# "The Prime Minister's Communication Office notifies the public in general
|
||||
# and the press in particular that, following a decision of the Interior
|
||||
# Ministry and the Territorial Collectivities [I suppose that means the
|
||||
# provinces], Haiti will move to Eastern Daylight Time in the night from next
|
||||
# Saturday the 2nd to Sunday the 3rd.
|
||||
#
|
||||
# "Consequently, the Prime Minister's Communication Office wishes to inform
|
||||
# the population that the country's clocks will be set forward one hour
|
||||
# starting at midnight. This provision will hold until the last Saturday in
|
||||
# October 2005.
|
||||
#
|
||||
# "Port-au-Prince, March 31, 2005"
|
||||
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule Haiti 1983 only - May 8 0:00 1:00 D
|
||||
Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D
|
||||
@ -1880,6 +1905,8 @@ Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S
|
||||
# Shanks says AT is 2:00, but IATA SSIM (1991/1997) says 1:00s. Go with IATA.
|
||||
Rule Haiti 1988 1997 - Apr Sun>=1 1:00s 1:00 D
|
||||
Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S
|
||||
Rule Haiti 2005 only - Apr Sun>=1 0:00 1:00 D
|
||||
Rule Haiti 2005 only - Oct lastSun 0:00 0 S
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Port-au-Prince -4:49:20 - LMT 1890
|
||||
-4:49 - PPMT 1917 Jan 24 12:00 # P-a-P MT
|
||||
@ -1931,11 +1958,28 @@ Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Olveston
|
||||
# Nicaragua seems to be back at -6:00 but I have not been able to find when
|
||||
# they changed from -5:00.
|
||||
#
|
||||
# From Steffen Thorsen (2005-04-12):
|
||||
# I've got reports from 8 different people that Nicaragua just started
|
||||
# DST on Sunday 2005-04-10, in order to save energy because of
|
||||
# expensive petroleum. The exact end date for DST is not yet
|
||||
# announced, only "September" but some sites also say "mid-September".
|
||||
# Some background information is available on the President's official site:
|
||||
# http://www.presidencia.gob.ni/Presidencia/Files_index/Secretaria/Notas%20de%20Prensa/Presidente/2005/ABRIL/Gobierno-de-nicaragua-adelanta-hora-oficial-06abril.htm
|
||||
# The Decree, no 23-2005 is available here:
|
||||
# http://www.presidencia.gob.ni/buscador_gaceta/BD/DECRETOS/2005/Decreto%2023-2005%20Se%20adelanta%20en%20una%20hora%20en%20todo%20el%20territorio%20nacional%20apartir%20de%20las%2024horas%20del%2009%20de%20Abril.pdf
|
||||
#
|
||||
# From Paul Eggert (2005-04-12):
|
||||
# The decree doesn't say anything about daylight saving, but for now let's
|
||||
# assume that it is daylight saving and that they'll switch back on the
|
||||
# 2nd Sunday in September.
|
||||
#
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule Nic 1979 1980 - Mar Sun>=16 0:00 1:00 D
|
||||
Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
|
||||
Rule Nic 1992 only - Jan 1 4:00 1:00 D
|
||||
Rule Nic 1992 only - Sep 24 0:00 0 S
|
||||
Rule Nic 2005 only - Apr 10 0:00 1:00 D
|
||||
Rule Nic 2005 only - Sep 11 0:00 0 S
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Managua -5:45:08 - LMT 1890
|
||||
-5:45:12 - MMT 1934 Jun 23 # Managua Mean Time?
|
||||
@ -1943,7 +1987,7 @@ Zone America/Managua -5:45:08 - LMT 1890
|
||||
-5:00 - EST 1975 Feb 16
|
||||
-6:00 Nic C%sT 1993 Jan 1 4:00
|
||||
-5:00 - EST 1998 Dec
|
||||
-6:00 - CST
|
||||
-6:00 Nic C%sT
|
||||
|
||||
# Panama
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
|
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
|
||||
: '@(#)yearistype.sh 7.7'
|
||||
: '@(#)yearistype.sh 7.8'
|
||||
|
||||
case $#-$1 in
|
||||
2-|2-0*|2-*[!0-9]*)
|
||||
@ -9,7 +9,7 @@ case $#-$1 in
|
||||
esac
|
||||
|
||||
case $#-$2 in
|
||||
2-even)
|
||||
2-even)
|
||||
case $1 in
|
||||
*[24680]) exit 0 ;;
|
||||
*) exit 1 ;;
|
||||
@ -19,7 +19,7 @@ case $#-$2 in
|
||||
*[02468][048]|*[13579][26]) exit 1 ;;
|
||||
*) exit 0 ;;
|
||||
esac ;;
|
||||
2-odd)
|
||||
2-odd)
|
||||
case $1 in
|
||||
*[13579]) exit 0 ;;
|
||||
*) exit 1 ;;
|
||||
@ -29,7 +29,7 @@ case $#-$2 in
|
||||
*[02468][048]|*[13579][26]) exit 0 ;;
|
||||
*) exit 1 ;;
|
||||
esac ;;
|
||||
2-*)
|
||||
2-*)
|
||||
echo "$0: wild type - $2" >&2 ;;
|
||||
esac
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user