[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commits] r5843 - in /fsf/trunk/libc: ./ elf/ libio/ localedata/ nptl/ nss/nss_files/ po/ stdlib/ sysdeps/i386/i686/ sysdeps/ieee754/l...
- To: commits@xxxxxxxxxx
- Subject: [commits] r5843 - in /fsf/trunk/libc: ./ elf/ libio/ localedata/ nptl/ nss/nss_files/ po/ stdlib/ sysdeps/i386/i686/ sysdeps/ieee754/l...
- From: eglibc@xxxxxxxxxx
- Date: Thu, 10 Apr 2008 07:02:41 -0000
Author: eglibc
Date: Thu Apr 10 00:02:39 2008
New Revision: 5843
Log:
Import glibc-mainline for 2008-04-10
Added:
fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/w_sqrt.S
fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/w_sqrtf.S
fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S
fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S
fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/w_sqrt.S
fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/w_sqrtf.S
fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S
fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S
fsf/trunk/libc/sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S
fsf/trunk/libc/sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S
fsf/trunk/libc/sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S
Removed:
fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/w_sqrt.c
fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/w_sqrtf.c
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/NEWS
fsf/trunk/libc/elf/Makefile
fsf/trunk/libc/libio/iofwrite.c
fsf/trunk/libc/libio/iofwrite_u.c
fsf/trunk/libc/localedata/ChangeLog
fsf/trunk/libc/localedata/tst-langinfo.sh
fsf/trunk/libc/nptl/ChangeLog
fsf/trunk/libc/nptl/pthread_create.c
fsf/trunk/libc/nss/nss_files/files-XXX.c
fsf/trunk/libc/po/libc.pot
fsf/trunk/libc/stdlib/tst-makecontext.c
fsf/trunk/libc/sysdeps/i386/i686/memcpy.S
fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/vfork.S
fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/makecontext.c
fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/vfork.S
fsf/trunk/libc/sysdeps/unix/sysv/syscalls.list
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Thu Apr 10 00:02:39 2008
@@ -1,3 +1,70 @@
+2008-03-03 Steven Munroe <sjmunroe@xxxxxxxxxx>
+
+ * sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S: New file.
+ * sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S: New file.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S: New file.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S: New file.
+ * sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S: New file.
+ * sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S: New file.
+ * sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S: New file.
+
+2008-02-22 Alan Modra <amodra@xxxxxxxxxxxxxx>
+
+ * elf/Makefile (tests): Substitute tests-vis-yes here.
+ (tests-vis-yes): Delete.
+ (modules-name, modules-vis-yes): Similarly.
+
+2008-02-12 Pete Eberlein <eberlein@xxxxxxxxxx>
+
+ [BZ #4407]
+ * sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r):
+ Preserve sign in signgamp when x is zero.
+
+2007-10-26 Steven Munroe <sjmunroe@xxxxxxxxxx>
+
+ * sysdeps/powerpc/powerpc32/power4/fpu/w_sqrt.S: New File.
+ * sysdeps/powerpc/powerpc32/power4/fpu/w_sqrt.c: Removed.
+ * sysdeps/powerpc/powerpc32/power4/fpu/w_sqrtf.S: New File.
+ * sysdeps/powerpc/powerpc32/power4/fpu/w_sqrtf.c: Removed.
+ * sysdeps/powerpc/powerpc32/power5/fpu/w_sqrt.S: New File.
+ * sysdeps/powerpc/powerpc32/power5/fpu/w_sqrtf.S: New File.
+
+2008-04-09 Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ [BZ #4314]
+ * sysdeps/i386/i686/memcpy.S: Optimize copying of aligned buffers.
+
+ [BZ #5209]
+ * sysdeps/unix/sysv/syscalls.list: The times syscall doesn't return
+ an error value.
+
+ * stdlib/tst-makecontext.c: Change parameter to cf to negative
+ value to check for correct sign extension.
+
+ [BZ #5436]
+ * sysdeps/unix/sysv/linux/x86_64/makecontext.c (__makecontext):
+ Copy 64-bit parameter values even though this is not required in
+ the standard.
+
+ * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Record return
+ PC save.
+
+2008-02-14 Daniel Jacobowitz <dan@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Record return
+ PC save.
+
+2008-04-09 Jakub Jelinek <jakub@xxxxxxxxxx>
+
+ * nss_files/files-XXX.c (_nss_files_getXXent_r): Restore saved errno.
+
+2008-04-09 Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ [BZ #5998]
+ * libio/iofwrite.c (_IO_fwrite): Return correct count if flushing
+ in line-buffered stream failed.
+ * libio/iofwrite_u.c (fwrite_unlocked): Likewise.
+
2008-04-08 Ulrich Drepper <drepper@xxxxxxxxxx>
[BZ #6024]
Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Thu Apr 10 00:02:39 2008
@@ -1,5 +1,5 @@
-GNU C Library NEWS -- history of user-visible changes. 2007-12-12
-Copyright (C) 1992-2006, 2007 Free Software Foundation, Inc.
+GNU C Library NEWS -- history of user-visible changes. 2008-4-9
+Copyright (C) 1992-2007, 2008 Free Software Foundation, Inc.
See the end for copying conditions.
Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/>
@@ -10,6 +10,33 @@
* New locales: bo_CN, bo_IN.
* New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8.
+
+* Sorting rules for some Indian languages (Devanagari and Gujarati).
+ Implemented by Pravin Satpute.
+
+* IPV6 addresses in /etc/resolv.conf can now have a scope ID
+
+* nscd caches now all timeouts for DNS entries
+ Implemented by Ulrich Drepper.
+
+* nscd is more efficient and wakes up less often.
+ Implemented by Ulrich Drepper.
+
+* More checking functions: asprintf, dprintf, obstack_printf, vasprintf,
+ vdprintf, and obstack_vprintf.
+ Implemented by Jakub Jelinek.
+
+* Faster memset for x86-64.
+ Implemented by Harsha Jagasia and H.J. Lu.
+
+* Faster memcpy on x86.
+ Implemented by Ulrich Drepper.
+
+* ARG_MAX is not anymore constant on Linux. Use sysconf(_SC_ARG_MAX).
+ Implemented by Ulrich Drepper.
+
+* Faster sqrt and sqrtf implemention for some PPC variants.
+ Implemented by Stephen Munroe.
Version 2.7
Modified: fsf/trunk/libc/elf/Makefile
==============================================================================
--- fsf/trunk/libc/elf/Makefile (original)
+++ fsf/trunk/libc/elf/Makefile Thu Apr 10 00:02:39 2008
@@ -159,7 +159,7 @@
endif
ifeq (yes,$(build-shared))
tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
- constload1 order $(tests-vis-$(have-protected)) noload filter unload \
+ constload1 order vismain noload filter unload \
reldep reldep2 reldep3 reldep4 nodelete nodelete2 \
nodlopen nodlopen2 neededtest neededtest2 \
neededtest3 neededtest4 unload2 lateglobal initfirst global \
@@ -175,7 +175,6 @@
tst-stackguard1 tst-addr1 tst-thrlock
# reldep9
test-srcs = tst-pathopt
-tests-vis-yes = vismain
tests-execstack-yes = tst-execstack tst-execstack-needed tst-execstack-prog
endif
ifeq (yesyes,$(have-fpie)$(build-shared))
@@ -184,7 +183,7 @@
tests: $(objpfx)tst-leaks1-mem
modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
testobj1_1 failobj constload2 constload3 unloadmod \
- dep1 dep2 dep3 dep4 $(modules-vis-$(have-protected)) \
+ dep1 dep2 dep3 dep4 vismod1 vismod2 vismod3 \
nodelmod1 nodelmod2 nodelmod3 nodelmod4 \
nodel2mod1 nodel2mod2 nodel2mod3 \
nodlopenmod nodlopenmod2 filtmod1 filtmod2 \
@@ -220,7 +219,6 @@
ifeq (yesyes,$(have-fpie)$(build-shared))
modules-names += tst-piemod1
endif
-modules-vis-yes = vismod1 vismod2 vismod3
modules-execstack-yes = tst-execstack-mod
extra-test-objs += $(addsuffix .os,$(strip $(modules-names)))
# We need this variable to be sure the test modules get the right CPPFLAGS.
@@ -855,9 +853,9 @@
$(objpfx)check-localplt.out: $(objpfx)check-localplt \
$(common-objpfx)libc.so \
- $(common-objpfx)math/libm.so $(thread-dso) \
- $(common-objpfx)rt/librt.so \
- $(common-objpfx)dlfcn/libdl.so \
+ $(common-objpfx)math/libm.so $(thread-dso) \
+ $(common-objpfx)rt/librt.so \
+ $(common-objpfx)dlfcn/libdl.so \
$(check-data)
$(dir $<)$(notdir $<) $(filter-out $< $(check-data),$^) | \
LC_ALL=C sort | \
Modified: fsf/trunk/libc/libio/iofwrite.c
==============================================================================
--- fsf/trunk/libc/libio/iofwrite.c (original)
+++ fsf/trunk/libc/libio/iofwrite.c Thu Apr 10 00:02:39 2008
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1996, 1997, 1998, 1999, 2000, 2002, 2003
+/* Copyright (C) 1993, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2008
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -44,7 +44,11 @@
if (_IO_vtable_offset (fp) != 0 || _IO_fwide (fp, -1) == -1)
written = _IO_sputn (fp, (const char *) buf, request);
_IO_release_lock (fp);
- if (written == request)
+ /* We have written all of the input in case the return value indicates
+ this or EOF is returned. The latter is a special case where we
+ simply did not manage to flush the buffer. But the data is in the
+ buffer and therefore written as far as fwrite is concerned. */
+ if (written == request || written == EOF)
return count;
else
return written / size;
Modified: fsf/trunk/libc/libio/iofwrite_u.c
==============================================================================
--- fsf/trunk/libc/libio/iofwrite_u.c (original)
+++ fsf/trunk/libc/libio/iofwrite_u.c Thu Apr 10 00:02:39 2008
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1996-2000, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1996-2000, 2002, 2008 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
@@ -45,7 +45,11 @@
if (_IO_fwide (fp, -1) == -1)
{
written = _IO_sputn (fp, (const char *) buf, request);
- if (written == request)
+ /* We have written all of the input in case the return value indicates
+ this or EOF is returned. The latter is a special case where we
+ simply did not manage to flush the buffer. But the data is in the
+ buffer and therefore written as far as fwrite is concerned. */
+ if (written == request || written == EOF)
return count;
}
Modified: fsf/trunk/libc/localedata/ChangeLog
==============================================================================
--- fsf/trunk/libc/localedata/ChangeLog (original)
+++ fsf/trunk/libc/localedata/ChangeLog Thu Apr 10 00:02:39 2008
@@ -1,3 +1,7 @@
+2008-04-09 Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ * tst-langinfo.sh: Adjust for latest fr_FR locale changes.
+
2008-04-07 Ulrich Drepper <drepper@xxxxxxxxxx>
[BZ #6021]
Modified: fsf/trunk/libc/localedata/tst-langinfo.sh
==============================================================================
--- fsf/trunk/libc/localedata/tst-langinfo.sh (original)
+++ fsf/trunk/libc/localedata/tst-langinfo.sh Thu Apr 10 00:02:39 2008
@@ -1,6 +1,6 @@
#! /bin/sh
# Test nl_langinfo.
-# Copyright (C) 2000, 2001, 2003, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2003, 2007, 2008 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
@@ -245,13 +245,13 @@
de_DE.UTF-8 THOUSEP .
de_DE.UTF-8 YESEXPR ^[jJyY].*
de_DE.UTF-8 NOEXPR ^[nN].*
-fr_FR.ISO-8859-1 ABDAY_1 dim
-fr_FR.ISO-8859-1 ABDAY_2 lun
-fr_FR.ISO-8859-1 ABDAY_3 mar
-fr_FR.ISO-8859-1 ABDAY_4 mer
-fr_FR.ISO-8859-1 ABDAY_5 jeu
-fr_FR.ISO-8859-1 ABDAY_6 ven
-fr_FR.ISO-8859-1 ABDAY_7 sam
+fr_FR.ISO-8859-1 ABDAY_1 dim.
+fr_FR.ISO-8859-1 ABDAY_2 lun.
+fr_FR.ISO-8859-1 ABDAY_3 mar.
+fr_FR.ISO-8859-1 ABDAY_4 mer.
+fr_FR.ISO-8859-1 ABDAY_5 jeu.
+fr_FR.ISO-8859-1 ABDAY_6 ven.
+fr_FR.ISO-8859-1 ABDAY_7 sam.
fr_FR.ISO-8859-1 DAY_1 dimanche
fr_FR.ISO-8859-1 DAY_2 lundi
fr_FR.ISO-8859-1 DAY_3 mardi
@@ -259,18 +259,18 @@
fr_FR.ISO-8859-1 DAY_5 jeudi
fr_FR.ISO-8859-1 DAY_6 vendredi
fr_FR.ISO-8859-1 DAY_7 samedi
-fr_FR.ISO-8859-1 ABMON_1 jan
-fr_FR.ISO-8859-1 ABMON_2 fév
-fr_FR.ISO-8859-1 ABMON_3 mar
-fr_FR.ISO-8859-1 ABMON_4 avr
+fr_FR.ISO-8859-1 ABMON_1 janv.
+fr_FR.ISO-8859-1 ABMON_2 févr.
+fr_FR.ISO-8859-1 ABMON_3 mars
+fr_FR.ISO-8859-1 ABMON_4 avril
fr_FR.ISO-8859-1 ABMON_5 mai
-fr_FR.ISO-8859-1 ABMON_6 jun
-fr_FR.ISO-8859-1 ABMON_7 jui
-fr_FR.ISO-8859-1 ABMON_8 aoû
-fr_FR.ISO-8859-1 ABMON_9 sep
-fr_FR.ISO-8859-1 ABMON_10 oct
-fr_FR.ISO-8859-1 ABMON_11 nov
-fr_FR.ISO-8859-1 ABMON_12 déc
+fr_FR.ISO-8859-1 ABMON_6 juin
+fr_FR.ISO-8859-1 ABMON_7 juil.
+fr_FR.ISO-8859-1 ABMON_8 août
+fr_FR.ISO-8859-1 ABMON_9 sept.
+fr_FR.ISO-8859-1 ABMON_10 oct.
+fr_FR.ISO-8859-1 ABMON_11 nov.
+fr_FR.ISO-8859-1 ABMON_12 déc.
fr_FR.ISO-8859-1 MON_1 janvier
fr_FR.ISO-8859-1 MON_2 février
fr_FR.ISO-8859-1 MON_3 mars
@@ -284,7 +284,7 @@
fr_FR.ISO-8859-1 MON_11 novembre
fr_FR.ISO-8859-1 MON_12 décembre
fr_FR.ISO-8859-1 D_T_FMT "%a %d %b %Y %T %Z"
-fr_FR.ISO-8859-1 D_FMT "%d.%m.%Y"
+fr_FR.ISO-8859-1 D_FMT "%d/%m/%Y"
fr_FR.ISO-8859-1 T_FMT "%T"
fr_FR.ISO-8859-1 RADIXCHAR ,
fr_FR.ISO-8859-1 THOUSEP " "
Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Thu Apr 10 00:02:39 2008
@@ -1,3 +1,8 @@
+2007-11-26 Daniel Jacobowitz <dan@xxxxxxxxxxxxxxxx>
+
+ * pthread_create.c: Require pthread_mutex_trylock and
+ pthread_key_delete for libgcc.
+
2008-04-08 Jakub Jelinek <jakub@xxxxxxxxxx>
[BZ #6020]
Modified: fsf/trunk/libc/nptl/pthread_create.c
==============================================================================
--- fsf/trunk/libc/nptl/pthread_create.c (original)
+++ fsf/trunk/libc/nptl/pthread_create.c Thu Apr 10 00:02:39 2008
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
@@ -598,11 +598,13 @@
/* If pthread_create is present, libgcc_eh.a and libsupc++.a expects some other POSIX thread
functions to be present as well. */
PTHREAD_STATIC_FN_REQUIRE (pthread_mutex_lock)
+PTHREAD_STATIC_FN_REQUIRE (pthread_mutex_trylock)
PTHREAD_STATIC_FN_REQUIRE (pthread_mutex_unlock)
PTHREAD_STATIC_FN_REQUIRE (pthread_once)
PTHREAD_STATIC_FN_REQUIRE (pthread_cancel)
PTHREAD_STATIC_FN_REQUIRE (pthread_key_create)
+PTHREAD_STATIC_FN_REQUIRE (pthread_key_delete)
PTHREAD_STATIC_FN_REQUIRE (pthread_setspecific)
PTHREAD_STATIC_FN_REQUIRE (pthread_getspecific)
Modified: fsf/trunk/libc/nss/nss_files/files-XXX.c
==============================================================================
--- fsf/trunk/libc/nss/nss_files/files-XXX.c (original)
+++ fsf/trunk/libc/nss/nss_files/files-XXX.c Thu Apr 10 00:02:39 2008
@@ -259,7 +259,7 @@
status = internal_setent (0);
- __set_errno (errno);
+ __set_errno (save_errno);
if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0)
{
Modified: fsf/trunk/libc/po/libc.pot
==============================================================================
--- fsf/trunk/libc/po/libc.pot (original)
+++ fsf/trunk/libc/po/libc.pot Thu Apr 10 00:02:39 2008
@@ -5,8 +5,8 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.6.90\n"
-"POT-Creation-Date: 2007-10-15 21:18-0700\n"
+"Project-Id-Version: libc 2.7.90\n"
+"POT-Creation-Date: 2008-04-09 08:07-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@xxxxxx>\n"
@@ -129,7 +129,7 @@
"[OUTPUT-FILE [INPUT-FILE]...]"
msgstr ""
-#: catgets/gencat.c:232 debug/pcprofiledump.c:204 iconv/iconv_prog.c:411
+#: catgets/gencat.c:232 debug/pcprofiledump.c:204 iconv/iconv_prog.c:408
#: iconv/iconvconfig.c:380 locale/programs/localedef.c:371
#: login/programs/pt_chown.c:88 malloc/memusagestat.c:526 nss/makedb.c:231
msgid ""
@@ -138,7 +138,7 @@
msgstr ""
#: catgets/gencat.c:246 debug/xtrace.sh:64 elf/ldconfig.c:296
-#: elf/ldd.bash.in:39 elf/sprof.c:355 iconv/iconv_prog.c:426
+#: elf/ldd.bash.in:39 elf/sprof.c:355 iconv/iconv_prog.c:423
#: iconv/iconvconfig.c:395 locale/programs/locale.c:275
#: locale/programs/localedef.c:387 login/programs/pt_chown.c:59
#: malloc/memusage.sh:71 nscd/nscd.c:406 nss/getent.c:83 nss/makedb.c:245
@@ -151,7 +151,7 @@
msgstr ""
#: catgets/gencat.c:251 debug/xtrace.sh:68 elf/ldconfig.c:301 elf/sprof.c:361
-#: iconv/iconv_prog.c:431 iconv/iconvconfig.c:400 locale/programs/locale.c:280
+#: iconv/iconv_prog.c:428 iconv/iconvconfig.c:400 locale/programs/locale.c:280
#: locale/programs/localedef.c:392 malloc/memusage.sh:75 nscd/nscd.c:411
#: nss/getent.c:88 nss/makedb.c:250 posix/getconf.c:1017
#, c-format
@@ -162,7 +162,7 @@
msgid "*standard input*"
msgstr ""
-#: catgets/gencat.c:288 iconv/iconv_charmap.c:158 iconv/iconv_prog.c:298
+#: catgets/gencat.c:288 iconv/iconv_charmap.c:170 iconv/iconv_prog.c:294
#: nss/makedb.c:170
#, c-format
msgid "cannot open input file `%s'"
@@ -351,7 +351,7 @@
msgid ", OS ABI: %s %d.%d.%d"
msgstr ""
-#: elf/cache.c:134 elf/ldconfig.c:1270
+#: elf/cache.c:134 elf/ldconfig.c:1269
#, c-format
msgid "Can't open cache file %s\n"
msgstr ""
@@ -395,7 +395,7 @@
msgid "cannot create scope list"
msgstr ""
-#: elf/dl-close.c:724
+#: elf/dl-close.c:725
msgid "shared object not open"
msgstr ""
@@ -626,29 +626,29 @@
msgid "invalid target namespace in dlmopen()"
msgstr ""
-#: elf/dl-reloc.c:54
+#: elf/dl-reloc.c:56
msgid "cannot allocate memory in static TLS block"
msgstr ""
-#: elf/dl-reloc.c:196
+#: elf/dl-reloc.c:198
msgid "cannot make segment writable for relocation"
msgstr ""
-#: elf/dl-reloc.c:277
+#: elf/dl-reloc.c:281
#, c-format
msgid "%s: no PLTREL found in object %s\n"
msgstr ""
-#: elf/dl-reloc.c:288
+#: elf/dl-reloc.c:292
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr ""
-#: elf/dl-reloc.c:304
+#: elf/dl-reloc.c:308
msgid "cannot restore segment prot after reloc"
msgstr ""
-#: elf/dl-reloc.c:329
+#: elf/dl-reloc.c:333
msgid "cannot apply additional memory protection after relocation"
msgstr ""
@@ -656,11 +656,11 @@
msgid "RTLD_NEXT used in code not dynamically loaded"
msgstr ""
-#: elf/dl-sysdep.c:469 elf/dl-sysdep.c:481
+#: elf/dl-sysdep.c:475 elf/dl-sysdep.c:487
msgid "cannot create capability list"
msgstr ""
-#: elf/dl-tls.c:825
+#: elf/dl-tls.c:848
msgid "cannot create TLS data structures"
msgstr ""
@@ -873,17 +873,17 @@
msgid "%s:%u: cannot read directory %s"
msgstr ""
-#: elf/ldconfig.c:1223
+#: elf/ldconfig.c:1222
#, c-format
msgid "relative path `%s' used to build cache"
msgstr ""
-#: elf/ldconfig.c:1249
+#: elf/ldconfig.c:1248
#, c-format
msgid "Can't chdir to /"
msgstr ""
-#: elf/ldconfig.c:1291
+#: elf/ldconfig.c:1290
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr ""
@@ -1120,28 +1120,33 @@
msgid "cannot allocate symbol data"
msgstr ""
-#: iconv/iconv_charmap.c:176 iconv/iconv_prog.c:316
+#: iconv/iconv_charmap.c:142 iconv/iconv_prog.c:446
+#, c-format
+msgid "cannot open output file"
+msgstr ""
+
+#: iconv/iconv_charmap.c:188 iconv/iconv_prog.c:312
#, c-format
msgid "error while closing input `%s'"
msgstr ""
-#: iconv/iconv_charmap.c:450
+#: iconv/iconv_charmap.c:462
#, c-format
msgid "illegal input sequence at position %Zd"
msgstr ""
-#: iconv/iconv_charmap.c:469 iconv/iconv_prog.c:526
+#: iconv/iconv_charmap.c:481 iconv/iconv_prog.c:537
#, c-format
msgid "incomplete character or shift sequence at end of buffer"
msgstr ""
-#: iconv/iconv_charmap.c:514 iconv/iconv_charmap.c:550 iconv/iconv_prog.c:569
-#: iconv/iconv_prog.c:605
+#: iconv/iconv_charmap.c:526 iconv/iconv_charmap.c:562 iconv/iconv_prog.c:580
+#: iconv/iconv_prog.c:616
#, c-format
msgid "error while reading the input"
msgstr ""
-#: iconv/iconv_charmap.c:532 iconv/iconv_prog.c:587
+#: iconv/iconv_charmap.c:544 iconv/iconv_prog.c:598
#, c-format
msgid "unable to allocate buffer for input"
msgstr ""
@@ -1194,62 +1199,57 @@
msgid "[FILE...]"
msgstr ""
-#: iconv/iconv_prog.c:200
-#, c-format
-msgid "cannot open output file"
-msgstr ""
-
-#: iconv/iconv_prog.c:242
+#: iconv/iconv_prog.c:234
#, c-format
msgid "conversions from `%s' and to `%s' are not supported"
msgstr ""
-#: iconv/iconv_prog.c:247
+#: iconv/iconv_prog.c:239
#, c-format
msgid "conversion from `%s' is not supported"
msgstr ""
-#: iconv/iconv_prog.c:254
+#: iconv/iconv_prog.c:246
#, c-format
msgid "conversion to `%s' is not supported"
msgstr ""
-#: iconv/iconv_prog.c:258
+#: iconv/iconv_prog.c:250
#, c-format
msgid "conversion from `%s' to `%s' is not supported"
msgstr ""
-#: iconv/iconv_prog.c:268
+#: iconv/iconv_prog.c:260
#, c-format
msgid "failed to start conversion processing"
msgstr ""
-#: iconv/iconv_prog.c:362
+#: iconv/iconv_prog.c:358
#, c-format
msgid "error while closing output file"
msgstr ""
-#: iconv/iconv_prog.c:471 iconv/iconv_prog.c:497
+#: iconv/iconv_prog.c:456
#, c-format
msgid "conversion stopped due to problem in writing the output"
msgstr ""
-#: iconv/iconv_prog.c:522
+#: iconv/iconv_prog.c:533
#, c-format
msgid "illegal input sequence at position %ld"
msgstr ""
-#: iconv/iconv_prog.c:530
+#: iconv/iconv_prog.c:541
#, c-format
msgid "internal error (illegal descriptor)"
msgstr ""
-#: iconv/iconv_prog.c:533
+#: iconv/iconv_prog.c:544
#, c-format
msgid "unknown iconv() error %d"
msgstr ""
-#: iconv/iconv_prog.c:779
+#: iconv/iconv_prog.c:790
msgid ""
"The following list contain all the coded character sets known. This does\n"
"not necessarily mean that all combinations of these names can be used for\n"
@@ -1483,7 +1483,7 @@
msgstr ""
#: locale/programs/charmap.c:610 locale/programs/ld-address.c:600
-#: locale/programs/ld-collate.c:2767 locale/programs/ld-collate.c:3924
+#: locale/programs/ld-collate.c:2767 locale/programs/ld-collate.c:3928
#: locale/programs/ld-ctype.c:2232 locale/programs/ld-ctype.c:2984
#: locale/programs/ld-identification.c:452
#: locale/programs/ld-measurement.c:238 locale/programs/ld-messages.c:332
@@ -1510,7 +1510,7 @@
msgstr ""
#: locale/programs/charmap.c:850 locale/programs/ld-address.c:616
-#: locale/programs/ld-collate.c:2764 locale/programs/ld-collate.c:4115
+#: locale/programs/ld-collate.c:2764 locale/programs/ld-collate.c:4121
#: locale/programs/ld-ctype.c:2229 locale/programs/ld-ctype.c:3001
#: locale/programs/ld-identification.c:468
#: locale/programs/ld-measurement.c:254 locale/programs/ld-messages.c:348
@@ -1534,7 +1534,7 @@
"same: %d vs %d"
msgstr ""
-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:3047
+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:3045
#: locale/programs/repertoire.c:419
msgid "invalid names for character range"
msgstr ""
@@ -1643,7 +1643,7 @@
msgid "%s: unknown character in field `%s'"
msgstr ""
-#: locale/programs/ld-address.c:597 locale/programs/ld-collate.c:3922
+#: locale/programs/ld-address.c:597 locale/programs/ld-collate.c:3926
#: locale/programs/ld-ctype.c:2981 locale/programs/ld-identification.c:449
#: locale/programs/ld-measurement.c:235 locale/programs/ld-messages.c:330
#: locale/programs/ld-monetary.c:941 locale/programs/ld-name.c:305
@@ -1656,7 +1656,7 @@
#: locale/programs/ld-address.c:607 locale/programs/ld-collate.c:542
#: locale/programs/ld-collate.c:594 locale/programs/ld-collate.c:890
#: locale/programs/ld-collate.c:903 locale/programs/ld-collate.c:2733
-#: locale/programs/ld-collate.c:2754 locale/programs/ld-collate.c:4105
+#: locale/programs/ld-collate.c:2754 locale/programs/ld-collate.c:4111
#: locale/programs/ld-ctype.c:1960 locale/programs/ld-ctype.c:2219
#: locale/programs/ld-ctype.c:2806 locale/programs/ld-ctype.c:2992
#: locale/programs/ld-identification.c:459
@@ -1763,7 +1763,7 @@
msgid "`%s' and `%.*s' are not valid names for symbolic range"
msgstr ""
-#: locale/programs/ld-collate.c:1369 locale/programs/ld-collate.c:3858
+#: locale/programs/ld-collate.c:1369 locale/programs/ld-collate.c:3862
#, c-format
msgid "%s: order for `%.*s' already defined at %s:%Zu"
msgstr ""
@@ -1804,7 +1804,7 @@
msgid "too many errors; giving up"
msgstr ""
-#: locale/programs/ld-collate.c:2659 locale/programs/ld-collate.c:4044
+#: locale/programs/ld-collate.c:2659 locale/programs/ld-collate.c:4050
#, c-format
msgid "%s: nested conditionals not supported"
msgstr ""
@@ -1824,112 +1824,112 @@
msgid "%s: duplicate declaration of section `%s'"
msgstr ""
-#: locale/programs/ld-collate.c:3027
+#: locale/programs/ld-collate.c:3025
#, c-format
msgid "%s: unknown character in collating symbol name"
msgstr ""
-#: locale/programs/ld-collate.c:3159
+#: locale/programs/ld-collate.c:3155
#, c-format
msgid "%s: unknown character in equivalent definition name"
msgstr ""
-#: locale/programs/ld-collate.c:3172
+#: locale/programs/ld-collate.c:3168
#, c-format
msgid "%s: unknown character in equivalent definition value"
msgstr ""
-#: locale/programs/ld-collate.c:3182
+#: locale/programs/ld-collate.c:3178
#, c-format
msgid "%s: unknown symbol `%s' in equivalent definition"
msgstr ""
-#: locale/programs/ld-collate.c:3191
+#: locale/programs/ld-collate.c:3187
msgid "error while adding equivalent collating symbol"
msgstr ""
-#: locale/programs/ld-collate.c:3221
+#: locale/programs/ld-collate.c:3225
#, c-format
msgid "duplicate definition of script `%s'"
msgstr ""
-#: locale/programs/ld-collate.c:3269
+#: locale/programs/ld-collate.c:3273
#, c-format
msgid "%s: unknown section name `%.*s'"
msgstr ""
-#: locale/programs/ld-collate.c:3298
+#: locale/programs/ld-collate.c:3302
#, c-format
msgid "%s: multiple order definitions for section `%s'"
msgstr ""
-#: locale/programs/ld-collate.c:3326
+#: locale/programs/ld-collate.c:3330
#, c-format
msgid "%s: invalid number of sorting rules"
msgstr ""
-#: locale/programs/ld-collate.c:3353
+#: locale/programs/ld-collate.c:3357
#, c-format
msgid "%s: multiple order definitions for unnamed section"
msgstr ""
-#: locale/programs/ld-collate.c:3407 locale/programs/ld-collate.c:3537
+#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3541
+#: locale/programs/ld-collate.c:3904
+#, c-format
+msgid "%s: missing `order_end' keyword"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3474
+#, c-format
+msgid "%s: order for collating symbol %.*s not yet defined"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3492
+#, c-format
+msgid "%s: order for collating element %.*s not yet defined"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3503
+#, c-format
+msgid "%s: cannot reorder after %.*s: symbol not known"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3555 locale/programs/ld-collate.c:3916
+#, c-format
+msgid "%s: missing `reorder-end' keyword"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3589 locale/programs/ld-collate.c:3787
+#, c-format
+msgid "%s: section `%.*s' not known"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3654
+#, c-format
+msgid "%s: bad symbol <%.*s>"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3850
+#, c-format
+msgid "%s: cannot have `%s' as end of ellipsis range"
+msgstr ""
+
#: locale/programs/ld-collate.c:3900
#, c-format
-msgid "%s: missing `order_end' keyword"
-msgstr ""
-
-#: locale/programs/ld-collate.c:3470
-#, c-format
-msgid "%s: order for collating symbol %.*s not yet defined"
-msgstr ""
-
-#: locale/programs/ld-collate.c:3488
-#, c-format
-msgid "%s: order for collating element %.*s not yet defined"
-msgstr ""
-
-#: locale/programs/ld-collate.c:3499
-#, c-format
-msgid "%s: cannot reorder after %.*s: symbol not known"
-msgstr ""
-
-#: locale/programs/ld-collate.c:3551 locale/programs/ld-collate.c:3912
-#, c-format
-msgid "%s: missing `reorder-end' keyword"
-msgstr ""
-
-#: locale/programs/ld-collate.c:3585 locale/programs/ld-collate.c:3783
-#, c-format
-msgid "%s: section `%.*s' not known"
-msgstr ""
-
-#: locale/programs/ld-collate.c:3650
-#, c-format
-msgid "%s: bad symbol <%.*s>"
-msgstr ""
-
-#: locale/programs/ld-collate.c:3846
-#, c-format
-msgid "%s: cannot have `%s' as end of ellipsis range"
-msgstr ""
-
-#: locale/programs/ld-collate.c:3896
-#, c-format
msgid "%s: empty category description not allowed"
msgstr ""
-#: locale/programs/ld-collate.c:3915
+#: locale/programs/ld-collate.c:3919
#, c-format
msgid "%s: missing `reorder-sections-end' keyword"
msgstr ""
-#: locale/programs/ld-collate.c:4077
+#: locale/programs/ld-collate.c:4083
#, c-format
msgid "%s: '%s' without matching 'ifdef' or 'ifndef'"
msgstr ""
-#: locale/programs/ld-collate.c:4095
+#: locale/programs/ld-collate.c:4101
#, c-format
msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'"
msgstr ""
@@ -2260,7 +2260,7 @@
msgid "%s: starting date is invalid in string %Zd in `era' field"
msgstr ""
-#: locale/programs/ld-time.c:407
+#: locale/programs/ld-time.c:407 locale/programs/ld-time.c:435
#, c-format
msgid "%s: invalid stopping date in string %Zd in `era' field"
msgstr ""
@@ -2268,11 +2268,6 @@
#: locale/programs/ld-time.c:416
#, c-format
msgid "%s: garbage at end of stopping date in string %Zd in `era' field"
-msgstr ""
-
-#: locale/programs/ld-time.c:435
-#, c-format
-msgid "%s: stopping date is invalid in string %Zd in `era' field"
msgstr ""
#: locale/programs/ld-time.c:444
@@ -2686,7 +2681,7 @@
msgstr ""
#: locale/programs/locfile.c:782
-msgid "expect string argument for `copy'"
+msgid "expecting string argument for `copy'"
msgstr ""
#: locale/programs/locfile.c:786
@@ -3503,251 +3498,265 @@
msgid "yp_update: cannot get server address\n"
msgstr ""
-#: nscd/aicache.c:77 nscd/hstcache.c:468
+#: nscd/aicache.c:77 nscd/hstcache.c:473
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr ""
-#: nscd/aicache.c:79 nscd/hstcache.c:470
+#: nscd/aicache.c:79 nscd/hstcache.c:475
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr ""
-#: nscd/cache.c:146
+#: nscd/cache.c:150
#, c-format
msgid "add new entry \"%s\" of type %s for %s to cache%s"
msgstr ""
-#: nscd/cache.c:148
+#: nscd/cache.c:152
msgid " (first)"
msgstr ""
-#: nscd/cache.c:256 nscd/connections.c:810
+#: nscd/cache.c:263 nscd/connections.c:811
#, c-format
msgid "cannot stat() file `%s': %s"
msgstr ""
-#: nscd/cache.c:285
+#: nscd/cache.c:305
#, c-format
msgid "pruning %s cache; time %ld"
msgstr ""
-#: nscd/cache.c:312
+#: nscd/cache.c:334
#, c-format
msgid "considering %s entry \"%s\", timeout %<PRIu64>"
msgstr ""
-#: nscd/connections.c:521 nscd/connections.c:533 nscd/connections.c:545
-#: nscd/connections.c:564
+#: nscd/connections.c:527
#, c-format
msgid "invalid persistent database file \"%s\": %s"
msgstr ""
#: nscd/connections.c:535
+msgid "uninitialized header"
+msgstr ""
+
+#: nscd/connections.c:540
msgid "header size does not match"
msgstr ""
-#: nscd/connections.c:547
+#: nscd/connections.c:550
msgid "file size does not match"
msgstr ""
-#: nscd/connections.c:566
+#: nscd/connections.c:567
msgid "verification failed"
msgstr ""
-#: nscd/connections.c:580
+#: nscd/connections.c:581
#, c-format
msgid ""
"suggested size of table for database %s larger than the persistent "
"database's table"
msgstr ""
-#: nscd/connections.c:591 nscd/connections.c:673
+#: nscd/connections.c:592 nscd/connections.c:674
#, c-format
msgid "cannot create read-only descriptor for \"%s\"; no mmap"
msgstr ""
-#: nscd/connections.c:652
+#: nscd/connections.c:653
#, c-format
msgid ""
"database for %s corrupted or simultaneously used; remove %s manually if "
"necessary and restart"
msgstr ""
-#: nscd/connections.c:659
+#: nscd/connections.c:660
#, c-format
msgid "cannot create %s; no persistent database used"
msgstr ""
-#: nscd/connections.c:662
+#: nscd/connections.c:663
#, c-format
msgid "cannot create %s; no sharing possible"
msgstr ""
-#: nscd/connections.c:733
+#: nscd/connections.c:734
#, c-format
msgid "cannot write to database file %s: %s"
msgstr ""
-#: nscd/connections.c:772
+#: nscd/connections.c:773
#, c-format
msgid "cannot set socket to close on exec: %s; disabling paranoia mode"
msgstr ""
-#: nscd/connections.c:823
+#: nscd/connections.c:824
#, c-format
msgid "cannot open socket: %s"
msgstr ""
-#: nscd/connections.c:840
+#: nscd/connections.c:841
#, c-format
msgid "cannot change socket to nonblocking mode: %s"
msgstr ""
-#: nscd/connections.c:848
+#: nscd/connections.c:849
#, c-format
msgid "cannot set socket to close on exec: %s"
msgstr ""
-#: nscd/connections.c:859
+#: nscd/connections.c:860
#, c-format
msgid "cannot enable socket to accept connections: %s"
msgstr ""
-#: nscd/connections.c:955
+#: nscd/connections.c:960
#, c-format
msgid "provide access to FD %d, for %s"
msgstr ""
-#: nscd/connections.c:967
+#: nscd/connections.c:972
#, c-format
msgid "cannot handle old request version %d; current version is %d"
msgstr ""
-#: nscd/connections.c:1009 nscd/connections.c:1062
+#: nscd/connections.c:982
+msgid "request not handled due to missing permission"
+msgstr ""
+
+#: nscd/connections.c:1018 nscd/connections.c:1071
#, c-format
msgid "cannot write result: %s"
msgstr ""
-#: nscd/connections.c:1145
+#: nscd/connections.c:1154
#, c-format
msgid "error getting caller's id: %s"
msgstr ""
-#: nscd/connections.c:1204
+#: nscd/connections.c:1213
#, c-format
msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode"
msgstr ""
-#: nscd/connections.c:1218
+#: nscd/connections.c:1227
#, c-format
msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode"
msgstr ""
-#: nscd/connections.c:1258
+#: nscd/connections.c:1267
#, c-format
msgid "cannot change to old UID: %s; disabling paranoia mode"
msgstr ""
-#: nscd/connections.c:1268
+#: nscd/connections.c:1277
#, c-format
msgid "cannot change to old GID: %s; disabling paranoia mode"
msgstr ""
-#: nscd/connections.c:1281
+#: nscd/connections.c:1290
#, c-format
msgid "cannot change to old working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/connections.c:1310
+#: nscd/connections.c:1319
#, c-format
msgid "re-exec failed: %s; disabling paranoia mode"
msgstr ""
-#: nscd/connections.c:1319
+#: nscd/connections.c:1328
#, c-format
msgid "cannot change current working directory to \"/\": %s"
msgstr ""
-#: nscd/connections.c:1437
+#: nscd/connections.c:1471
#, c-format
msgid "short read while reading request: %s"
msgstr ""
-#: nscd/connections.c:1468
+#: nscd/connections.c:1502
#, c-format
msgid "key length in request too long: %d"
msgstr ""
-#: nscd/connections.c:1481
+#: nscd/connections.c:1515
#, c-format
msgid "short read while reading request key: %s"
msgstr ""
-#: nscd/connections.c:1490
+#: nscd/connections.c:1524
#, c-format
msgid "handle_request: request received (Version = %d) from PID %ld"
msgstr ""
-#: nscd/connections.c:1495
+#: nscd/connections.c:1529
#, c-format
msgid "handle_request: request received (Version = %d)"
msgstr ""
-#: nscd/connections.c:1856
-#, c-format
-msgid "could only start %d threads; terminating"
-msgstr ""
-
-#: nscd/connections.c:1904 nscd/connections.c:1905 nscd/connections.c:1922
-#: nscd/connections.c:1931 nscd/connections.c:1949 nscd/connections.c:1960
-#: nscd/connections.c:1971
+#: nscd/connections.c:1866
+msgid "could not initialize conditional variable"
+msgstr ""
+
+#: nscd/connections.c:1874
+msgid "could not start clean-up thread; terminating"
+msgstr ""
+
+#: nscd/connections.c:1888
+msgid "could not start any worker thread; terminating"
+msgstr ""
+
+#: nscd/connections.c:1939 nscd/connections.c:1940 nscd/connections.c:1957
+#: nscd/connections.c:1966 nscd/connections.c:1984 nscd/connections.c:1995
+#: nscd/connections.c:2006
#, c-format
msgid "Failed to run nscd as user '%s'"
msgstr ""
-#: nscd/connections.c:1923
+#: nscd/connections.c:1958
#, c-format
msgid "initial getgrouplist failed"
msgstr ""
-#: nscd/connections.c:1932
+#: nscd/connections.c:1967
#, c-format
msgid "getgrouplist failed"
msgstr ""
-#: nscd/connections.c:1950
+#: nscd/connections.c:1985
#, c-format
msgid "setgroups failed"
msgstr ""
-#: nscd/grpcache.c:402 nscd/hstcache.c:418 nscd/initgrcache.c:412
-#: nscd/pwdcache.c:397 nscd/servicescache.c:343
+#: nscd/grpcache.c:404 nscd/hstcache.c:422 nscd/initgrcache.c:414
+#: nscd/pwdcache.c:399 nscd/servicescache.c:345
#, c-format
msgid "short write in %s: %s"
msgstr ""
-#: nscd/grpcache.c:445 nscd/initgrcache.c:78
+#: nscd/grpcache.c:447 nscd/initgrcache.c:78
#, c-format
msgid "Haven't found \"%s\" in group cache!"
msgstr ""
-#: nscd/grpcache.c:447 nscd/initgrcache.c:80
+#: nscd/grpcache.c:449 nscd/initgrcache.c:80
#, c-format
msgid "Reloading \"%s\" in group cache!"
msgstr ""
-#: nscd/grpcache.c:524
+#: nscd/grpcache.c:526
#, c-format
msgid "Invalid numeric gid \"%s\"!"
msgstr ""
-#: nscd/mem.c:383
+#: nscd/mem.c:422
#, c-format
msgid "freed %zu bytes in %s cache"
msgstr ""
-#: nscd/mem.c:512
+#: nscd/mem.c:557
#, c-format
msgid "no more memory for database '%s'"
msgstr ""
@@ -3773,7 +3782,7 @@
msgstr ""
#: nscd/nscd.c:103
-msgid "Print current configuration statistic"
+msgid "Print current configuration statistics"
msgstr ""
#: nscd/nscd.c:104
@@ -3860,37 +3869,37 @@
msgid "Parse error: %s"
msgstr ""
-#: nscd/nscd_conf.c:193
+#: nscd/nscd_conf.c:194
#, c-format
msgid "Must specify user name for server-user option"
msgstr ""
-#: nscd/nscd_conf.c:200
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr ""
-#: nscd/nscd_conf.c:244
+#: nscd/nscd_conf.c:245
#, c-format
msgid "invalid value for 'reload-count': %u"
msgstr ""
-#: nscd/nscd_conf.c:259
+#: nscd/nscd_conf.c:260
#, c-format
msgid "Must specify value for restart-interval option"
msgstr ""
-#: nscd/nscd_conf.c:273
+#: nscd/nscd_conf.c:274
#, c-format
msgid "Unknown option: %s %s %s"
msgstr ""
-#: nscd/nscd_conf.c:286
+#: nscd/nscd_conf.c:287
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/nscd_conf.c:306
+#: nscd/nscd_conf.c:307
#, c-format
msgid "maximum file size for %s database too small"
msgstr ""
@@ -3989,17 +3998,17 @@
"%15s check /etc/%s for changes\n"
msgstr ""
-#: nscd/pwdcache.c:440
+#: nscd/pwdcache.c:442
#, c-format
msgid "Haven't found \"%s\" in password cache!"
msgstr ""
-#: nscd/pwdcache.c:442
+#: nscd/pwdcache.c:444
#, c-format
msgid "Reloading \"%s\" in password cache!"
msgstr ""
-#: nscd/pwdcache.c:520
+#: nscd/pwdcache.c:522
#, c-format
msgid "Invalid numeric uid \"%s\"!"
msgstr ""
@@ -4075,7 +4084,11 @@
msgid "Error getting sid from context"
msgstr ""
-#: nscd/selinux.c:399
+#: nscd/selinux.c:374
+msgid "compile-time support for database policy missing"
+msgstr ""
+
+#: nscd/selinux.c:407
#, c-format
msgid ""
"\n"
@@ -4091,12 +4104,12 @@
"%15u CAV misses\n"
msgstr ""
-#: nscd/servicescache.c:390
+#: nscd/servicescache.c:392
#, c-format
msgid "Haven't found \"%s\" in services cache!"
msgstr ""
-#: nscd/servicescache.c:392
+#: nscd/servicescache.c:394
#, c-format
msgid "Reloading \"%s\" in services cache!"
msgstr ""
@@ -4220,61 +4233,56 @@
msgid "Unrecognized variable `%s'"
msgstr ""
-#: posix/getopt.c:571 posix/getopt.c:587
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr ""
-
-#: posix/getopt.c:620 posix/getopt.c:624
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr ""
-
-#: posix/getopt.c:633 posix/getopt.c:638
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr ""
-
-#: posix/getopt.c:681 posix/getopt.c:700 posix/getopt.c:1016
-#: posix/getopt.c:1035
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr ""
-
-#: posix/getopt.c:738 posix/getopt.c:741
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr ""
-
-#: posix/getopt.c:749 posix/getopt.c:752
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr ""
-
-#: posix/getopt.c:804 posix/getopt.c:807
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr ""
-
-#: posix/getopt.c:813 posix/getopt.c:816
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr ""
-
-#: posix/getopt.c:868 posix/getopt.c:884 posix/getopt.c:1088
-#: posix/getopt.c:1106
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr ""
-
-#: posix/getopt.c:937 posix/getopt.c:953
-#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr ""
-
-#: posix/getopt.c:977 posix/getopt.c:995
-#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
+#: posix/getopt.c:570 posix/getopt.c:586
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr ""
+
+#: posix/getopt.c:619 posix/getopt.c:623
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: posix/getopt.c:632 posix/getopt.c:637
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: posix/getopt.c:680 posix/getopt.c:699 posix/getopt.c:1002
+#: posix/getopt.c:1021
+#, c-format
+msgid "%s: option '%s' requires an argument\n"
+msgstr ""
+
+#: posix/getopt.c:737 posix/getopt.c:740
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr ""
+
+#: posix/getopt.c:748 posix/getopt.c:751
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr ""
+
+#: posix/getopt.c:800 posix/getopt.c:803
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr ""
+
+#: posix/getopt.c:853 posix/getopt.c:870 posix/getopt.c:1073
+#: posix/getopt.c:1091
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr ""
+
+#: posix/getopt.c:923 posix/getopt.c:939
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr ""
+
+#: posix/getopt.c:963 posix/getopt.c:981
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
msgstr ""
#: posix/regcomp.c:135
@@ -4429,150 +4437,143 @@
msgid "Unknown signal %d"
msgstr ""
-#: sunrpc/auth_unix.c:114
-msgid "authunix_create: out of memory\n"
+#: sunrpc/auth_unix.c:114 sunrpc/clnt_tcp.c:131 sunrpc/clnt_udp.c:140
+#: sunrpc/clnt_unix.c:128 sunrpc/svc_tcp.c:179 sunrpc/svc_tcp.c:218
+#: sunrpc/svc_udp.c:153 sunrpc/svc_unix.c:176 sunrpc/svc_unix.c:215
+#: sunrpc/xdr.c:566 sunrpc/xdr.c:718 sunrpc/xdr_array.c:106
+#: sunrpc/xdr_rec.c:156 sunrpc/xdr_ref.c:85
+msgid "out of memory\n"
msgstr ""
#: sunrpc/auth_unix.c:350
msgid "auth_unix.c: Fatal marshalling problem"
msgstr ""
-#: sunrpc/clnt_perr.c:118 sunrpc/clnt_perr.c:139
-#, c-format
-msgid "; low version = %lu, high version = %lu"
-msgstr ""
-
-#: sunrpc/clnt_perr.c:125
-msgid "; why = "
-msgstr ""
-
-#: sunrpc/clnt_perr.c:132
-#, c-format
-msgid "(unknown authentication error - %d)"
-msgstr ""
-
-#: sunrpc/clnt_perr.c:172
+#: sunrpc/clnt_perr.c:105 sunrpc/clnt_perr.c:121
+#, c-format
+msgid "%s: %s; low version = %lu, high version = %lu"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:112
+#, c-format
+msgid "%s: %s; why = %s\n"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:114
+#, c-format
+msgid "%s: %s; why = (unknown authentication error - %d)\n"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:159
msgid "RPC: Success"
msgstr ""
-#: sunrpc/clnt_perr.c:175
+#: sunrpc/clnt_perr.c:162
msgid "RPC: Can't encode arguments"
msgstr ""
-#: sunrpc/clnt_perr.c:179
+#: sunrpc/clnt_perr.c:166
msgid "RPC: Can't decode result"
msgstr ""
-#: sunrpc/clnt_perr.c:183
+#: sunrpc/clnt_perr.c:170
msgid "RPC: Unable to send"
msgstr ""
-#: sunrpc/clnt_perr.c:187
+#: sunrpc/clnt_perr.c:174
msgid "RPC: Unable to receive"
msgstr ""
-#: sunrpc/clnt_perr.c:191
+#: sunrpc/clnt_perr.c:178
msgid "RPC: Timed out"
msgstr ""
-#: sunrpc/clnt_perr.c:195
+#: sunrpc/clnt_perr.c:182
msgid "RPC: Incompatible versions of RPC"
msgstr ""
-#: sunrpc/clnt_perr.c:199
+#: sunrpc/clnt_perr.c:186
msgid "RPC: Authentication error"
msgstr ""
-#: sunrpc/clnt_perr.c:203
+#: sunrpc/clnt_perr.c:190
msgid "RPC: Program unavailable"
msgstr ""
-#: sunrpc/clnt_perr.c:207
+#: sunrpc/clnt_perr.c:194
msgid "RPC: Program/version mismatch"
msgstr ""
-#: sunrpc/clnt_perr.c:211
+#: sunrpc/clnt_perr.c:198
msgid "RPC: Procedure unavailable"
msgstr ""
-#: sunrpc/clnt_perr.c:215
+#: sunrpc/clnt_perr.c:202
msgid "RPC: Server can't decode arguments"
msgstr ""
-#: sunrpc/clnt_perr.c:219
+#: sunrpc/clnt_perr.c:206
msgid "RPC: Remote system error"
msgstr ""
-#: sunrpc/clnt_perr.c:223
+#: sunrpc/clnt_perr.c:210
msgid "RPC: Unknown host"
msgstr ""
-#: sunrpc/clnt_perr.c:227
+#: sunrpc/clnt_perr.c:214
msgid "RPC: Unknown protocol"
msgstr ""
-#: sunrpc/clnt_perr.c:231
+#: sunrpc/clnt_perr.c:218
msgid "RPC: Port mapper failure"
msgstr ""
-#: sunrpc/clnt_perr.c:235
+#: sunrpc/clnt_perr.c:222
msgid "RPC: Program not registered"
msgstr ""
-#: sunrpc/clnt_perr.c:239
+#: sunrpc/clnt_perr.c:226
msgid "RPC: Failed (unspecified error)"
msgstr ""
-#: sunrpc/clnt_perr.c:280
+#: sunrpc/clnt_perr.c:267
msgid "RPC: (unknown error code)"
msgstr ""
-#: sunrpc/clnt_perr.c:342
+#: sunrpc/clnt_perr.c:330
msgid "Authentication OK"
msgstr ""
+#: sunrpc/clnt_perr.c:333
+msgid "Invalid client credential"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:337
+msgid "Server rejected credential"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:341
+msgid "Invalid client verifier"
+msgstr ""
+
#: sunrpc/clnt_perr.c:345
-msgid "Invalid client credential"
+msgid "Server rejected verifier"
msgstr ""
#: sunrpc/clnt_perr.c:349
-msgid "Server rejected credential"
+msgid "Client credential too weak"
msgstr ""
#: sunrpc/clnt_perr.c:353
-msgid "Invalid client verifier"
+msgid "Invalid server verifier"
msgstr ""
#: sunrpc/clnt_perr.c:357
-msgid "Server rejected verifier"
-msgstr ""
-
-#: sunrpc/clnt_perr.c:361
-msgid "Client credential too weak"
-msgstr ""
-
-#: sunrpc/clnt_perr.c:365
-msgid "Invalid server verifier"
-msgstr ""
-
-#: sunrpc/clnt_perr.c:369
msgid "Failed (unspecified error)"
msgstr ""
#: sunrpc/clnt_raw.c:117
msgid "clnt_raw.c: fatal header serialization error"
-msgstr ""
-
-#: sunrpc/clnt_tcp.c:131
-msgid "clnttcp_create: out of memory\n"
-msgstr ""
-
-#: sunrpc/clnt_udp.c:139
-msgid "clntudp_create: out of memory\n"
-msgstr ""
-
-#: sunrpc/clnt_unix.c:128
-msgid "clntunix_create: out of memory\n"
msgstr ""
#: sunrpc/pm_getmaps.c:83
@@ -4859,14 +4860,6 @@
msgid "svc_tcp.c - cannot getsockname or listen"
msgstr ""
-#: sunrpc/svc_tcp.c:179
-msgid "svctcp_create: out of memory\n"
-msgstr ""
-
-#: sunrpc/svc_tcp.c:218
-msgid "svc_tcp: makefd_xprt: out of memory\n"
-msgstr ""
-
#: sunrpc/svc_udp.c:128
msgid "svcudp_create: socket creation problem"
msgstr ""
@@ -4875,39 +4868,35 @@
msgid "svcudp_create - cannot getsockname"
msgstr ""
-#: sunrpc/svc_udp.c:152
-msgid "svcudp_create: out of memory\n"
-msgstr ""
-
-#: sunrpc/svc_udp.c:174
+#: sunrpc/svc_udp.c:175
msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n"
msgstr ""
-#: sunrpc/svc_udp.c:474
+#: sunrpc/svc_udp.c:475
msgid "enablecache: cache already enabled"
msgstr ""
-#: sunrpc/svc_udp.c:480
+#: sunrpc/svc_udp.c:481
msgid "enablecache: could not allocate cache"
msgstr ""
-#: sunrpc/svc_udp.c:489
+#: sunrpc/svc_udp.c:490
msgid "enablecache: could not allocate cache data"
msgstr ""
-#: sunrpc/svc_udp.c:497
+#: sunrpc/svc_udp.c:498
msgid "enablecache: could not allocate cache fifo"
msgstr ""
-#: sunrpc/svc_udp.c:532
+#: sunrpc/svc_udp.c:533
msgid "cache_set: victim not found"
msgstr ""
-#: sunrpc/svc_udp.c:543
+#: sunrpc/svc_udp.c:544
msgid "cache_set: victim alloc failed"
msgstr ""
-#: sunrpc/svc_udp.c:550
+#: sunrpc/svc_udp.c:551
msgid "cache_set: could not allocate new rpc_buffer"
msgstr ""
@@ -4917,34 +4906,6 @@
#: sunrpc/svc_unix.c:166
msgid "svc_unix.c - cannot getsockname or listen"
-msgstr ""
-
-#: sunrpc/svc_unix.c:176
-msgid "svcunix_create: out of memory\n"
-msgstr ""
-
-#: sunrpc/svc_unix.c:215
-msgid "svc_unix: makefd_xprt: out of memory\n"
-msgstr ""
-
-#: sunrpc/xdr.c:566
-msgid "xdr_bytes: out of memory\n"
-msgstr ""
-
-#: sunrpc/xdr.c:718
-msgid "xdr_string: out of memory\n"
-msgstr ""
-
-#: sunrpc/xdr_array.c:106
-msgid "xdr_array: out of memory\n"
-msgstr ""
-
-#: sunrpc/xdr_rec.c:156
-msgid "xdrrec_create: out of memory\n"
-msgstr ""
-
-#: sunrpc/xdr_ref.c:86
-msgid "xdr_reference: out of memory\n"
msgstr ""
#: sysdeps/generic/siglist.h:29 sysdeps/unix/siglist.c:27
Modified: fsf/trunk/libc/stdlib/tst-makecontext.c
==============================================================================
--- fsf/trunk/libc/stdlib/tst-makecontext.c (original)
+++ fsf/trunk/libc/stdlib/tst-makecontext.c Thu Apr 10 00:02:39 2008
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2006, 2007, 2008 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
@@ -25,10 +25,12 @@
char st1[8192];
__thread int thr;
+int somevar = -76;
+
void
cf (int i)
{
- if (i != 78 || thr != 94)
+ if (i != -78 || thr != 94)
{
printf ("i %d thr %d\n", i, thr);
exit (1);
@@ -54,7 +56,7 @@
ucp.uc_link = NULL;
ucp.uc_stack.ss_sp = st1;
ucp.uc_stack.ss_size = sizeof st1;
- makecontext (&ucp, (void (*) (void)) cf, 1, 78);
+ makecontext (&ucp, (void (*) (void)) cf, 1, somevar - 2);
if (setcontext (&ucp) != 0)
{
puts ("setcontext failed");
Modified: fsf/trunk/libc/sysdeps/i386/i686/memcpy.S
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/i686/memcpy.S (original)
+++ fsf/trunk/libc/sysdeps/i386/i686/memcpy.S Thu Apr 10 00:02:39 2008
@@ -1,7 +1,7 @@
/* Copy memory block and return pointer to beginning of destination block
For Intel 80x86, x>=6.
This file is part of the GNU C Library.
- Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2003, 2004, 2008 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1999.
The GNU C Library is free software; you can redistribute it and/or
@@ -41,15 +41,56 @@
ENTRY (BP_SYM (memcpy))
ENTER
- movl LEN(%esp), %ecx
movl %edi, %eax
movl DEST(%esp), %edi
movl %esi, %edx
movl SRC(%esp), %esi
- CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%esi, SRC(%esp), %ecx)
+ movl %edi, %ecx
+ xorl %esi, %ecx
+ andl $3, %ecx
+ movl LEN(%esp), %ecx
cld
+ jne .Lunaligned
+
+ cmpl $3, %ecx
+ jbe .Lunaligned
+
+ testl $3, %esi
+ je 1f
+ movsb
+ decl %ecx
+ testl $3, %esi
+ je 1f
+ movsb
+ decl %ecx
+ testl $3, %esi
+ je 1f
+ movsb
+ decl %ecx
+1: pushl %eax
+ movl %ecx, %eax
+ shrl $2, %ecx
+ rep
+ movsl
+ movl %eax, %ecx
+ andl $3, %ecx
+ rep
+ movsb
+ popl %eax
+
+.Lend: movl %eax, %edi
+ movl %edx, %esi
+ movl DEST(%esp), %eax
+ RETURN_BOUNDED_POINTER (DEST(%esp))
+
+ LEAVE
+ RET_PTR
+
+ /* When we come here the pointers do not have the same
+ alignment or the length is too short. No need to optimize for
+ aligned memory accesses. */
+.Lunaligned:
shrl $1, %ecx
jnc 1f
movsb
@@ -58,12 +99,6 @@
movsw
2: rep
movsl
- movl %eax, %edi
- movl %edx, %esi
- movl DEST(%esp), %eax
- RETURN_BOUNDED_POINTER (DEST(%esp))
-
- LEAVE
- RET_PTR
+ jmp .Lend
END (BP_SYM (memcpy))
libc_hidden_builtin_def (memcpy)
Modified: fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_lgammal_r.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_lgammal_r.c Thu Apr 10 00:02:39 2008
@@ -771,6 +771,12 @@
if (! __finitel (x))
return x * x;
+
+ if (x == 0.0L)
+ {
+ if (__signbitl (x))
+ *signgamp = -1;
+ }
if (x < 0.0L)
{
Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/w_sqrt.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/w_sqrt.S (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/w_sqrt.S Thu Apr 10 00:02:39 2008
@@ -1,0 +1,119 @@
+/* sqrt function. PowerPC32 version.
+ Copyright (C) 2007 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., 1 Franklin Street, Fifth Floor, Boston MA
+ 02110-1301 USA. */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+/* double [fp1] sqrt (double x [fp1])
+ Power4 (ISA V2.0) and above implement sqrt in hardware (not optional).
+ The fsqrt instruction generates the correct value for all inputs and
+ sets the appropriate floating point exceptions. Extented checking is
+ only needed to set errno (via __kernel_standard) if the input value
+ is negative.
+
+ The fsqrt will set FPCC and FU (Floating Point Unordered or NaN
+ to indicated that the input value was negative or NaN. Use Move to
+ Condition Register from FPSCR to copy the FPCC field to cr1. The
+ branch on summary overflow transfers control to w_sqrt to process
+ any error conditions. Otherwise we can return the result directly.
+
+ This part of the function is a leaf routine, so no need to stack a
+ frame or execute prologue/epilogue code. This means it is safe to
+ transfer directly to w_sqrt as long as the input value (f1) is
+ preserved. Putting the the sqrt result into f2 (double parameter 2)
+ allows passing both the input value and sqrt result into the extended
+ wrapper so there is no need to recompute.
+
+ This tactic avoids the overhead of stacking a frame for the normal
+ (non-error) case. Until gcc supports prologue shrink-wrapping
+ this is the best we can do. */
+
+ .section ".text"
+ .machine power4
+EALIGN (__sqrt, 5, 0)
+ fsqrt fp2,fp1
+ mcrfs cr1,4
+ bso- cr1,.Lw_sqrt
+ fmr fp1,fp2
+ blr
+ .align 4
+.Lw_sqrt:
+ mflr r0
+ stwu r1,-16(r1)
+ cfi_adjust_cfa_offset(16)
+ fmr fp12,fp2
+ stw r0,20(r1)
+ stw r30,8(r1)
+ cfi_offset(lr,20)
+ cfi_offset(r30,8)
+#ifdef SHARED
+# ifdef HAVE_ASM_PPC_REL16
+ bcl 20,31,.LCF1
+.LCF1:
+ mflr r30
+ addis r30,r30,_GLOBAL_OFFSET_TABLE_-.LCF1@ha
+ addi r30,r30,_GLOBAL_OFFSET_TABLE_-.LCF1@l
+ lwz r9,_LIB_VERSION@got(30)
+ lwz r0,0(r9)
+# else
+ bl _GLOBAL_OFFSET_TABLE_@local-4
+ mflr r30
+ lwz r9,_LIB_VERSION@got(30)
+ lwz r0,0(r9)
+# endif
+#else
+ lis r9,_LIB_VERSION@ha
+ lwz r0,_LIB_VERSION@l(r9)
+#endif
+/* if (_LIB_VERSION == _IEEE_) return z; */
+ cmpwi cr7,r0,-1
+ beq- cr7,.L4
+/* if (x != x) return z; !isnan*/
+ fcmpu cr7,fp1,fp1
+ bne- cr7,.L4
+/* if (x < 0.0)
+ return __kernel_standard (x, x, 26) */
+ fmr fp2,fp1
+ fabs fp0,fp1
+ li r3,26
+ fcmpu cr7,fp1,fp0
+ bne- cr7,.L11
+.L4:
+ lwz r0,20(r1)
+ fmr fp1,fp12
+ lwz r30,8(r1)
+ addi r1,r1,16
+ mtlr r0
+ blr
+.L11:
+ bl __kernel_standard@plt
+ fmr fp12,fp1
+ b .L4
+ END (__sqrt)
+
+weak_alias (__sqrt, sqrt)
+
+#ifdef NO_LONG_DOUBLE
+weak_alias (__sqrt, sqrtl)
+strong_alias (__sqrt, __sqrtl)
+#endif
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __sqrt, sqrtl, GLIBC_2_0)
+#endif
+
Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/w_sqrtf.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/w_sqrtf.S (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/w_sqrtf.S Thu Apr 10 00:02:39 2008
@@ -1,0 +1,111 @@
+/* sqrtf function. PowerPC32 version.
+ Copyright (C) 2007 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., 1 Franklin Street, Fifth Floor, Boston MA
+ 02110-1301 USA. */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+/* float [fp1] sqrts (float x [fp1])
+ Power4 (ISA V2.0) and above implement sqrt in hardware (not optional).
+ The fsqrts instruction generates the correct value for all inputs and
+ sets the appropriate floating point exceptions. Extented checking is
+ only needed to set errno (via __kernel_standard) if the input value
+ is negative.
+
+ The fsqrts will set FPCC and FU (Floating Point Unordered or NaN
+ to indicated that the input value was negative or NaN. Use Move to
+ Condition Register from FPSCR to copy the FPCC field to cr1. The
+ branch on summary overflow transfers control to w_sqrt to process
+ any error conditions. Otherwise we can return the result directly.
+
+ This part of the function is a leaf routine, so no need to stack a
+ frame or execute prologue/epilogue code. This means it is safe to
+ transfer directly to w_sqrt as long as the input value (f1) is
+ preserved. Putting the the sqrt result into f2 (float parameter 2)
+ allows passing both the input value and sqrt result into the extended
+ wrapper so there is no need to recompute.
+
+ This tactic avoids the overhead of stacking a frame for the normal
+ (non-error) case. Until gcc supports prologue shrink-wrapping
+ this is the best we can do. */
+
+ .section ".text"
+ .machine power4
+EALIGN (__sqrtf, 5, 0)
+ fsqrts fp2,fp1
+ mcrfs cr1,4
+ bso- cr1,.Lw_sqrtf
+ fmr fp1,fp2
+ blr
+ .align 4
+.Lw_sqrtf:
+ mflr r0
+ stwu r1,-16(r1)
+ cfi_adjust_cfa_offset(16)
+ fmr fp12,fp2
+ stw r0,20(r1)
+ stw r30,8(r1)
+ cfi_offset(lr,20)
+ cfi_offset(r30,8)
+#ifdef SHARED
+# ifdef HAVE_ASM_PPC_REL16
+ bcl 20,31,.LCF1
+.LCF1:
+ mflr r30
+ addis r30,r30,_GLOBAL_OFFSET_TABLE_-.LCF1@ha
+ addi r30,r30,_GLOBAL_OFFSET_TABLE_-.LCF1@l
+ lwz r9,_LIB_VERSION@got(30)
+ lwz r0,0(r9)
+# else
+ bl _GLOBAL_OFFSET_TABLE_@local-4
+ mflr r30
+ lwz r9,_LIB_VERSION@got(30)
+ lwz r0,0(r9)
+# endif
+#else
+ lis r9,_LIB_VERSION@ha
+ lwz r0,_LIB_VERSION@l(r9)
+#endif
+/* if (_LIB_VERSION == _IEEE_) return z; */
+ cmpwi cr7,r0,-1
+ beq- cr7,.L4
+/* if (x != x, 0) return z; !isnan */
+ fcmpu cr7,fp1,fp1
+ bne- cr7,.L4
+/* if (x < 0.0)
+ return __kernel_standard (x, x, 126) */
+ fmr fp2,fp1
+ fabs fp0,fp1
+ li r3,126
+ fcmpu cr7,1,0
+ bne- cr7,.L11
+.L4:
+ lwz r0,20(r1)
+ fmr fp1,fp12
+ lwz r30,8(r1)
+ addi r1,r1,16
+ mtlr r0
+ blr
+.L11:
+ bl __kernel_standard@plt
+ fmr fp12,fp1
+ b .L4
+ END (__sqrtf)
+
+weak_alias (__sqrtf, sqrtf)
+
Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S Thu Apr 10 00:02:39 2008
@@ -1,0 +1,62 @@
+/* isnan(). PowerPC32 version.
+ Copyright (C) 2008 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 <sysdep.h>
+#include <math_ldbl_opt.h>
+
+/* int __isnan(x) */
+ .machine power5
+EALIGN (__isnan, 4, 0)
+ stwu r1,-32(r1)
+ cfi_adjust_cfa_offset (32)
+ ori r1,r1,0
+ stfd fp1,24(r1) /* copy FPR to GPR */
+ ori r1,r1,0
+ lwz r4,24(r1)
+ lwz r5,28(r1)
+ lis r0,0x7ff0 /* const long r0 0x7ff00000 00000000 */
+ clrlwi r4,r4,1 /* x = fabs(x) */
+ cmpw cr7,r4,r0 /* if (fabs(x) =< inf) */
+ cmpwi cr6,r5,0
+ li r3,0 /* then return 0 */
+ addi r1,r1,32
+ cfi_adjust_cfa_offset (-32)
+ bltlr+ cr7
+ bgt- cr7,L(NaN)
+ beqlr+ cr6
+L(NaN):
+ li r3,1 /* else return 1 */
+ blr
+ END (__isnan)
+
+hidden_def (__isnan)
+weak_alias (__isnan, isnan)
+
+#ifdef NO_LONG_DOUBLE
+strong_alias (__isnan, __isnanl)
+weak_alias (__isnan, isnanl)
+#endif
+
+#ifndef IS_IN_libm
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
+compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
+# endif
+#endif
+
Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S Thu Apr 10 00:02:39 2008
@@ -1,0 +1,46 @@
+/* isnan(). PowerPC32 version.
+ Copyright (C) 2008 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 <sysdep.h>
+#include <math_ldbl_opt.h>
+
+/* int __isnanf(x) */
+ .machine power5
+EALIGN (__isnanf, 4, 0)
+ stwu r1,-32(r1)
+ cfi_adjust_cfa_offset (32)
+ stfs fp1,28(r1) /* copy FPR to GPR */
+ nop
+ nop
+ lwz r4,28(r1)
+ lis r0,0x7f80 /* const long r0 0x7f800000 */
+ clrlwi r4,r4,1 /* x = fabs(x) */
+ cmpw cr7,r4,r0 /* if (fabs(x) =< inf) */
+ li r3,0 /* then return 0 */
+ addi r1,r1,32
+ cfi_adjust_cfa_offset (-32)
+ blelr+ cr7
+L(NaN):
+ li r3,1 /* else return 1 */
+ blr
+ END (__isnanf)
+
+hidden_def (__isnanf)
+weak_alias (__isnanf, isnanf)
+
Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/w_sqrt.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/w_sqrt.S (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/w_sqrt.S Thu Apr 10 00:02:39 2008
@@ -1,0 +1,117 @@
+/* sqrt function. PowerPC32 version.
+ Copyright (C) 2007 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., 1 Franklin Street, Fifth Floor, Boston MA
+ 02110-1301 USA. */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+/* double [fp1] sqrt (double x [fp1])
+ Power4 (ISA V2.0) and above implement sqrt in hardware (not optional).
+ The fsqrt instruction generates the correct value for all inputs and
+ sets the appropriate floating point exceptions. Extented checking is
+ only needed to set errno (via __kernel_standard) if the input value
+ is negative.
+
+ So compare the input value against the absolute value of itself.
+ This will compare equal unless the value is negative (EDOM) or a NAN,
+ in which case we branch to the extend wrapper. If equal we can return
+ the result directly.
+
+ This part of the function looks like a leaf routine, so no need to
+ stack a frame or execute prologue/epilogue code. It is safe to
+ branch directly to w_sqrt as long as the input value (f1) is
+ preserved. Putting the the sqrt result into f2 (float parameter 2)
+ allows passing both the input value and sqrt result into the extended
+ wrapper so there is no need to recompute.
+
+ This tactic avoids the overhead of stacking a frame for the normal
+ (non-error) case. Until gcc supports prologue shrink-wrapping
+ this is the best we can do. */
+
+ .section ".text"
+ .machine power4
+EALIGN (__sqrt, 5, 0)
+ fabs fp0,fp1
+ fsqrt fp2,fp1
+ fcmpu cr1,fp0,fp1
+ bne- cr1,.Lw_sqrt
+ fmr fp1,fp2
+ blr
+ .align 4
+.Lw_sqrt:
+ mflr r0
+ stwu r1,-16(r1)
+ cfi_adjust_cfa_offset(16)
+ fmr fp12,fp2
+ stw r0,20(r1)
+ stw r30,8(r1)
+ cfi_offset(lr,20)
+ cfi_offset(r30,8)
+#ifdef SHARED
+# ifdef HAVE_ASM_PPC_REL16
+ bcl 20,31,.LCF1
+.LCF1:
+ mflr r30
+ addis r30,r30,_GLOBAL_OFFSET_TABLE_-.LCF1@ha
+ addi r30,r30,_GLOBAL_OFFSET_TABLE_-.LCF1@l
+ lwz r9,_LIB_VERSION@got(30)
+ lwz r0,0(r9)
+# else
+ bl _GLOBAL_OFFSET_TABLE_@local-4
+ mflr r30
+ lwz r9,_LIB_VERSION@got(30)
+ lwz r0,0(r9)
+# endif
+#else
+ lis r9,_LIB_VERSION@ha
+ lwz r0,_LIB_VERSION@l(r9)
+#endif
+/* if (_LIB_VERSION == _IEEE_) return z; */
+ cmpwi cr7,r0,-1
+ beq- cr7,.L4
+/* if (x != x) return z; !isnan*/
+ fcmpu cr7,fp1,fp1
+ bne- cr7,.L4
+/* if (x < 0.0)
+ return __kernel_standard (x, x, 26) */
+ fmr fp2,fp1
+ li r3,26
+ bne- cr1,.L11
+.L4:
+ lwz r0,20(r1)
+ fmr fp1,fp12
+ lwz r30,8(r1)
+ addi r1,r1,16
+ mtlr r0
+ blr
+.L11:
+ bl __kernel_standard@plt
+ fmr fp12,fp1
+ b .L4
+ END (__sqrt)
+
+weak_alias (__sqrt, sqrt)
+
+#ifdef NO_LONG_DOUBLE
+weak_alias (__sqrt, sqrtl)
+strong_alias (__sqrt, __sqrtl)
+#endif
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __sqrt, sqrtl, GLIBC_2_0)
+#endif
+
Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/w_sqrtf.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/w_sqrtf.S (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/w_sqrtf.S Thu Apr 10 00:02:39 2008
@@ -1,0 +1,109 @@
+/* sqrtf function. PowerPC32 version.
+ Copyright (C) 2007 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., 1 Franklin Street, Fifth Floor, Boston MA
+ 02110-1301 USA. */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+/* float [fp1] sqrts (float x [fp1])
+ Power4 (ISA V2.0) and above implement sqrt in hardware (not optional).
+ The fsqrts instruction generates the correct value for all inputs and
+ sets the appropriate floating point exceptions. Extented checking is
+ only needed to set errno (via __kernel_standard) if the input value
+ is negative.
+
+ So compare the input value against the absolute value of itself.
+ This will compare equal unless the value is negative (EDOM) or a NAN,
+ in which case we branch to the extend wrapper. If equal we can return
+ the result directly.
+
+ This part of the function looks like a leaf routine, so no need to
+ stack a frame or execute prologue/epilogue code. It is safe to
+ branch directly to w_sqrt as long as the input value (f1) is
+ preserved. Putting the the sqrt result into f2 (float parameter 2)
+ allows passing both the input value and sqrt result into the extended
+ wrapper so there is no need to recompute.
+
+ This tactic avoids the overhead of stacking a frame for the normal
+ (non-error) case. Until gcc supports prologue shrink-wrapping
+ this is the best we can do. */
+
+ .section ".text"
+ .machine power4
+EALIGN (__sqrtf, 5, 0)
+ fabs fp0,fp1
+ fsqrts fp2,fp1
+ fcmpu cr1,fp0,fp1
+ bne- cr1,.Lw_sqrtf
+ fmr fp1,fp2
+ blr
+ .align 4
+.Lw_sqrtf:
+ mflr r0
+ stwu r1,-16(r1)
+ cfi_adjust_cfa_offset(16)
+ fmr fp12,fp2
+ stw r0,20(r1)
+ stw r30,8(r1)
+ cfi_offset(lr,20)
+ cfi_offset(r30,8)
+#ifdef SHARED
+# ifdef HAVE_ASM_PPC_REL16
+ bcl 20,31,.LCF1
+.LCF1:
+ mflr r30
+ addis r30,r30,_GLOBAL_OFFSET_TABLE_-.LCF1@ha
+ addi r30,r30,_GLOBAL_OFFSET_TABLE_-.LCF1@l
+ lwz r9,_LIB_VERSION@got(30)
+ lwz r0,0(r9)
+# else
+ bl _GLOBAL_OFFSET_TABLE_@local-4
+ mflr r30
+ lwz r9,_LIB_VERSION@got(30)
+ lwz r0,0(r9)
+# endif
+#else
+ lis r9,_LIB_VERSION@ha
+ lwz r0,_LIB_VERSION@l(r9)
+#endif
+/* if (_LIB_VERSION == _IEEE_) return z; */
+ cmpwi cr7,r0,-1
+ beq- cr7,.L4
+/* if (x != x, 0) return z; !isnan */
+ fcmpu cr7,fp1,fp1
+ bne- cr7,.L4
+/* if (x < 0.0)
+ return __kernel_standard (x, x, 126) */
+ fmr fp2,fp1
+ li r3,126
+ bne- cr1,.L11
+.L4:
+ lwz r0,20(r1)
+ fmr fp1,fp12
+ lwz r30,8(r1)
+ addi r1,r1,16
+ mtlr r0
+ blr
+.L11:
+ bl __kernel_standard@plt
+ fmr fp12,fp1
+ b .L4
+ END (__sqrtf)
+
+weak_alias (__sqrtf, sqrtf)
+
Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S Thu Apr 10 00:02:39 2008
@@ -1,0 +1,62 @@
+/* isnan(). PowerPC32 version.
+ Copyright (C) 2008 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 <sysdep.h>
+#include <math_ldbl_opt.h>
+
+/* int __isnan(x) */
+ .machine power6
+EALIGN (__isnan, 4, 0)
+ stwu r1,-32(r1)
+ cfi_adjust_cfa_offset (32)
+ ori r1,r1,0
+ stfd fp1,24(r1) /* copy FPR to GPR */
+ ori r1,r1,0
+ lwz r4,24(r1)
+ lwz r5,28(r1)
+ lis r0,0x7ff0 /* const long r0 0x7ff00000 00000000 */
+ clrlwi r4,r4,1 /* x = fabs(x) */
+ cmpw cr7,r4,r0 /* if (fabs(x) =< inf) */
+ cmpwi cr6,r5,0
+ li r3,0 /* then return 0 */
+ addi r1,r1,32
+ cfi_adjust_cfa_offset (-32)
+ bltlr+ cr7
+ bgt- cr7,L(NaN)
+ beqlr+ cr6
+L(NaN):
+ li r3,1 /* else return 1 */
+ blr
+ END (__isnan)
+
+hidden_def (__isnan)
+weak_alias (__isnan, isnan)
+
+#ifdef NO_LONG_DOUBLE
+strong_alias (__isnan, __isnanl)
+weak_alias (__isnan, isnanl)
+#endif
+
+#ifndef IS_IN_libm
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
+compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
+# endif
+#endif
+
Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S Thu Apr 10 00:02:39 2008
@@ -1,0 +1,46 @@
+/* isnanf(). PowerPC32 version.
+ Copyright (C) 2008 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 <sysdep.h>
+#include <math_ldbl_opt.h>
+
+/* int __isnanf(x) */
+ .machine power6
+EALIGN (__isnanf, 4, 0)
+ stwu r1,-32(r1)
+ cfi_adjust_cfa_offset (32)
+ ori r1,r1,0
+ stfs fp1,24(r1) /* copy FPR to GPR */
+ ori r1,r1,0
+ lwz r4,24(r1)
+ lis r0,0x7f80 /* const long r0 0x7f800000 */
+ clrlwi r4,r4,1 /* x = fabs(x) */
+ cmpw cr7,r4,r0 /* if (fabs(x) =< inf) */
+ li r3,0 /* then return 0 */
+ addi r1,r1,32
+ cfi_adjust_cfa_offset (-32)
+ blelr+ cr7
+L(NaN):
+ li r3,1 /* else return 1 */
+ blr
+ END (__isnan)
+
+hidden_def (__isnanf)
+weak_alias (__isnanf, isnanf)
+
Added: fsf/trunk/libc/sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S Thu Apr 10 00:02:39 2008
@@ -1,0 +1,61 @@
+/* isnan(). PowerPC64 version.
+ Copyright (C) 2008 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 <sysdep.h>
+#include <math_ldbl_opt.h>
+
+/* int __isnan(x) */
+ .machine power5
+EALIGN (__isnan, 4, 0)
+ CALL_MCOUNT 0
+ stfd fp1,-8(r1) /* copy FPR to GPR */
+ lis r0,0x7ff0
+ nop /* insure the following is in a different */
+ nop /* dispatch group */
+ ld r4,-8(r1)
+ sldi r0,r0,32 /* const long r0 0x7ff00000 00000000 */
+ clrldi r4,r4,1 /* x = fabs(x) */
+ cmpd cr7,r4,r0 /* if (fabs(x) <= inf) */
+ li r3,0 /* then return 0 */
+ blelr+ cr7
+ li r3,1 /* else return 1 */
+ blr
+ END (__isnan)
+
+hidden_def (__isnan)
+weak_alias (__isnan, isnan)
+
+/* It turns out that the 'double' version will also always work for
+ single-precision. */
+strong_alias (__isnan, __isnanf)
+hidden_def (__isnanf)
+weak_alias (__isnanf, isnanf)
+
+#ifdef NO_LONG_DOUBLE
+strong_alias (__isnan, __isnanl)
+weak_alias (__isnan, isnanl)
+#endif
+
+#ifndef IS_IN_libm
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
+compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
+# endif
+#endif
+
Added: fsf/trunk/libc/sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S Thu Apr 10 00:02:39 2008
@@ -1,0 +1,60 @@
+/* isnan(). PowerPC64 version.
+ Copyright (C) 2008 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 <sysdep.h>
+#include <math_ldbl_opt.h>
+
+/* int __isnan(x) */
+ .machine power6
+EALIGN (__isnan, 4, 0)
+ CALL_MCOUNT 0
+ stfd fp1,-8(r1) /* copy FPR to GPR */
+ ori r1,r1,0
+ ld r4,-8(r1)
+ lis r0,0x7ff0
+ sldi r0,r0,32 /* const long r0 0x7ff00000 00000000 */
+ clrldi r4,r4,1 /* x = fabs(x) */
+ cmpd cr7,r4,r0 /* if (fabs(x) <= inf) */
+ li r3,0 /* then return 0 */
+ blelr+ cr7
+ li r3,1 /* else return 1 */
+ blr
+ END (__isnan)
+
+hidden_def (__isnan)
+weak_alias (__isnan, isnan)
+
+/* It turns out that the 'double' version will also always work for
+ single-precision. */
+strong_alias (__isnan, __isnanf)
+hidden_def (__isnanf)
+weak_alias (__isnanf, isnanf)
+
+#ifdef NO_LONG_DOUBLE
+strong_alias (__isnan, __isnanl)
+weak_alias (__isnan, isnanl)
+#endif
+
+#ifndef IS_IN_libm
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
+compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
+# endif
+#endif
+
Added: fsf/trunk/libc/sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S Thu Apr 10 00:02:39 2008
@@ -1,0 +1,59 @@
+/* isnan(). PowerPC64 version.
+ Copyright (C) 2008 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 <sysdep.h>
+#include <math_ldbl_opt.h>
+
+/* int __isnan(x) */
+ .machine power6
+EALIGN (__isnan, 4, 0)
+ CALL_MCOUNT 0
+ mftgpr r4,fp1 /* copy FPR to GPR */
+ lis r0,0x7ff0
+ ori r1,r1,0
+ clrldi r4,r4,1 /* x = fabs(x) */
+ sldi r0,r0,32 /* const long r0 0x7ff00000 00000000 */
+ cmpd cr7,r4,r0 /* if (fabs(x) <= inf) */
+ li r3,0 /* then return 0 */
+ blelr+ cr7
+ li r3,1 /* else return 1 */
+ blr
+ END (__isnan)
+
+hidden_def (__isnan)
+weak_alias (__isnan, isnan)
+
+/* It turns out that the 'double' version will also always work for
+ single-precision. */
+strong_alias (__isnan, __isnanf)
+hidden_def (__isnanf)
+weak_alias (__isnanf, isnanf)
+
+#ifdef NO_LONG_DOUBLE
+strong_alias (__isnan, __isnanl)
+weak_alias (__isnan, isnanl)
+#endif
+
+#ifndef IS_IN_libm
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
+compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
+# endif
+#endif
+
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/vfork.S
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/vfork.S (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/vfork.S Thu Apr 10 00:02:39 2008
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2002, 2004, 2005, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@xxxxxxx>.
@@ -34,6 +34,7 @@
/* Pop the return PC value into ECX. */
popl %ecx
cfi_adjust_cfa_offset (-4)
+ cfi_register (%eip, %ecx)
#ifdef SAVE_PID
SAVE_PID
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/makecontext.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/makecontext.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/makecontext.c Thu Apr 10 00:02:39 2008
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@xxxxxxx>, 2002.
@@ -78,31 +78,39 @@
sp[idx_uc_link] = (unsigned long int) ucp->uc_link;
va_start (ap, argc);
- /* Handle arguments. */
+ /* Handle arguments.
+
+ The standard says the parameters must all be int values. This is
+ an historic accident and would be done differently today. For
+ x86-64 all integer values are passed as 64-bit values and
+ therefore extending the API to copy 64-bit values instead of
+ 32-bit ints makes sense. It does not break existing
+ functionality and it does not violate the standard which says
+ that passing non-int values means undefined behavior. */
for (i = 0; i < argc; ++i)
switch (i)
{
case 0:
- ucp->uc_mcontext.gregs [REG_RDI] = va_arg (ap, int);
+ ucp->uc_mcontext.gregs[REG_RDI] = va_arg (ap, long int);
break;
case 1:
- ucp->uc_mcontext.gregs [REG_RSI] = va_arg (ap, int);
+ ucp->uc_mcontext.gregs[REG_RSI] = va_arg (ap, long int);
break;
case 2:
- ucp->uc_mcontext.gregs [REG_RDX] = va_arg (ap, int);
+ ucp->uc_mcontext.gregs[REG_RDX] = va_arg (ap, long int);
break;
case 3:
- ucp->uc_mcontext.gregs [REG_RCX] = va_arg (ap, int);
+ ucp->uc_mcontext.gregs[REG_RCX] = va_arg (ap, long int);
break;
case 4:
- ucp->uc_mcontext.gregs [REG_R8] = va_arg (ap, int);
+ ucp->uc_mcontext.gregs[REG_R8] = va_arg (ap, long int);
break;
case 5:
- ucp->uc_mcontext.gregs [REG_R9] = va_arg (ap, int);
+ ucp->uc_mcontext.gregs[REG_R9] = va_arg (ap, long int);
break;
default:
/* Put value on stack. */
- sp[(i - 5)] = va_arg (ap, int);
+ sp[i - 5] = va_arg (ap, unsigned long int);
break;
}
va_end (ap);
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/vfork.S
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/vfork.S (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/vfork.S Thu Apr 10 00:02:39 2008
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2004, 2008 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,6 +31,7 @@
is preserved by the syscall and that we're allowed to destroy. */
popq %rdi
cfi_adjust_cfa_offset(-8)
+ cfi_register(%rip, %rdi)
#ifdef SAVE_PID
SAVE_PID
Modified: fsf/trunk/libc/sysdeps/unix/sysv/syscalls.list
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/syscalls.list (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/syscalls.list Thu Apr 10 00:02:39 2008
@@ -11,6 +11,6 @@
signal - signal i:ii signal
stime - stime i:p stime
time - time Ei:P time
-times - times i:p __times times
+times - times Ei:p __times times
ulimit - ulimit i:ii ulimit
utime - utime i:sP utime