Updated to fedora-glibc-20050503T0852

This commit is contained in:
Jakub Jelinek 2005-05-03 09:28:32 +00:00
parent a0971eefb7
commit eec65e81e7
36 changed files with 7608 additions and 157 deletions

View File

@ -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
View File

@ -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 ;;

View File

@ -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 ;;

View File

@ -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

View File

@ -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

View File

@ -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)"'

View File

@ -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
View 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
View 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
View 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
View 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
View 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
View 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 $?

View File

@ -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

View File

@ -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 \

View File

@ -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;

View File

@ -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)

View File

@ -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 \

6767
po/rw.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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
View File

@ -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-* \

View File

@ -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 */

View File

@ -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 */

View File

@ -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))

View File

@ -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

View File

@ -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 */

View File

@ -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)

View File

@ -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 */

View 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

View File

@ -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

View File

@ -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__ */

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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