summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-11-10 20:04:37 +0000
committerJakub Jelinek <jakub@redhat.com>2006-11-10 20:04:37 +0000
commit8ee382621852ed3c7e5ff17609e69cdfc1ba5c9f (patch)
tree95ebc3131f83bbcff30b75e5031a63291b1e033d
parent362d67883f1d8b55049f47b5d56e534f04be0b99 (diff)
downloadglibc-8ee382621852ed3c7e5ff17609e69cdfc1ba5c9f.tar.gz
Updated to fedora-glibc-20061110T1956
-rw-r--r--ChangeLog39
-rw-r--r--fedora/branch.mk4
-rw-r--r--fedora/glibc.spec.in6
-rw-r--r--po/sv.po20
-rw-r--r--posix/unistd.h2
-rw-r--r--string/strxfrm_l.c2
-rw-r--r--string/tst-strxfrm2.c50
-rw-r--r--sysdeps/gnu/siglist.c8
-rw-r--r--sysdeps/i386/fpu/bits/mathinline.h42
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysconf.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysconf.c1
11 files changed, 140 insertions, 35 deletions
diff --git a/ChangeLog b/ChangeLog
index ba1c875975..791b786cb0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,44 @@
+2006-11-10 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #3451]
+ * sysdeps/i386/fpu/bits/mathinline.h (floor): Make rounding mode
+ change atomic.
+ (ceil): Likewise.
+
+2006-11-10 Jakub Jelinek <jakub@redhat.com>
+
+ * string/strxfrm_l.c (STRXFRM): Fix trailing \1 optimization
+ if N is one bigger than return value.
+ * string/tst-strxfrm2.c (do_test): Also test strxfrm with l1 + 1
+ and l1 last arguments, if buf is defined, verify the return value
+ equals to strlen (buf) and verify no byte beyond passed length
+ is modified.
+
+2006-11-10 Ulrich Drepper <drepper@redhat.com>
+
+ * po/sv.po: Update from translation team.
+
2006-11-09 Ulrich Drepper <drepper@redhat.com>
+ * sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word): Add
+ noinline attribute.
+
+2006-11-10 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): Add
+ noinline attribute.
+
+ * sysdeps/gnu/siglist.c (__old_sys_siglist, __old_sys_sigabbrev):
+ Use __new_sys_siglist instead of _sys_siglist_internal as
+ second macro argument.
+ (_old_sys_siglist): Use declare_symbol_alias macro instead of
+ strong_alias.
+
+2006-11-09 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #3493]
+ * posix/unistd.h (sysconf): Remove const attribute.
+
* sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix test for
temporary or deprecated addresses.
Patch by Sridhar Samudrala <sri@us.ibm.com>.
diff --git a/fedora/branch.mk b/fedora/branch.mk
index 6226cbbad1..1762b85308 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -3,5 +3,5 @@ glibc-branch := fedora
glibc-base := HEAD
DIST_BRANCH := devel
COLLECTION := dist-fc4
-fedora-sync-date := 2006-11-09 20:48 UTC
-fedora-sync-tag := fedora-glibc-20061109T2048
+fedora-sync-date := 2006-11-10 19:56 UTC
+fedora-sync-tag := fedora-glibc-20061110T1956
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index da2d43898e..0b99a9e00e 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -1,4 +1,4 @@
-%define glibcrelease 5
+%define glibcrelease 6
%define auxarches i586 i686 athlon sparcv9 alphaev6
%define xenarches i686 athlon
%ifarch %{xenarches}
@@ -1529,6 +1529,10 @@ rm -f *.filelist*
%endif
%changelog
+* Fri Nov 10 2006 Jakub Jelinek <jakub@redhat.com> 2.5.90-6
+- fix strxfrm fix
+- fix i?86 floor and ceil inlines (BZ#3451)
+
* Thu Nov 9 2006 Jakub Jelinek <jakub@redhat.com> 2.5.90-5
- fix sysconf (_SC_LEVEL{2,3}_CACHE_SIZE) on Intel Core Duo
CPUs
diff --git a/po/sv.po b/po/sv.po
index 37a6af79b9..6aeb308fe5 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,13 +1,13 @@
# GNU libc message catalog for swedish
# Copyright © 1996, 1998, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
# Jan Djärv <jan.h.d@swipnet.se>, 1996, 1998, 2001, 2002, 2003, 2006.
-# Revision: 1.51
+# Revision: 1.52
#
msgid ""
msgstr ""
"Project-Id-Version: libc 2.5\n"
"POT-Creation-Date: 2006-09-29 11:38-0700\n"
-"PO-Revision-Date: 2006-11-01 08:40+0100\n"
+"PO-Revision-Date: 2006-11-09 13:51+0100\n"
"Last-Translator: Jan Djärv <jan.h.d@swipnet.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
@@ -141,6 +141,7 @@ msgid ""
msgstr ""
"För felrapporteringsinstruktioner, se:\n"
"<http://www.gnu.org/software/libc/bugs.html>.\n"
+"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
#: catgets/gencat.c:245 debug/xtrace.sh:64 elf/ldconfig.c:285
#: elf/ldd.bash.in:39 elf/sprof.c:355 iconv/iconv_prog.c:425
@@ -946,7 +947,8 @@ msgstr ""
" -u, --unused skriv ut oanvända direkta beroenden\n"
" -v, --verbose skriv all information\n"
"För felrapporteringsinstruktioner, se:\n"
-"<http://www.gnu.org/software/libc/bugs.html>."
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
+"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>."
#: elf/ldd.bash.in:80
msgid "ldd: option `$1' is ambiguous"
@@ -1048,7 +1050,7 @@ msgstr "%s är inte en ELF-fil, den har inte rätt magiskt tal i början.\n"
#: elf/sprof.c:77
msgid "Output selection:"
-msgstr "Välj utdata:"
+msgstr "Val av utdata:"
#: elf/sprof.c:79
msgid "print list of count paths and their number of use"
@@ -1069,6 +1071,7 @@ msgid ""
msgstr ""
"Läs och visa profildata för delat objekt. För felrapporteringsinstruktioner, se:\n"
"<http://www.gnu.org/software/libc/bugs.html>.\n"
+"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
#: elf/sprof.c:94
msgid "SHOBJ [PROFDATA]"
@@ -1212,7 +1215,7 @@ msgstr "visa alla kända teckenuppsättningar"
#: iconv/iconv_prog.c:64 locale/programs/localedef.c:126
msgid "Output control:"
-msgstr "Styr utdata:"
+msgstr "Val av utdata:"
#: iconv/iconv_prog.c:65
msgid "omit invalid characters from output"
@@ -1311,7 +1314,7 @@ msgstr ""
#: iconv/iconvconfig.c:109
msgid "Create fastloading iconv module configuration file."
-msgstr "Skapa en konfigurationsfil för snabbladdning av modul \"iconv\""
+msgstr "Skapa en snabbladdande modulkonfigurationsfil för iconv."
#: iconv/iconvconfig.c:113
msgid "[DIR...]"
@@ -2418,6 +2421,7 @@ msgid ""
msgstr ""
"Hämta lokalspecifik information. För felrapporteringsinstruktioner, se:\n"
"<http://www.gnu.org/software/libc/bugs.html>.\n"
+"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
#: locale/programs/locale.c:91
msgid ""
@@ -2881,7 +2885,8 @@ msgstr ""
"motsvarande korta.\n"
"\n"
"För felrapporteringsinstruktioner, se:\n"
-"<http://www.gnu.org/software/libc/bugs.html>."
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
+"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>."
#: malloc/memusage.sh:90
msgid ""
@@ -4212,6 +4217,7 @@ msgid ""
msgstr ""
"Hämta poster från den administrativa databasen För felrapporteringsinstruktioner, se:\n"
"<http://www.gnu.org/software/libc/bugs.html>.\n"
+"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
#: nss/getent.c:145 nss/getent.c:394
#, c-format
diff --git a/posix/unistd.h b/posix/unistd.h
index b751928b1e..c74190dfc3 100644
--- a/posix/unistd.h
+++ b/posix/unistd.h
@@ -559,7 +559,7 @@ extern long int pathconf (__const char *__path, int __name)
extern long int fpathconf (int __fd, int __name) __THROW;
/* Get the value of the system variable NAME. */
-extern long int sysconf (int __name) __THROW __attribute__ ((__const__));
+extern long int sysconf (int __name) __THROW;
#ifdef __USE_POSIX2
/* Get the value of the string-valued system variable NAME. */
diff --git a/string/strxfrm_l.c b/string/strxfrm_l.c
index f158833f05..20f2f149bd 100644
--- a/string/strxfrm_l.c
+++ b/string/strxfrm_l.c
@@ -432,7 +432,7 @@ STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l)
if (needed > 2 && needed == last_needed + 1)
{
/* Remove the \1 byte. */
- if (--needed < n)
+ if (--needed <= n)
dest[needed - 1] = L('\0');
}
diff --git a/string/tst-strxfrm2.c b/string/tst-strxfrm2.c
index 31fc42cc93..d5a1115338 100644
--- a/string/tst-strxfrm2.c
+++ b/string/tst-strxfrm2.c
@@ -7,14 +7,34 @@ do_test (void)
{
int res = 0;
- char buf[10];
+ char buf[20];
size_t l1 = strxfrm (NULL, "ab", 0);
size_t l2 = strxfrm (buf, "ab", 1);
size_t l3 = strxfrm (buf, "ab", sizeof (buf));
+ if (l3 < sizeof (buf) && strlen (buf) != l3)
+ {
+ puts ("C locale l3 test failed");
+ res = 1;
+ }
+
+ size_t l4 = strxfrm (buf, "ab", l1 + 1);
+ if (l4 < l1 + 1 && strlen (buf) != l4)
+ {
+ puts ("C locale l4 test failed");
+ res = 1;
+ }
+
+ buf[l1] = 'Z';
+ size_t l5 = strxfrm (buf, "ab", l1);
+ if (buf[l1] != 'Z')
+ {
+ puts ("C locale l5 test failed");
+ res = 1;
+ }
- if (l1 != l2 || l1 != l3)
+ if (l1 != l2 || l1 != l3 || l1 != l4 || l1 != l5)
{
- puts ("C locale test failed");
+ puts ("C locale retval test failed");
res = 1;
}
@@ -28,10 +48,30 @@ do_test (void)
l1 = strxfrm (NULL, "ab", 0);
l2 = strxfrm (buf, "ab", 1);
l3 = strxfrm (buf, "ab", sizeof (buf));
+ if (l3 < sizeof (buf) && strlen (buf) != l3)
+ {
+ puts ("UTF-8 locale l3 test failed");
+ res = 1;
+ }
+
+ l4 = strxfrm (buf, "ab", l1 + 1);
+ if (l4 < l1 + 1 && strlen (buf) != l4)
+ {
+ puts ("UTF-8 locale l4 test failed");
+ res = 1;
+ }
+
+ buf[l1] = 'Z';
+ l5 = strxfrm (buf, "ab", l1);
+ if (buf[l1] != 'Z')
+ {
+ puts ("UTF-8 locale l5 test failed");
+ res = 1;
+ }
- if (l1 != l2 || l1 != l3)
+ if (l1 != l2 || l1 != l3 || l1 != l4 || l1 != l5)
{
- puts ("UTF-8 locale test failed");
+ puts ("UTF-8 locale retval test failed");
res = 1;
}
}
diff --git a/sysdeps/gnu/siglist.c b/sysdeps/gnu/siglist.c
index b8d37968e0..3005f867f0 100644
--- a/sysdeps/gnu/siglist.c
+++ b/sysdeps/gnu/siglist.c
@@ -40,13 +40,15 @@ const char *const __new_sys_sigabbrev[NSIG] =
strong_alias (__new_sys_sigabbrev, _sys_sigabbrev_internal)
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
-declare_symbol_alias (__old_sys_siglist, _sys_siglist_internal, object,
+declare_symbol_alias (__old_sys_siglist, __new_sys_siglist, object,
OLD_SIGLIST_SIZE * __WORDSIZE / 8)
-declare_symbol_alias (__old_sys_sigabbrev, _sys_sigabbrev_internal, object,
+declare_symbol_alias (__old_sys_sigabbrev, __new_sys_sigabbrev, object,
+ OLD_SIGLIST_SIZE * __WORDSIZE / 8)
+
+declare_symbol_alias (_old_sys_siglist, __new_sys_siglist, object,
OLD_SIGLIST_SIZE * __WORDSIZE / 8)
-strong_alias (__old_sys_siglist, _old_sys_siglist)
compat_symbol (libc, __old_sys_siglist, _sys_siglist, GLIBC_2_0);
compat_symbol (libc, _old_sys_siglist, sys_siglist, GLIBC_2_0);
compat_symbol (libc, __old_sys_sigabbrev, sys_sigabbrev, GLIBC_2_0);
diff --git a/sysdeps/i386/fpu/bits/mathinline.h b/sysdeps/i386/fpu/bits/mathinline.h
index e04ce95099..8e7a867ec6 100644
--- a/sysdeps/i386/fpu/bits/mathinline.h
+++ b/sysdeps/i386/fpu/bits/mathinline.h
@@ -1,5 +1,5 @@
/* Inline math functions for i387.
- Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004
+ Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by John C. Bowman <bowman@math.ualberta.ca>, 1995.
@@ -529,24 +529,36 @@ __inline_mathcodeNP (tanh, __x, \
__inline_mathcodeNP (floor, __x, \
register long double __value; \
- __volatile unsigned short int __cw; \
- __volatile unsigned short int __cwtmp; \
- __asm __volatile ("fnstcw %0" : "=m" (__cw)); \
- __cwtmp = (__cw & 0xf3ff) | 0x0400; /* rounding down */ \
- __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); \
- __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); \
- __asm __volatile ("fldcw %0" : : "m" (__cw)); \
+ register int __ignore; \
+ unsigned short int __cw; \
+ unsigned short int __cwtmp; \
+ __asm __volatile ("fnstcw %4\n\t" \
+ "movzwl %4, %1\n\t" \
+ "andl $0xf3ff, %1\n\t" \
+ "orl $0x0400, %1\n\t" /* rounding down */ \
+ "movw %1, %3\n\t" \
+ "fldcw %3\n\t" \
+ "frndint\n\t" \
+ "fldcw %4" \
+ : "=t" (__value), "=&q" (__ignore) \
+ : "0" (__x), "m" (__cwtmp), "m" (__cw)); \
return __value)
__inline_mathcodeNP (ceil, __x, \
register long double __value; \
- __volatile unsigned short int __cw; \
- __volatile unsigned short int __cwtmp; \
- __asm __volatile ("fnstcw %0" : "=m" (__cw)); \
- __cwtmp = (__cw & 0xf3ff) | 0x0800; /* rounding up */ \
- __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); \
- __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); \
- __asm __volatile ("fldcw %0" : : "m" (__cw)); \
+ register int __ignore; \
+ unsigned short int __cw; \
+ unsigned short int __cwtmp; \
+ __asm __volatile ("fnstcw %4\n\t" \
+ "movzwl %4, %1\n\t" \
+ "andl $0xf3ff, %1\n\t" \
+ "orl $0x0800, %1\n\t" /* rounding up */ \
+ "movw %1, %3\n\t" \
+ "fldcw %3\n\t" \
+ "frndint\n\t" \
+ "fldcw %4" \
+ : "=t" (__value), "=&q" (__ignore) \
+ : "0" (__x), "m" (__cwtmp), "m" (__cw)); \
return __value)
#ifdef __FAST_MATH__
diff --git a/sysdeps/unix/sysv/linux/i386/sysconf.c b/sysdeps/unix/sysv/linux/i386/sysconf.c
index c9d7f77a00..2ffbd5227b 100644
--- a/sysdeps/unix/sysv/linux/i386/sysconf.c
+++ b/sysdeps/unix/sysv/linux/i386/sysconf.c
@@ -140,6 +140,7 @@ intel_02_known_compare (const void *p1, const void *p2)
static long int
+__attribute__ ((noinline))
intel_check_word (int name, unsigned int value, bool *has_level_2,
bool *no_level_2_or_3)
{
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysconf.c b/sysdeps/unix/sysv/linux/x86_64/sysconf.c
index 80c982aa3b..5a898b7857 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysconf.c
+++ b/sysdeps/unix/sysv/linux/x86_64/sysconf.c
@@ -101,6 +101,7 @@ intel_02_known_compare (const void *p1, const void *p2)
static long int
+__attribute__ ((noinline))
intel_check_word (int name, unsigned int value, bool *has_level_2,
bool *no_level_2_or_3)
{