From 8ee382621852ed3c7e5ff17609e69cdfc1ba5c9f Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 10 Nov 2006 20:04:37 +0000 Subject: Updated to fedora-glibc-20061110T1956 --- ChangeLog | 39 +++++++++++++++++++++++++ fedora/branch.mk | 4 +-- fedora/glibc.spec.in | 6 +++- po/sv.po | 20 ++++++++----- posix/unistd.h | 2 +- string/strxfrm_l.c | 2 +- string/tst-strxfrm2.c | 50 ++++++++++++++++++++++++++++---- sysdeps/gnu/siglist.c | 8 +++-- sysdeps/i386/fpu/bits/mathinline.h | 42 +++++++++++++++++---------- sysdeps/unix/sysv/linux/i386/sysconf.c | 1 + sysdeps/unix/sysv/linux/x86_64/sysconf.c | 1 + 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 + + [BZ #3451] + * sysdeps/i386/fpu/bits/mathinline.h (floor): Make rounding mode + change atomic. + (ceil): Likewise. + +2006-11-10 Jakub Jelinek + + * 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 + + * po/sv.po: Update from translation team. + 2006-11-09 Ulrich Drepper + * sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word): Add + noinline attribute. + +2006-11-10 Jakub Jelinek + + * 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 + + [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 . 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 2.5.90-6 +- fix strxfrm fix +- fix i?86 floor and ceil inlines (BZ#3451) + * Thu Nov 9 2006 Jakub Jelinek 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 , 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 \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" @@ -141,6 +141,7 @@ msgid "" msgstr "" "För felrapporteringsinstruktioner, se:\n" ".\n" +"Rapportera fel eller synpunkter på översättningen till .\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" -"." +".\n" +"Rapportera fel eller synpunkter på översättningen till ." #: 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" ".\n" +"Rapportera fel eller synpunkter på översättningen till .\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" ".\n" +"Rapportera fel eller synpunkter på översättningen till .\n" #: locale/programs/locale.c:91 msgid "" @@ -2881,7 +2885,8 @@ msgstr "" "motsvarande korta.\n" "\n" "För felrapporteringsinstruktioner, se:\n" -"." +".\n" +"Rapportera fel eller synpunkter på översättningen till ." #: malloc/memusage.sh:90 msgid "" @@ -4212,6 +4217,7 @@ msgid "" msgstr "" "Hämta poster från den administrativa databasen För felrapporteringsinstruktioner, se:\n" ".\n" +"Rapportera fel eller synpunkter på översättningen till .\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 , 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) { -- cgit v1.2.3