From f90fe5a888306d9d02bd9f72b94dd993ea5c31a2 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mar 28 2006 10:15:50 +0000 Subject: 2.4-5 --- diff --git a/.cvsignore b/.cvsignore index 9167382..7febcd7 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ -glibc-20060306T1239.tar.bz2 -glibc-fedora-20060306T1239.tar.bz2 +glibc-20060328T0900.tar.bz2 +glibc-fedora-20060328T0900.tar.bz2 diff --git a/glibc-fedora.patch b/glibc-fedora.patch index 87c22c7..ba4d863 100644 --- a/glibc-fedora.patch +++ b/glibc-fedora.patch @@ -1,50 +1,6 @@ ---- glibc-20060306T1239/ChangeLog 6 Mar 2006 10:59:43 -0000 1.10062 -+++ glibc-20060306T1239-fedora/ChangeLog 7 Mar 2006 13:28:11 -0000 1.8782.2.174 -@@ -1,3 +1,43 @@ -+2006-03-07 Jakub Jelinek -+ -+ * math/libm-test.inc [TEST_LDOUBLE] (ceil_test, floor_test, rint_test, -+ round_test, trunc_test): Only run some of the new tests if -+ LDBL_MANT_DIG > 100. -+ -+2006-03-03 Steven Munroe -+ Alan Modra -+ -+ [BZ #2423] -+ * math/libm-test.inc [TEST_LDOUBLE] (ceil_test, floor_test, rint_test, -+ round_test, trunc_test): Add new tests. -+ -+ * sysdeps/powerpc/fpu/fenv_libc.h (__fegetround, __fesetround): -+ Define inline implementations. -+ * sysdeps/powerpc/fpu/fegetround.c: Use __fegetround. -+ * sysdeps/powerpc/fpu/fesetround.c: Use __fesetround. -+ -+ * sysdeps/ieee754/ldbl-128ibm/math_ldbl.h -+ (EXTRACT_IBM_EXTENDED_MANTISSA, INSERT_IBM_EXTENDED_MANTISSA): -+ Removed, replaced with. -+ (ldbl_extract_mantissa, ldbl_insert_mantissa, ldbl_pack, ldbl_unpack, -+ ldbl_canonicalise, ldbl_nearbyint): Define inline utility -+ functions for IBM long double format. -+ * sysdeps/ieee754/ldbl-128ibm/e_fmodl.c (__ieee754_fmodl): Replace -+ EXTRACT_IBM_EXTENDED_MANTISSA and INSERT_IBM_EXTENDED_MANTISSA -+ with ldbl_extract_mantissa and ldbl_insert_mantissa. -+ * sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c (__ieee754_rem_pio2l): -+ Replace EXTRACT_IBM_EXTENDED_MANTISSA with ldbl_extract_mantissa. -+ (ldbl_extract_mantissa, ldbl_insert_mantissa): Defined. -+ -+ * sysdeps/ieee754/ldbl-128ibm/s_ceill.c (__ceill): Handle rounding -+ that spans doubles in IBM long double format. -+ * sysdeps/ieee754/ldbl-128ibm/s_floorl.c: Likewise. -+ * sysdeps/ieee754/ldbl-128ibm/s_rintl.c: Likewise. -+ * sysdeps/ieee754/ldbl-128ibm/s_roundl.c: Likewise. -+ * sysdeps/ieee754/ldbl-128ibm/s_truncl.c: Likewise. -+ * sysdeps/powerpc/fpu/math_ldbl.h: New file. -+ * sysdeps/powerpc/powerpc64/fpu/s_rintl.S: Removed. -+ - 2006-03-06 Roland McGrath - - * version.h (VERSION): 2.4 -@@ -18,6 +58,34 @@ +--- glibc-20060328T0900/ChangeLog 28 Mar 2006 04:31:31 -0000 1.10076 ++++ glibc-20060328T0900-fedora/ChangeLog 28 Mar 2006 09:36:21 -0000 1.8782.2.175 +@@ -206,6 +206,34 @@ _SC_CPUTIME and _SC_THREAD_CPUTIME here. * sysdeps/unix/sysv/linux/x86_64/sysconf.c (__sysconf): Likewise. @@ -79,7 +35,7 @@ 2006-03-05 Roland McGrath * malloc/malloc.c (MALLOC_ALIGNMENT): Revert to (2 * SIZE_SZ) value. -@@ -1030,6 +1098,11 @@ +@@ -1218,6 +1246,11 @@ (__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT followed by __THROW. @@ -91,7 +47,7 @@ 2006-02-02 Ulrich Drepper * sysdeps/unix/sysv/linux/futimesat.c [__NR_futimesat] -@@ -1089,6 +1162,11 @@ +@@ -1277,6 +1310,11 @@ * sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Fix a typo. * sysdeps/s390/fpu/libm-test-ulps: Remove llrint ulps. @@ -103,7 +59,7 @@ 2006-01-19 Thomas Schwinge * libio/genops.c: Include . -@@ -3515,6 +3593,10 @@ +@@ -3703,6 +3741,10 @@ * elf/order2mod2.c (init): Cast ignored value to void. @@ -114,7 +70,7 @@ 2005-12-27 Ulrich Drepper * elf/tst-tls13.c (do_test): Avoid using the library path when -@@ -3798,6 +3880,26 @@ +@@ -3986,6 +4028,26 @@ * sysdeps/unix/sysv/linux/time.c: If __NR_time is not defined, use sysdeps/unix/time.c implementation. @@ -141,7 +97,7 @@ 2005-12-19 Ulrich Drepper [BZ #1955] -@@ -6916,6 +7018,11 @@ +@@ -7104,6 +7166,11 @@ R_ARM_TLS_TPOFF32, R_ARM_TLS_GD32, R_ARM_TLS_LDM32, R_ARM_TLS_LDO32, R_ARM_TLS_IE32, R_ARM_TLS_LE32): New macros. @@ -153,7 +109,7 @@ 2005-10-03 Roland McGrath * sysdeps/powerpc/nofpu: Directory removed, saved in ports repository. -@@ -7910,6 +8017,12 @@ +@@ -8098,6 +8165,12 @@ * argp/argp-help.c (__argp_error): __asprintf -> vasprintf. (__argp_failure): Likewise. @@ -166,7 +122,7 @@ 2005-08-08 Ulrich Drepper * nscd/cache.c (cache_add): Commit hash table and header to disk. -@@ -8034,6 +8147,17 @@ +@@ -8222,6 +8295,17 @@ __syslog_chk. * misc/Versions: Export __syslog_chk and __vsyslog_chk. @@ -184,7 +140,7 @@ 2005-07-28 Thomas Schwinge [BZ #1137] -@@ -11094,6 +11218,18 @@ +@@ -11282,6 +11366,18 @@ * scripts/soversions.awk: Fix default version set handling. @@ -203,8 +159,8 @@ 2005-02-10 Roland McGrath [BZ #157] ---- glibc-20060306T1239/ChangeLog.11 10 Nov 2000 03:31:36 -0000 1.1 -+++ glibc-20060306T1239-fedora/ChangeLog.11 22 Sep 2004 21:20:47 -0000 1.1.4.1 +--- glibc-20060328T0900/ChangeLog.11 10 Nov 2000 03:31:36 -0000 1.1 ++++ glibc-20060328T0900-fedora/ChangeLog.11 22 Sep 2004 21:20:47 -0000 1.1.4.1 @@ -1352,6 +1352,11 @@ * sysdeps/unix/sysv/linux/mips/sys/tas.h: Add missing .mips0 at the end of inline assembler code. @@ -254,8 +210,8 @@ * sysdeps/arm/bits/huge_val.h (HUGE_VAL, HUGE_VALF): Add __extension__ to hexadecimal floating constant notation. * sysdeps/i386/bits/huge_val.h (HUGE_VAL, HUGE_VALF, HUGE_VALL): ---- glibc-20060306T1239/ChangeLog.12 16 Aug 2001 05:24:54 -0000 1.1 -+++ glibc-20060306T1239-fedora/ChangeLog.12 22 Sep 2004 21:20:47 -0000 1.1.4.1 +--- glibc-20060328T0900/ChangeLog.12 16 Aug 2001 05:24:54 -0000 1.1 ++++ glibc-20060328T0900-fedora/ChangeLog.12 22 Sep 2004 21:20:47 -0000 1.1.4.1 @@ -7729,6 +7729,13 @@ * Versions.def [ld]: Add GLIBC_2.2.1. @@ -282,8 +238,8 @@ 2001-01-02 Franz Sirl * sysdeps/powerpc/dl-machine.c (__process_machine_rela): Fix typo. ---- glibc-20060306T1239/ChangeLog.15 16 Feb 2005 07:34:17 -0000 1.1 -+++ glibc-20060306T1239-fedora/ChangeLog.15 3 Mar 2005 17:29:57 -0000 1.1.6.2 +--- glibc-20060328T0900/ChangeLog.15 16 Feb 2005 07:34:17 -0000 1.1 ++++ glibc-20060328T0900-fedora/ChangeLog.15 3 Mar 2005 17:29:57 -0000 1.1.6.2 @@ -477,6 +477,14 @@ 2004-11-26 Jakub Jelinek @@ -364,8 +320,8 @@ 2004-08-30 Roland McGrath * scripts/extract-abilist.awk: If `lastversion' variable defined, omit ---- glibc-20060306T1239/csu/elf-init.c 5 Nov 2005 17:41:38 -0000 1.8 -+++ glibc-20060306T1239-fedora/csu/elf-init.c 15 Nov 2005 09:54:10 -0000 1.3.2.6 +--- glibc-20060328T0900/csu/elf-init.c 5 Nov 2005 17:41:38 -0000 1.8 ++++ glibc-20060328T0900-fedora/csu/elf-init.c 15 Nov 2005 09:54:10 -0000 1.3.2.6 @@ -49,6 +49,23 @@ extern void (*__init_array_end []) (int, extern void (*__fini_array_start []) (void) attribute_hidden; extern void (*__fini_array_end []) (void) attribute_hidden; @@ -390,8 +346,8 @@ /* These function symbols are provided for the .init/.fini section entry points automagically by the linker. */ ---- glibc-20060306T1239/debug/tst-chk1.c 22 Aug 2005 15:12:34 -0000 1.14 -+++ glibc-20060306T1239-fedora/debug/tst-chk1.c 24 Aug 2005 07:23:26 -0000 1.1.2.15 +--- glibc-20060328T0900/debug/tst-chk1.c 22 Aug 2005 15:12:34 -0000 1.14 ++++ glibc-20060328T0900-fedora/debug/tst-chk1.c 24 Aug 2005 07:23:26 -0000 1.1.2.15 @@ -17,6 +17,9 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ @@ -420,8 +376,8 @@ # define O 0 #else # define O 1 ---- glibc-20060306T1239/elf/ldconfig.c 6 Mar 2006 08:40:11 -0000 1.53 -+++ glibc-20060306T1239-fedora/elf/ldconfig.c 6 Mar 2006 13:15:14 -0000 1.47.2.8 +--- glibc-20060328T0900/elf/ldconfig.c 6 Mar 2006 08:40:11 -0000 1.53 ++++ glibc-20060328T0900-fedora/elf/ldconfig.c 6 Mar 2006 13:15:14 -0000 1.47.2.8 @@ -964,17 +964,19 @@ search_dirs (void) @@ -503,8 +459,8 @@ } search_dirs (); ---- glibc-20060306T1239/elf/tst-stackguard1.c 26 Jun 2005 18:08:36 -0000 1.1 -+++ glibc-20060306T1239-fedora/elf/tst-stackguard1.c 8 Aug 2005 21:24:27 -0000 1.1.2.3 +--- glibc-20060328T0900/elf/tst-stackguard1.c 26 Jun 2005 18:08:36 -0000 1.1 ++++ glibc-20060328T0900-fedora/elf/tst-stackguard1.c 8 Aug 2005 21:24:27 -0000 1.1.2.3 @@ -160,17 +160,21 @@ do_test (void) the 16 runs, something is very wrong. */ int ndifferences = 0; @@ -529,8 +485,8 @@ { puts ("stack guard canaries are not randomized enough"); puts ("nor equal to the default canary value"); ---- glibc-20060306T1239/iconv/iconvconfig.c 1 Jan 2006 19:15:56 -0000 1.25 -+++ glibc-20060306T1239-fedora/iconv/iconvconfig.c 2 Jan 2006 10:52:50 -0000 1.19.2.6 +--- glibc-20060328T0900/iconv/iconvconfig.c 1 Jan 2006 19:15:56 -0000 1.25 ++++ glibc-20060328T0900-fedora/iconv/iconvconfig.c 2 Jan 2006 10:52:50 -0000 1.19.2.6 @@ -1011,6 +1011,34 @@ next_prime (uint32_t seed) module name offset (following last entry with step count 0) @@ -607,8 +563,8 @@ /* Open the output file. */ if (output_file == NULL) { ---- glibc-20060306T1239/include/features.h 5 Jan 2006 12:25:35 -0000 1.42 -+++ glibc-20060306T1239-fedora/include/features.h 6 Jan 2006 09:23:23 -0000 1.35.2.11 +--- glibc-20060328T0900/include/features.h 5 Jan 2006 12:25:35 -0000 1.42 ++++ glibc-20060328T0900-fedora/include/features.h 6 Jan 2006 09:23:23 -0000 1.35.2.11 @@ -275,7 +275,13 @@ #endif @@ -624,16 +580,16 @@ # if _FORTIFY_SOURCE > 1 # define __USE_FORTIFY_LEVEL 2 # else ---- glibc-20060306T1239/include/bits/stdlib-ldbl.h 1 Jan 1970 00:00:00 -0000 -+++ glibc-20060306T1239-fedora/include/bits/stdlib-ldbl.h 1 Feb 2006 09:30:43 -0000 1.1.2.1 +--- glibc-20060328T0900/include/bits/stdlib-ldbl.h 1 Jan 1970 00:00:00 -0000 ++++ glibc-20060328T0900-fedora/include/bits/stdlib-ldbl.h 1 Feb 2006 09:30:43 -0000 1.1.2.1 @@ -0,0 +1 @@ +#include ---- glibc-20060306T1239/include/bits/wchar-ldbl.h 1 Jan 1970 00:00:00 -0000 -+++ glibc-20060306T1239-fedora/include/bits/wchar-ldbl.h 1 Feb 2006 09:30:43 -0000 1.1.2.1 +--- glibc-20060328T0900/include/bits/wchar-ldbl.h 1 Jan 1970 00:00:00 -0000 ++++ glibc-20060328T0900-fedora/include/bits/wchar-ldbl.h 1 Feb 2006 09:30:43 -0000 1.1.2.1 @@ -0,0 +1 @@ +#include ---- glibc-20060306T1239/intl/locale.alias 4 Dec 2003 07:57:47 -0000 1.23 -+++ glibc-20060306T1239-fedora/intl/locale.alias 22 Sep 2004 21:20:53 -0000 1.23.2.1 +--- glibc-20060328T0900/intl/locale.alias 4 Dec 2003 07:57:47 -0000 1.23 ++++ glibc-20060328T0900-fedora/intl/locale.alias 22 Sep 2004 21:20:53 -0000 1.23.2.1 @@ -58,8 +58,6 @@ korean ko_KR.eucKR korean.euc ko_KR.eucKR ko_KR ko_KR.eucKR @@ -643,8 +599,8 @@ norwegian nb_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 ---- glibc-20060306T1239/libio/stdio.h 16 Jan 2006 20:12:21 -0000 1.86 -+++ glibc-20060306T1239-fedora/libio/stdio.h 30 Jan 2006 09:29:46 -0000 1.78.2.8 +--- glibc-20060328T0900/libio/stdio.h 16 Jan 2006 20:12:21 -0000 1.86 ++++ glibc-20060328T0900-fedora/libio/stdio.h 30 Jan 2006 09:29:46 -0000 1.78.2.8 @@ -142,10 +142,12 @@ typedef _G_fpos64_t fpos64_t; extern struct _IO_FILE *stdin; /* Standard input stream. */ extern struct _IO_FILE *stdout; /* Standard output stream. */ @@ -658,8 +614,8 @@ __BEGIN_NAMESPACE_STD /* Remove file FILENAME. */ ---- glibc-20060306T1239/libio/bits/stdio2.h 19 Mar 2005 00:14:58 -0000 1.4 -+++ glibc-20060306T1239-fedora/libio/bits/stdio2.h 27 Jun 2005 13:04:16 -0000 1.1.2.6 +--- glibc-20060328T0900/libio/bits/stdio2.h 19 Mar 2005 00:14:58 -0000 1.4 ++++ glibc-20060328T0900-fedora/libio/bits/stdio2.h 27 Jun 2005 13:04:16 -0000 1.1.2.6 @@ -61,14 +61,25 @@ extern int __vfprintf_chk (FILE *__restr extern int __vprintf_chk (int __flag, __const char *__restrict __format, _G_va_list __ap); @@ -690,8 +646,8 @@ #endif ---- glibc-20060306T1239/locale/iso-4217.def 23 Sep 2005 19:07:54 -0000 1.18 -+++ glibc-20060306T1239-fedora/locale/iso-4217.def 3 Oct 2005 20:44:15 -0000 1.15.2.3 +--- glibc-20060328T0900/locale/iso-4217.def 23 Sep 2005 19:07:54 -0000 1.18 ++++ glibc-20060328T0900-fedora/locale/iso-4217.def 3 Oct 2005 20:44:15 -0000 1.15.2.3 @@ -8,6 +8,7 @@ * * !!! The list has to be sorted !!! @@ -783,8 +739,8 @@ DEFINE_INT_CURR("PYG") /* Paraguay Guarani */ DEFINE_INT_CURR("QAR") /* Qatar Rial */ DEFINE_INT_CURR("ROL") /* Romanian Leu */ ---- glibc-20060306T1239/locale/programs/3level.h 7 Dec 2005 05:47:27 -0000 1.6 -+++ glibc-20060306T1239-fedora/locale/programs/3level.h 19 Dec 2005 12:11:15 -0000 1.5.2.2 +--- glibc-20060328T0900/locale/programs/3level.h 7 Dec 2005 05:47:27 -0000 1.6 ++++ glibc-20060328T0900-fedora/locale/programs/3level.h 19 Dec 2005 12:11:15 -0000 1.5.2.2 @@ -202,6 +202,42 @@ CONCAT(TABLE,_iterate) (struct TABLE *t, } } @@ -828,8 +784,8 @@ #endif #ifndef NO_FINALIZE ---- glibc-20060306T1239/localedata/Makefile 25 Sep 2005 17:01:12 -0000 1.102 -+++ glibc-20060306T1239-fedora/localedata/Makefile 3 Oct 2005 20:44:15 -0000 1.101.2.2 +--- glibc-20060328T0900/localedata/Makefile 25 Sep 2005 17:01:12 -0000 1.102 ++++ glibc-20060328T0900-fedora/localedata/Makefile 3 Oct 2005 20:44:15 -0000 1.101.2.2 @@ -222,6 +222,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-lo echo -n '...'; \ input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \ @@ -838,8 +794,8 @@ -i locales/$$input -c -f charmaps/$$charset \ $(addprefix --prefix=,$(install_root)) $$locale; \ echo ' done'; \ ---- glibc-20060306T1239/localedata/SUPPORTED 5 Nov 2005 16:25:49 -0000 1.87 -+++ glibc-20060306T1239-fedora/localedata/SUPPORTED 15 Nov 2005 08:21:56 -0000 1.71.2.8 +--- glibc-20060328T0900/localedata/SUPPORTED 5 Nov 2005 16:25:49 -0000 1.87 ++++ glibc-20060328T0900-fedora/localedata/SUPPORTED 15 Nov 2005 08:21:56 -0000 1.71.2.8 @@ -69,6 +69,7 @@ cy_GB.UTF-8/UTF-8 \ cy_GB/ISO-8859-14 \ da_DK.UTF-8/UTF-8 \ @@ -881,8 +837,8 @@ ta_IN/UTF-8 \ te_IN/UTF-8 \ tg_TJ.UTF-8/UTF-8 \ ---- glibc-20060306T1239/localedata/locales/cy_GB 28 Sep 2004 04:37:33 -0000 1.4 -+++ glibc-20060306T1239-fedora/localedata/locales/cy_GB 29 Sep 2004 08:48:23 -0000 1.3.2.2 +--- glibc-20060328T0900/localedata/locales/cy_GB 28 Sep 2004 04:37:33 -0000 1.4 ++++ glibc-20060328T0900-fedora/localedata/locales/cy_GB 29 Sep 2004 08:48:23 -0000 1.3.2.2 @@ -248,8 +248,11 @@ mon "" d_fmt "" @@ -897,8 +853,8 @@ END LC_TIME LC_MESSAGES ---- glibc-20060306T1239/localedata/locales/en_GB 31 Oct 2004 23:42:26 -0000 1.12 -+++ glibc-20060306T1239-fedora/localedata/locales/en_GB 2 Nov 2004 12:25:47 -0000 1.10.2.2 +--- glibc-20060328T0900/localedata/locales/en_GB 31 Oct 2004 23:42:26 -0000 1.12 ++++ glibc-20060328T0900-fedora/localedata/locales/en_GB 2 Nov 2004 12:25:47 -0000 1.10.2.2 @@ -112,8 +112,8 @@ mon "" d_fmt "" @@ -910,8 +866,8 @@ date_fmt "/ / " ---- glibc-20060306T1239/localedata/locales/no_NO 1 Jan 1970 00:00:00 -0000 -+++ glibc-20060306T1239-fedora/localedata/locales/no_NO 22 Sep 2004 21:21:01 -0000 1.11.2.1 +--- glibc-20060328T0900/localedata/locales/no_NO 1 Jan 1970 00:00:00 -0000 ++++ glibc-20060328T0900-fedora/localedata/locales/no_NO 22 Sep 2004 21:21:01 -0000 1.11.2.1 @@ -0,0 +1,69 @@ +escape_char / +comment_char % @@ -982,8 +938,8 @@ +LC_ADDRESS +copy "nb_NO" +END LC_ADDRESS ---- glibc-20060306T1239/localedata/locales/zh_TW 31 Oct 2004 23:42:28 -0000 1.7 -+++ glibc-20060306T1239-fedora/localedata/locales/zh_TW 2 Nov 2004 12:25:57 -0000 1.5.2.2 +--- glibc-20060328T0900/localedata/locales/zh_TW 31 Oct 2004 23:42:28 -0000 1.7 ++++ glibc-20060328T0900-fedora/localedata/locales/zh_TW 2 Nov 2004 12:25:57 -0000 1.5.2.2 @@ -1,7 +1,7 @@ comment_char % escape_char / @@ -1011,8 +967,8 @@ revision "0.2" date "2000-08-02" % ---- glibc-20060306T1239/malloc/mcheck.c 8 Sep 2004 20:36:02 -0000 1.18 -+++ glibc-20060306T1239-fedora/malloc/mcheck.c 20 Dec 2005 10:59:21 -0000 1.18.2.1 +--- glibc-20060328T0900/malloc/mcheck.c 8 Sep 2004 20:36:02 -0000 1.18 ++++ glibc-20060328T0900-fedora/malloc/mcheck.c 20 Dec 2005 10:59:21 -0000 1.18.2.1 @@ -24,9 +24,25 @@ # include # include @@ -1088,8 +1044,8 @@ old_free_hook = __free_hook; __free_hook = freehook; ---- glibc-20060306T1239/malloc/mtrace.c 14 Sep 2004 04:24:46 -0000 1.41 -+++ glibc-20060306T1239-fedora/malloc/mtrace.c 20 Dec 2005 10:59:21 -0000 1.41.2.1 +--- glibc-20060328T0900/malloc/mtrace.c 14 Sep 2004 04:24:46 -0000 1.41 ++++ glibc-20060328T0900-fedora/malloc/mtrace.c 20 Dec 2005 10:59:21 -0000 1.41.2.1 @@ -40,6 +40,18 @@ # include # define setvbuf(s, b, f, l) INTUSE(_IO_setvbuf) (s, b, f, l) @@ -1145,511 +1101,9 @@ __memalign_hook = tr_memalignhook; __malloc_hook = tr_mallochook; ---- glibc-20060306T1239/math/libm-test.inc 28 Jan 2006 00:35:55 -0000 1.69 -+++ glibc-20060306T1239-fedora/math/libm-test.inc 7 Mar 2006 13:28:12 -0000 1.61.2.8 -@@ -1628,8 +1628,12 @@ ceil_test (void) - - TEST_f_f (ceil, M_PIl, 4.0); - TEST_f_f (ceil, -M_PIl, -3.0); -+ TEST_f_f (ceil, 0.1, 1.0); - TEST_f_f (ceil, 0.25, 1.0); -+ TEST_f_f (ceil, 0.625, 1.0); -+ TEST_f_f (ceil, -0.1, minus_zero); - TEST_f_f (ceil, -0.25, minus_zero); -+ TEST_f_f (ceil, -0.625, minus_zero); - - #ifdef TEST_LDOUBLE - /* The result can only be represented in long double. */ -@@ -1645,6 +1649,15 @@ ceil_test (void) - TEST_f_f (ceil, -4503599627370496.75L, -4503599627370496.0L); - TEST_f_f (ceil, -4503599627370497.5L, -4503599627370497.0L); - -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (ceil, 4503599627370494.5000000000001L, 4503599627370495.0L); -+ TEST_f_f (ceil, 4503599627370495.5000000000001L, 4503599627370496.0L); -+ TEST_f_f (ceil, 4503599627370496.5000000000001L, 4503599627370497.0L); -+ TEST_f_f (ceil, -4503599627370494.5000000000001L, -4503599627370494.0L); -+ TEST_f_f (ceil, -4503599627370495.5000000000001L, -4503599627370495.0L); -+ TEST_f_f (ceil, -4503599627370496.5000000000001L, -4503599627370496.0L); -+# endif -+ - TEST_f_f (ceil, 9007199254740991.5L, 9007199254740992.0L); - TEST_f_f (ceil, 9007199254740992.25L, 9007199254740993.0L); - TEST_f_f (ceil, 9007199254740992.5L, 9007199254740993.0L); -@@ -1657,6 +1670,22 @@ ceil_test (void) - TEST_f_f (ceil, -9007199254740992.75L, -9007199254740992.0L); - TEST_f_f (ceil, -9007199254740993.5L, -9007199254740993.0L); - -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (ceil, 9007199254740991.0000000000001L, 9007199254740992.0L); -+ TEST_f_f (ceil, 9007199254740992.0000000000001L, 9007199254740993.0L); -+ TEST_f_f (ceil, 9007199254740993.0000000000001L, 9007199254740994.0L); -+ TEST_f_f (ceil, 9007199254740991.5000000000001L, 9007199254740992.0L); -+ TEST_f_f (ceil, 9007199254740992.5000000000001L, 9007199254740993.0L); -+ TEST_f_f (ceil, 9007199254740993.5000000000001L, 9007199254740994.0L); -+ -+ TEST_f_f (ceil, -9007199254740991.0000000000001L, -9007199254740991.0L); -+ TEST_f_f (ceil, -9007199254740992.0000000000001L, -9007199254740992.0L); -+ TEST_f_f (ceil, -9007199254740993.0000000000001L, -9007199254740993.0L); -+ TEST_f_f (ceil, -9007199254740991.5000000000001L, -9007199254740991.0L); -+ TEST_f_f (ceil, -9007199254740992.5000000000001L, -9007199254740992.0L); -+ TEST_f_f (ceil, -9007199254740993.5000000000001L, -9007199254740993.0L); -+# endif -+ - TEST_f_f (ceil, 72057594037927935.5L, 72057594037927936.0L); - TEST_f_f (ceil, 72057594037927936.25L, 72057594037927937.0L); - TEST_f_f (ceil, 72057594037927936.5L, 72057594037927937.0L); -@@ -2628,9 +2657,12 @@ floor_test (void) - TEST_f_f (floor, M_PIl, 3.0); - TEST_f_f (floor, -M_PIl, -4.0); - -+ TEST_f_f (floor, 0.1, 0.0); - TEST_f_f (floor, 0.25, 0.0); -+ TEST_f_f (floor, 0.625, 0.0); -+ TEST_f_f (floor, -0.1, -1.0); - TEST_f_f (floor, -0.25, -1.0); -- -+ TEST_f_f (floor, -0.625, -1.0); - - #ifdef TEST_LDOUBLE - /* The result can only be represented in long double. */ -@@ -2639,12 +2671,22 @@ floor_test (void) - TEST_f_f (floor, 4503599627370496.5L, 4503599627370496.0L); - TEST_f_f (floor, 4503599627370496.75L, 4503599627370496.0L); - TEST_f_f (floor, 4503599627370497.5L, 4503599627370497.0L); -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (floor, 4503599627370494.5000000000001L, 4503599627370494.0L); -+ TEST_f_f (floor, 4503599627370495.5000000000001L, 4503599627370495.0L); -+ TEST_f_f (floor, 4503599627370496.5000000000001L, 4503599627370496.0L); -+# endif - - TEST_f_f (floor, -4503599627370495.5L, -4503599627370496.0L); - TEST_f_f (floor, -4503599627370496.25L, -4503599627370497.0L); - TEST_f_f (floor, -4503599627370496.5L, -4503599627370497.0L); - TEST_f_f (floor, -4503599627370496.75L, -4503599627370497.0L); - TEST_f_f (floor, -4503599627370497.5L, -4503599627370498.0L); -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (floor, -4503599627370494.5000000000001L, -4503599627370495.0L); -+ TEST_f_f (floor, -4503599627370495.5000000000001L, -4503599627370496.0L); -+ TEST_f_f (floor, -4503599627370496.5000000000001L, -4503599627370497.0L); -+# endif - - TEST_f_f (floor, 9007199254740991.5L, 9007199254740991.0L); - TEST_f_f (floor, 9007199254740992.25L, 9007199254740992.0L); -@@ -2652,12 +2694,30 @@ floor_test (void) - TEST_f_f (floor, 9007199254740992.75L, 9007199254740992.0L); - TEST_f_f (floor, 9007199254740993.5L, 9007199254740993.0L); - -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (floor, 9007199254740991.0000000000001L, 9007199254740991.0L); -+ TEST_f_f (floor, 9007199254740992.0000000000001L, 9007199254740992.0L); -+ TEST_f_f (floor, 9007199254740993.0000000000001L, 9007199254740993.0L); -+ TEST_f_f (floor, 9007199254740991.5000000000001L, 9007199254740991.0L); -+ TEST_f_f (floor, 9007199254740992.5000000000001L, 9007199254740992.0L); -+ TEST_f_f (floor, 9007199254740993.5000000000001L, 9007199254740993.0L); -+# endif -+ - TEST_f_f (floor, -9007199254740991.5L, -9007199254740992.0L); - TEST_f_f (floor, -9007199254740992.25L, -9007199254740993.0L); - TEST_f_f (floor, -9007199254740992.5L, -9007199254740993.0L); - TEST_f_f (floor, -9007199254740992.75L, -9007199254740993.0L); - TEST_f_f (floor, -9007199254740993.5L, -9007199254740994.0L); - -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (floor, -9007199254740991.0000000000001L, -9007199254740992.0L); -+ TEST_f_f (floor, -9007199254740992.0000000000001L, -9007199254740993.0L); -+ TEST_f_f (floor, -9007199254740993.0000000000001L, -9007199254740994.0L); -+ TEST_f_f (floor, -9007199254740991.5000000000001L, -9007199254740992.0L); -+ TEST_f_f (floor, -9007199254740992.5000000000001L, -9007199254740993.0L); -+ TEST_f_f (floor, -9007199254740993.5000000000001L, -9007199254740994.0L); -+# endif -+ - TEST_f_f (floor, 72057594037927935.5L, 72057594037927935.0L); - TEST_f_f (floor, 72057594037927936.25L, 72057594037927936.0L); - TEST_f_f (floor, 72057594037927936.5L, 72057594037927936.0L); -@@ -3971,6 +4031,12 @@ rint_test (void) - TEST_f_f (rint, -2.5, -2.0); - TEST_f_f (rint, -3.5, -4.0); - TEST_f_f (rint, -4.5, -4.0); -+ TEST_f_f (rint, 0.1, 0.0); -+ TEST_f_f (rint, 0.25, 0.0); -+ TEST_f_f (rint, 0.625, 1.0); -+ TEST_f_f (rint, -0.1, -0.0); -+ TEST_f_f (rint, -0.25, -0.0); -+ TEST_f_f (rint, -0.625, -1.0); - #ifdef TEST_LDOUBLE - /* The result can only be represented in long double. */ - TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L); -@@ -3978,12 +4044,38 @@ rint_test (void) - TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L); - TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L); -+ -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L); -+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L); -+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L); -+# endif - - TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L); - TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L); -+ -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L); -+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L); -+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L); -+ -+ TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L); -+ TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L); -+ TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L); -+ TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L); -+ TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L); -+ TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L); -+ -+ TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L); -+ TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L); -+ TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L); -+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L); -+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L); -+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L); -+# endif - - TEST_f_f (rint, 9007199254740991.5L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740992.25L, 9007199254740992.0L); -@@ -4039,6 +4131,49 @@ rint_test_tonearest (void) - TEST_f_f (rint, -1.0, -1.0); - TEST_f_f (rint, -1.5, -2.0); - TEST_f_f (rint, -2.0, -2.0); -+ TEST_f_f (rint, 0.1, 0.0); -+ TEST_f_f (rint, 0.25, 0.0); -+ TEST_f_f (rint, 0.625, 1.0); -+ TEST_f_f (rint, -0.1, -0.0); -+ TEST_f_f (rint, -0.25, -0.0); -+ TEST_f_f (rint, -0.625, -1.0); -+#ifdef TEST_LDOUBLE -+ /* The result can only be represented in long double. */ -+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L); -+ TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L); -+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L); -+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L); -+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L); -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L); -+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L); -+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L); -+# endif -+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L); -+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L); -+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L); -+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L); -+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L); -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L); -+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L); -+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L); -+ -+ TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L); -+ TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L); -+ TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L); -+ TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L); -+ TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L); -+ TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L); -+ -+ TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L); -+ TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L); -+ TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L); -+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L); -+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L); -+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L); -+# endif -+#endif - } - - fesetround(save_round_mode); -@@ -4066,6 +4201,49 @@ rint_test_towardzero (void) - TEST_f_f (rint, -1.0, -1.0); - TEST_f_f (rint, -1.5, -1.0); - TEST_f_f (rint, -2.0, -2.0); -+ TEST_f_f (rint, 0.1, 0.0); -+ TEST_f_f (rint, 0.25, 0.0); -+ TEST_f_f (rint, 0.625, 0.0); -+ TEST_f_f (rint, -0.1, -0.0); -+ TEST_f_f (rint, -0.25, -0.0); -+ TEST_f_f (rint, -0.625, -0.0); -+#ifdef TEST_LDOUBLE -+ /* The result can only be represented in long double. */ -+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L); -+ TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L); -+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L); -+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L); -+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L); -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L); -+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L); -+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L); -+# endif -+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L); -+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L); -+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L); -+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L); -+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L); -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L); -+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L); -+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L); -+ -+ TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L); -+ TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L); -+ TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L); -+ TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740991.0L); -+ TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740992.0L); -+ TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740993.0L); -+ -+ TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L); -+ TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L); -+ TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L); -+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L); -+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L); -+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L); -+# endif -+#endif - } - - fesetround(save_round_mode); -@@ -4093,6 +4271,49 @@ rint_test_downward (void) - TEST_f_f (rint, -1.0, -1.0); - TEST_f_f (rint, -1.5, -2.0); - TEST_f_f (rint, -2.0, -2.0); -+ TEST_f_f (rint, 0.1, 0.0); -+ TEST_f_f (rint, 0.25, 0.0); -+ TEST_f_f (rint, 0.625, 0.0); -+ TEST_f_f (rint, -0.1, -1.0); -+ TEST_f_f (rint, -0.25, -1.0); -+ TEST_f_f (rint, -0.625, -1.0); -+#ifdef TEST_LDOUBLE -+ /* The result can only be represented in long double. */ -+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L); -+ TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L); -+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L); -+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L); -+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L); -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L); -+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L); -+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L); -+# endif -+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L); -+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370497.0L); -+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370497.0L); -+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L); -+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L); -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L); -+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L); -+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L); -+ -+ TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L); -+ TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L); -+ TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L); -+ TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740991.0L); -+ TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740992.0L); -+ TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740993.0L); -+ -+ TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740992.0L); -+ TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740993.0L); -+ TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740994.0L); -+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L); -+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L); -+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L); -+# endif -+#endif - } - - fesetround(save_round_mode); -@@ -4120,6 +4341,49 @@ rint_test_upward (void) - TEST_f_f (rint, -1.0, -1.0); - TEST_f_f (rint, -1.5, -1.0); - TEST_f_f (rint, -2.0, -2.0); -+ TEST_f_f (rint, 0.1, 1.0); -+ TEST_f_f (rint, 0.25, 1.0); -+ TEST_f_f (rint, 0.625, 1.0); -+ TEST_f_f (rint, -0.1, -0.0); -+ TEST_f_f (rint, -0.25, -0.0); -+ TEST_f_f (rint, -0.625, -0.0); -+#ifdef TEST_LDOUBLE -+ /* The result can only be represented in long double. */ -+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L); -+ TEST_f_f (rint, 4503599627370496.25L, 4503599627370497.0L); -+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370497.0L); -+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L); -+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L); -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L); -+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L); -+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L); -+# endif -+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L); -+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L); -+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L); -+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L); -+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L); -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L); -+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L); -+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L); -+ -+ TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740992.0L); -+ TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740993.0L); -+ TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740994.0L); -+ TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L); -+ TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L); -+ TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L); -+ -+ TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L); -+ TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L); -+ TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L); -+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L); -+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L); -+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L); -+# endif -+#endif - } - - fesetround(save_round_mode); -@@ -4142,6 +4406,12 @@ round_test (void) - TEST_f_f (round, -0.8L, -1.0); - TEST_f_f (round, 1.5, 2.0); - TEST_f_f (round, -1.5, -2.0); -+ TEST_f_f (round, 0.1, 0.0); -+ TEST_f_f (round, 0.25, 0.0); -+ TEST_f_f (round, 0.625, 1.0); -+ TEST_f_f (round, -0.1, -0.0); -+ TEST_f_f (round, -0.25, -0.0); -+ TEST_f_f (round, -0.625, -1.0); - TEST_f_f (round, 2097152.5, 2097153); - TEST_f_f (round, -2097152.5, -2097153); - -@@ -4151,13 +4421,23 @@ round_test (void) - TEST_f_f (round, 4503599627370496.25L, 4503599627370496.0L); - TEST_f_f (round, 4503599627370496.5L, 4503599627370497.0L); - TEST_f_f (round, 4503599627370496.75L, 4503599627370497.0L); -- TEST_f_f (round, 4503599627370497.5L, 4503599627370498.0L); -+ TEST_f_f (round, 4503599627370497.5L, 4503599627370498.0L); -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (round, 4503599627370494.5000000000001L, 4503599627370495.0L); -+ TEST_f_f (round, 4503599627370495.5000000000001L, 4503599627370496.0L); -+ TEST_f_f (round, 4503599627370496.5000000000001L, 4503599627370497.0L); -+# endif - - TEST_f_f (round, -4503599627370495.5L, -4503599627370496.0L); - TEST_f_f (round, -4503599627370496.25L, -4503599627370496.0L); - TEST_f_f (round, -4503599627370496.5L, -4503599627370497.0L); - TEST_f_f (round, -4503599627370496.75L, -4503599627370497.0L); - TEST_f_f (round, -4503599627370497.5L, -4503599627370498.0L); -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (round, -4503599627370494.5000000000001L, -4503599627370495.0L); -+ TEST_f_f (round, -4503599627370495.5000000000001L, -4503599627370496.0L); -+ TEST_f_f (round, -4503599627370496.5000000000001L, -4503599627370497.0L); -+# endif - - TEST_f_f (round, 9007199254740991.5L, 9007199254740992.0L); - TEST_f_f (round, 9007199254740992.25L, 9007199254740992.0L); -@@ -4171,6 +4451,22 @@ round_test (void) - TEST_f_f (round, -9007199254740992.75L, -9007199254740993.0L); - TEST_f_f (round, -9007199254740993.5L, -9007199254740994.0L); - -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (round, 9007199254740991.0000000000001L, 9007199254740991.0L); -+ TEST_f_f (round, 9007199254740992.0000000000001L, 9007199254740992.0L); -+ TEST_f_f (round, 9007199254740993.0000000000001L, 9007199254740993.0L); -+ TEST_f_f (round, 9007199254740991.5000000000001L, 9007199254740992.0L); -+ TEST_f_f (round, 9007199254740992.5000000000001L, 9007199254740993.0L); -+ TEST_f_f (round, 9007199254740993.5000000000001L, 9007199254740994.0L); -+ -+ TEST_f_f (round, -9007199254740991.0000000000001L, -9007199254740991.0L); -+ TEST_f_f (round, -9007199254740992.0000000000001L, -9007199254740992.0L); -+ TEST_f_f (round, -9007199254740993.0000000000001L, -9007199254740993.0L); -+ TEST_f_f (round, -9007199254740991.5000000000001L, -9007199254740992.0L); -+ TEST_f_f (round, -9007199254740992.5000000000001L, -9007199254740993.0L); -+ TEST_f_f (round, -9007199254740993.5000000000001L, -9007199254740994.0L); -+# endif -+ - TEST_f_f (round, 72057594037927935.5L, 72057594037927936.0L); - TEST_f_f (round, 72057594037927936.25L, 72057594037927936.0L); - TEST_f_f (round, 72057594037927936.5L, 72057594037927937.0L); -@@ -4541,7 +4837,11 @@ trunc_test (void) - - TEST_f_f (trunc, 0, 0); - TEST_f_f (trunc, minus_zero, minus_zero); -+ TEST_f_f (trunc, 0.1, 0); -+ TEST_f_f (trunc, 0.25, 0); - TEST_f_f (trunc, 0.625, 0); -+ TEST_f_f (trunc, -0.1, minus_zero); -+ TEST_f_f (trunc, -0.25, minus_zero); - TEST_f_f (trunc, -0.625, minus_zero); - TEST_f_f (trunc, 1, 1); - TEST_f_f (trunc, -1, -1); -@@ -4565,11 +4865,23 @@ trunc_test (void) - TEST_f_f (trunc, 4503599627370496.75L, 4503599627370496.0L); - TEST_f_f (trunc, 4503599627370497.5L, 4503599627370497.0L); - -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (trunc, 4503599627370494.5000000000001L, 4503599627370494.0L); -+ TEST_f_f (trunc, 4503599627370495.5000000000001L, 4503599627370495.0L); -+ TEST_f_f (trunc, 4503599627370496.5000000000001L, 4503599627370496.0L); -+# endif -+ - TEST_f_f (trunc, -4503599627370495.5L, -4503599627370495.0L); - TEST_f_f (trunc, -4503599627370496.25L, -4503599627370496.0L); - TEST_f_f (trunc, -4503599627370496.5L, -4503599627370496.0L); - TEST_f_f (trunc, -4503599627370496.75L, -4503599627370496.0L); - TEST_f_f (trunc, -4503599627370497.5L, -4503599627370497.0L); -+ -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (trunc, -4503599627370494.5000000000001L, -4503599627370494.0L); -+ TEST_f_f (trunc, -4503599627370495.5000000000001L, -4503599627370495.0L); -+ TEST_f_f (trunc, -4503599627370496.5000000000001L, -4503599627370496.0L); -+# endif - - TEST_f_f (trunc, 9007199254740991.5L, 9007199254740991.0L); - TEST_f_f (trunc, 9007199254740992.25L, 9007199254740992.0L); -@@ -4577,12 +4889,30 @@ trunc_test (void) - TEST_f_f (trunc, 9007199254740992.75L, 9007199254740992.0L); - TEST_f_f (trunc, 9007199254740993.5L, 9007199254740993.0L); - -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (trunc, 9007199254740991.0000000000001L, 9007199254740991.0L); -+ TEST_f_f (trunc, 9007199254740992.0000000000001L, 9007199254740992.0L); -+ TEST_f_f (trunc, 9007199254740993.0000000000001L, 9007199254740993.0L); -+ TEST_f_f (trunc, 9007199254740991.5000000000001L, 9007199254740991.0L); -+ TEST_f_f (trunc, 9007199254740992.5000000000001L, 9007199254740992.0L); -+ TEST_f_f (trunc, 9007199254740993.5000000000001L, 9007199254740993.0L); -+# endif -+ - TEST_f_f (trunc, -9007199254740991.5L, -9007199254740991.0L); - TEST_f_f (trunc, -9007199254740992.25L, -9007199254740992.0L); - TEST_f_f (trunc, -9007199254740992.5L, -9007199254740992.0L); - TEST_f_f (trunc, -9007199254740992.75L, -9007199254740992.0L); - TEST_f_f (trunc, -9007199254740993.5L, -9007199254740993.0L); - -+# if LDBL_MANT_DIG > 100 -+ TEST_f_f (trunc, -9007199254740991.0000000000001L, -9007199254740991.0L); -+ TEST_f_f (trunc, -9007199254740992.0000000000001L, -9007199254740992.0L); -+ TEST_f_f (trunc, -9007199254740993.0000000000001L, -9007199254740993.0L); -+ TEST_f_f (trunc, -9007199254740991.5000000000001L, -9007199254740991.0L); -+ TEST_f_f (trunc, -9007199254740992.5000000000001L, -9007199254740992.0L); -+ TEST_f_f (trunc, -9007199254740993.5000000000001L, -9007199254740993.0L); -+# endif -+ - TEST_f_f (trunc, 72057594037927935.5L, 72057594037927935.0L); - TEST_f_f (trunc, 72057594037927936.25L, 72057594037927936.0L); - TEST_f_f (trunc, 72057594037927936.5L, 72057594037927936.0L); ---- glibc-20060306T1239/nptl/ChangeLog 6 Mar 2006 01:41:08 -0000 1.879 -+++ glibc-20060306T1239-fedora/nptl/ChangeLog 6 Mar 2006 07:29:58 -0000 1.706.2.83 -@@ -731,6 +731,15 @@ +--- glibc-20060328T0900/nptl/ChangeLog 28 Mar 2006 04:22:18 -0000 1.881 ++++ glibc-20060328T0900-fedora/nptl/ChangeLog 28 Mar 2006 09:36:22 -0000 1.706.2.84 +@@ -763,6 +763,15 @@ Use __sigfillset. Document that sigfillset does the right thing wrt to SIGSETXID. @@ -1665,7 +1119,7 @@ 2005-07-11 Jakub Jelinek [BZ #1102] -@@ -1467,6 +1476,11 @@ +@@ -1499,6 +1508,11 @@ Move definition inside libpthread, libc, librt check. Provide definition for rtld. @@ -1677,7 +1131,7 @@ 2004-09-02 Ulrich Drepper * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp. -@@ -3541,6 +3555,11 @@ +@@ -3573,6 +3587,11 @@ * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules). @@ -1689,8 +1143,8 @@ 2003-07-25 Jakub Jelinek * tst-cancel17.c (do_test): Check if aio_cancel failed. ---- glibc-20060306T1239/nptl/Makefile 28 Feb 2006 09:36:05 -0000 1.179 -+++ glibc-20060306T1239-fedora/nptl/Makefile 1 Mar 2006 06:55:40 -0000 1.157.2.19 +--- glibc-20060328T0900/nptl/Makefile 28 Mar 2006 04:13:27 -0000 1.180 ++++ glibc-20060328T0900-fedora/nptl/Makefile 28 Mar 2006 09:36:22 -0000 1.157.2.20 @@ -519,15 +519,19 @@ $(addprefix $(objpfx), \ $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \ $(objpfx)libpthread_nonshared.a @@ -1713,8 +1167,8 @@ else $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a endif ---- glibc-20060306T1239/nptl/tst-stackguard1.c 26 Jun 2005 17:44:14 -0000 1.1 -+++ glibc-20060306T1239-fedora/nptl/tst-stackguard1.c 8 Aug 2005 21:24:28 -0000 1.1.2.3 +--- glibc-20060328T0900/nptl/tst-stackguard1.c 26 Jun 2005 17:44:14 -0000 1.1 ++++ glibc-20060328T0900-fedora/nptl/tst-stackguard1.c 8 Aug 2005 21:24:28 -0000 1.1.2.3 @@ -190,17 +190,21 @@ do_test (void) the 16 runs, something is very wrong. */ int ndifferences = 0; @@ -1739,8 +1193,8 @@ { puts ("stack guard canaries are not randomized enough"); puts ("nor equal to the default canary value"); ---- glibc-20060306T1239/nptl/sysdeps/unix/sysv/linux/kernel-features.h 1 Jan 1970 00:00:00 -0000 -+++ glibc-20060306T1239-fedora/nptl/sysdeps/unix/sysv/linux/kernel-features.h 22 Sep 2004 21:21:02 -0000 1.1.2.1 +--- glibc-20060328T0900/nptl/sysdeps/unix/sysv/linux/kernel-features.h 1 Jan 1970 00:00:00 -0000 ++++ glibc-20060328T0900-fedora/nptl/sysdeps/unix/sysv/linux/kernel-features.h 22 Sep 2004 21:21:02 -0000 1.1.2.1 @@ -0,0 +1,6 @@ +#include_next + @@ -1748,8 +1202,8 @@ +#ifndef __ASSUME_CLONE_THREAD_FLAGS +# define __ASSUME_CLONE_THREAD_FLAGS 1 +#endif ---- glibc-20060306T1239/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 17 Feb 2006 08:05:32 -0000 1.29 -+++ glibc-20060306T1239-fedora/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 6 Mar 2006 07:34:44 -0000 1.25.2.4 +--- glibc-20060328T0900/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 17 Feb 2006 08:05:32 -0000 1.29 ++++ glibc-20060328T0900-fedora/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 6 Mar 2006 07:34:44 -0000 1.25.2.4 @@ -65,6 +65,88 @@ #define BUSY_WAIT_NOP asm ("rep; nop") @@ -2085,8 +1539,8 @@ : "=m" (futex), "=&a" (ignore) \ : "m" (futex), \ "i" (offsetof (tcbhead_t, multiple_threads)) \ ---- glibc-20060306T1239/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S 1 Oct 2004 10:30:44 -0000 1.14 -+++ glibc-20060306T1239-fedora/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S 6 Mar 2006 07:34:44 -0000 1.13.2.2 +--- glibc-20060328T0900/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S 1 Oct 2004 10:30:44 -0000 1.14 ++++ glibc-20060328T0900-fedora/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S 6 Mar 2006 07:34:44 -0000 1.13.2.2 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. @@ -2232,8 +1686,8 @@ .size __lll_mutex_unlock_wake,.-__lll_mutex_unlock_wake ---- glibc-20060306T1239/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S 2 Mar 2006 00:25:56 -0000 1.2 -+++ glibc-20060306T1239-fedora/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S 6 Mar 2006 07:34:44 -0000 1.1.2.3 +--- glibc-20060328T0900/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S 2 Mar 2006 00:25:56 -0000 1.2 ++++ glibc-20060328T0900-fedora/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S 6 Mar 2006 07:34:44 -0000 1.1.2.3 @@ -44,9 +44,16 @@ .hidden __lll_robust_mutex_lock_wait .align 16 @@ -2334,8 +1788,8 @@ - ret + cfi_endproc .size __lll_robust_mutex_timedlock_wait,.-__lll_robust_mutex_timedlock_wait ---- glibc-20060306T1239/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S 31 Mar 2005 10:00:15 -0000 1.14 -+++ glibc-20060306T1239-fedora/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S 6 Mar 2006 07:33:30 -0000 1.11.2.4 +--- glibc-20060328T0900/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S 31 Mar 2005 10:00:15 -0000 1.14 ++++ glibc-20060328T0900-fedora/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S 6 Mar 2006 07:33:30 -0000 1.11.2.4 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. @@ -2477,8 +1931,8 @@ .size __lll_mutex_unlock_wake,.-__lll_mutex_unlock_wake ---- glibc-20060306T1239/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h 17 Feb 2006 08:06:14 -0000 1.26 -+++ glibc-20060306T1239-fedora/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h 6 Mar 2006 07:33:30 -0000 1.23.2.3 +--- glibc-20060328T0900/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h 17 Feb 2006 08:06:14 -0000 1.26 ++++ glibc-20060328T0900-fedora/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h 6 Mar 2006 07:33:30 -0000 1.23.2.3 @@ -46,6 +46,110 @@ #define BUSY_WAIT_NOP asm ("rep; nop") @@ -2866,8 +2320,8 @@ : "=m" (futex), "=&D" (ignore) \ : "m" (futex) \ : "ax", "cx", "r11", "cc", "memory"); }) ---- glibc-20060306T1239/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S 2 Mar 2006 00:26:55 -0000 1.2 -+++ glibc-20060306T1239-fedora/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S 6 Mar 2006 07:33:30 -0000 1.1.2.3 +--- glibc-20060328T0900/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S 2 Mar 2006 00:26:55 -0000 1.2 ++++ glibc-20060328T0900-fedora/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S 6 Mar 2006 07:33:30 -0000 1.1.2.3 @@ -46,8 +46,13 @@ .hidden __lll_robust_mutex_lock_wait .align 16 @@ -2962,8 +2416,8 @@ - retq + cfi_endproc .size __lll_robust_mutex_timedlock_wait,.-__lll_robust_mutex_timedlock_wait ---- glibc-20060306T1239/nscd/connections.c 3 Jan 2006 21:26:28 -0000 1.82 -+++ glibc-20060306T1239-fedora/nscd/connections.c 4 Jan 2006 07:58:21 -0000 1.55.2.19 +--- glibc-20060328T0900/nscd/connections.c 3 Jan 2006 21:26:28 -0000 1.82 ++++ glibc-20060328T0900-fedora/nscd/connections.c 4 Jan 2006 07:58:21 -0000 1.55.2.19 @@ -1873,3 +1873,18 @@ finish_drop_privileges (void) exit (4); } @@ -2983,8 +2437,8 @@ + prune_cache (&dbs[hstdb], LONG_MAX); +} + ---- glibc-20060306T1239/nscd/nscd.c 1 Jan 2006 19:15:56 -0000 1.51 -+++ glibc-20060306T1239-fedora/nscd/nscd.c 2 Jan 2006 10:52:53 -0000 1.38.2.11 +--- glibc-20060328T0900/nscd/nscd.c 1 Jan 2006 19:15:56 -0000 1.51 ++++ glibc-20060328T0900-fedora/nscd/nscd.c 2 Jan 2006 10:52:53 -0000 1.38.2.11 @@ -119,6 +119,9 @@ static struct argp argp = options, parse_opt, NULL, doc, }; @@ -3003,8 +2457,8 @@ signal (SIGPIPE, SIG_IGN); /* Cleanup files created by a previous 'bind'. */ ---- glibc-20060306T1239/nscd/nscd.conf 23 Aug 2005 23:17:32 -0000 1.11 -+++ glibc-20060306T1239-fedora/nscd/nscd.conf 24 Aug 2005 07:23:30 -0000 1.8.2.3 +--- glibc-20060328T0900/nscd/nscd.conf 23 Aug 2005 23:17:32 -0000 1.11 ++++ glibc-20060328T0900-fedora/nscd/nscd.conf 24 Aug 2005 07:23:30 -0000 1.8.2.3 @@ -32,8 +32,8 @@ # logfile /var/log/nscd.log # threads 6 @@ -3016,8 +2470,8 @@ debug-level 0 # reload-count 5 paranoia no ---- glibc-20060306T1239/nscd/nscd.init 20 Jun 2005 15:47:52 -0000 1.9 -+++ glibc-20060306T1239-fedora/nscd/nscd.init 12 Sep 2005 12:53:20 -0000 1.6.2.4 +--- glibc-20060328T0900/nscd/nscd.init 20 Jun 2005 15:47:52 -0000 1.9 ++++ glibc-20060328T0900-fedora/nscd/nscd.init 12 Sep 2005 12:53:20 -0000 1.6.2.4 @@ -9,6 +9,7 @@ # slow naming services like NIS, NIS+, LDAP, or hesiod. # processname: /usr/sbin/nscd @@ -3058,8 +2512,8 @@ RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd ---- glibc-20060306T1239/posix/Makefile 8 Jan 2006 09:39:15 -0000 1.188 -+++ glibc-20060306T1239-fedora/posix/Makefile 9 Jan 2006 21:55:00 -0000 1.171.2.16 +--- glibc-20060328T0900/posix/Makefile 8 Jan 2006 09:39:15 -0000 1.188 ++++ glibc-20060328T0900-fedora/posix/Makefile 9 Jan 2006 21:55:00 -0000 1.171.2.16 @@ -107,7 +107,8 @@ generated := $(addprefix wordexp-test-re bug-regex21-mem bug-regex21.mtrace \ tst-rxspencer-mem tst-rxspencer.mtrace tst-getconf.out \ @@ -3093,8 +2547,8 @@ + | sed -n -e '/START_OF_STRINGS/,$${/POSIX_V6_/{s/^[^"]*"//;s/".*$$//;p}}' \ + > $@.new + mv -f $@.new $@ ---- glibc-20060306T1239/posix/getconf.speclist.h 1 Jan 1970 00:00:00 -0000 -+++ glibc-20060306T1239-fedora/posix/getconf.speclist.h 13 Dec 2004 23:32:37 -0000 1.1.2.2 +--- glibc-20060328T0900/posix/getconf.speclist.h 1 Jan 1970 00:00:00 -0000 ++++ glibc-20060328T0900-fedora/posix/getconf.speclist.h 13 Dec 2004 23:32:37 -0000 1.1.2.2 @@ -0,0 +1,15 @@ +#include +const char *START_OF_STRINGS = @@ -3111,8 +2565,8 @@ +"POSIX_V6_LPBIG_OFFBIG" +#endif +""; ---- glibc-20060306T1239/sysdeps/generic/dl-cache.h 25 Jun 2003 08:01:22 -0000 1.13 -+++ glibc-20060306T1239-fedora/sysdeps/generic/dl-cache.h 22 Sep 2004 21:21:07 -0000 1.13.2.1 +--- glibc-20060328T0900/sysdeps/generic/dl-cache.h 25 Jun 2003 08:01:22 -0000 1.13 ++++ glibc-20060328T0900-fedora/sysdeps/generic/dl-cache.h 22 Sep 2004 21:21:07 -0000 1.13.2.1 @@ -36,6 +36,14 @@ # define add_system_dir(dir) add_dir (dir) #endif @@ -3128,8 +2582,8 @@ #define CACHEMAGIC "ld.so-1.7.0" /* libc5 and glibc 2.0/2.1 use the same format. For glibc 2.2 another ---- glibc-20060306T1239/sysdeps/ia64/Makefile 16 Aug 2004 06:46:14 -0000 1.10 -+++ glibc-20060306T1239-fedora/sysdeps/ia64/Makefile 22 Sep 2004 21:21:07 -0000 1.10.2.1 +--- glibc-20060328T0900/sysdeps/ia64/Makefile 16 Aug 2004 06:46:14 -0000 1.10 ++++ glibc-20060328T0900-fedora/sysdeps/ia64/Makefile 22 Sep 2004 21:21:07 -0000 1.10.2.1 @@ -12,8 +12,8 @@ elide-routines.os += hp-timing ifeq (yes,$(build-shared)) @@ -3141,8 +2595,8 @@ endif endif ---- glibc-20060306T1239/sysdeps/ia64/ia64libgcc.S 11 May 2002 05:12:35 -0000 1.2 -+++ glibc-20060306T1239-fedora/sysdeps/ia64/ia64libgcc.S 22 Sep 2004 21:21:07 -0000 1.2.2.1 +--- glibc-20060328T0900/sysdeps/ia64/ia64libgcc.S 11 May 2002 05:12:35 -0000 1.2 ++++ glibc-20060328T0900-fedora/sysdeps/ia64/ia64libgcc.S 22 Sep 2004 21:21:07 -0000 1.2.2.1 @@ -1,350 +0,0 @@ -/* From the Intel IA-64 Optimization Guide, choose the minimum latency - alternative. */ @@ -3494,8 +2948,8 @@ - .symver ___multi3, __multi3@GLIBC_2.2 - -#endif ---- glibc-20060306T1239/sysdeps/ia64/libgcc-compat.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20060306T1239-fedora/sysdeps/ia64/libgcc-compat.c 22 Sep 2004 21:21:08 -0000 1.1.2.1 +--- glibc-20060328T0900/sysdeps/ia64/libgcc-compat.c 1 Jan 1970 00:00:00 -0000 ++++ glibc-20060328T0900-fedora/sysdeps/ia64/libgcc-compat.c 22 Sep 2004 21:21:08 -0000 1.1.2.1 @@ -0,0 +1,84 @@ +/* pre-.hidden libgcc compatibility + Copyright (C) 2002 Free Software Foundation, Inc. @@ -3581,1511 +3035,8 @@ +symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2); + +#endif ---- glibc-20060306T1239/sysdeps/ieee754/ldbl-128ibm/e_fmodl.c 28 Jan 2006 00:07:25 -0000 1.1 -+++ glibc-20060306T1239-fedora/sysdeps/ieee754/ldbl-128ibm/e_fmodl.c 7 Mar 2006 08:24:12 -0000 1.1.2.2 -@@ -76,8 +76,8 @@ static long double one = 1.0, Zero[] = { - /* Make the IBM extended format 105 bit mantissa look like the ieee854 112 - bit mantissa so the following operatations will give the correct - result. */ -- EXTRACT_IBM_EXTENDED_MANTISSA(hx, lx, temp, x); -- EXTRACT_IBM_EXTENDED_MANTISSA(hy, ly, temp, y); -+ ldbl_extract_mantissa(&hx, &lx, &temp, x); -+ ldbl_extract_mantissa(&hy, &ly, &temp, y); - - /* set up {hx,lx}, {hy,ly} and align y to x */ - if(ix >= -1022) -@@ -127,7 +127,7 @@ static long double one = 1.0, Zero[] = { - iy -= 1; - } - if(iy>= -1022) { /* normalize output */ -- INSERT_IBM_EXTENDED_MANTISSA(x, (sx>>63), iy, hx, lx); -+ x = ldbl_insert_mantissa((sx>>63), iy, hx, lx); - } else { /* subnormal output */ - n = -1022 - iy; - if(n<=48) { -@@ -138,7 +138,7 @@ static long double one = 1.0, Zero[] = { - } else { - lx = hx>>(n-64); hx = sx; - } -- INSERT_IBM_EXTENDED_MANTISSA(x, (sx>>63), iy, hx, lx); -+ x = ldbl_insert_mantissa((sx>>63), iy, hx, lx); - x *= one; /* create necessary signal */ - } - return x; /* exact output */ ---- glibc-20060306T1239/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c 28 Jan 2006 00:07:25 -0000 1.1 -+++ glibc-20060306T1239-fedora/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c 7 Mar 2006 08:24:12 -0000 1.1.2.2 -@@ -199,7 +199,8 @@ int32_t __ieee754_rem_pio2l(long double - { - long double z, w, t; - double tx[8]; -- int64_t exp, n, ix, hx, ixd; -+ int exp; -+ int64_t n, ix, hx, ixd; - u_int64_t lx, lxd; - - GET_LDOUBLE_WORDS64 (hx, lx, x); -@@ -243,7 +244,7 @@ int32_t __ieee754_rem_pio2l(long double - stored in a double array. */ - /* Make the IBM extended format 105 bit mantissa look like the ieee854 112 - bit mantissa so the next operatation will give the correct result. */ -- EXTRACT_IBM_EXTENDED_MANTISSA (ixd, lxd, exp, x); -+ ldbl_extract_mantissa (&ixd, &lxd, &exp, x); - exp = exp - 23; - /* This is faster than doing this in floating point, because we - have to convert it to integers anyway and like this we can keep ---- glibc-20060306T1239/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h 28 Jan 2006 00:07:25 -0000 1.1 -+++ glibc-20060306T1239-fedora/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h 7 Mar 2006 08:24:12 -0000 1.1.2.2 -@@ -3,122 +3,179 @@ - #endif - - #include -+#include -+ -+static inline void -+ldbl_extract_mantissa (int64_t *hi64, u_int64_t *lo64, int *exp, long double x) -+{ -+ /* We have 105 bits of mantissa plus one implicit digit. Since -+ 106 bits are representable we use the first implicit digit for -+ the number before the decimal point and the second implicit bit -+ as bit 53 of the mantissa. */ -+ unsigned long long hi, lo; -+ int ediff; -+ union ibm_extended_long_double eldbl; -+ eldbl.d = x; -+ *exp = eldbl.ieee.exponent - IBM_EXTENDED_LONG_DOUBLE_BIAS; - --#define EXTRACT_IBM_EXTENDED_MANTISSA(hi64, lo64, expnt, ibm_ext_ldbl) \ -- do \ -- { \ -- /* We have 105 bits of mantissa plus one implicit digit. Since \ -- 106 bits are representable without the rest using hexadecimal \ -- digits we use only the implicit digits for the number before \ -- the decimal point. */ \ -- unsigned long long hi, lo; \ -- int ediff; \ -- union ibm_extended_long_double eldbl; \ -- eldbl.d = ibm_ext_ldbl; \ -- expnt = eldbl.ieee.exponent - IBM_EXTENDED_LONG_DOUBLE_BIAS; \ -- \ -- lo = ((long long)eldbl.ieee.mantissa2 << 32) | eldbl.ieee.mantissa3; \ -- hi = ((long long)eldbl.ieee.mantissa0 << 32) | eldbl.ieee.mantissa1; \ -- /* If the lower double is not a denomal or zero then set the hidden \ -- 53rd bit. */ \ -- if (eldbl.ieee.exponent2 > 0x001) \ -- { \ -- lo |= (1ULL << 52); \ -- lo = lo << 7; /* pre-shift lo to match ieee854. */ \ -- /* The lower double is normalized separately from the upper. We \ -- may need to adjust the lower manitissa to reflect this. */ \ -- ediff = eldbl.ieee.exponent - eldbl.ieee.exponent2; \ -- if (ediff > 53) \ -- lo = lo >> (ediff-53); \ -- } \ -- hi |= (1ULL << 52); \ -- \ -- if ((eldbl.ieee.negative != eldbl.ieee.negative2) \ -- && ((eldbl.ieee.exponent2 != 0) && (lo != 0LL))) \ -- { \ -- hi--; \ -- lo = (1ULL << 60) - lo; \ -- if (hi < (1ULL << 52)) \ -- { \ -- /* we have a borrow from the hidden bit, so shift left 1. */ \ -- hi = (hi << 1) | (lo >> 59); \ -- lo = 0xfffffffffffffffLL & (lo << 1); \ -- expnt--; \ -- } \ -- } \ -- lo64 = (hi << 60) | lo; \ -- hi64 = hi >> 4; \ -- } \ -- while (0) -- --#define INSERT_IBM_EXTENDED_MANTISSA(ibm_ext_ldbl, sign, expnt, hi64, lo64) \ -- do \ -- { \ -- union ibm_extended_long_double u; \ -- unsigned long hidden2, lzcount; \ -- unsigned long long hi, lo; \ -- \ -- u.ieee.negative = sign; \ -- u.ieee.negative2 = sign; \ -- u.ieee.exponent = expnt + IBM_EXTENDED_LONG_DOUBLE_BIAS; \ -- u.ieee.exponent2 = expnt-53 + IBM_EXTENDED_LONG_DOUBLE_BIAS; \ -- /* Expect 113 bits (112 bits + hidden) right justified in two longs. \ -- The low order 53 bits (52 + hidden) go into the lower double */ \ -- lo = (lo64 >> 7)& ((1ULL << 53) - 1); \ -- hidden2 = (lo64 >> 59) & 1ULL; \ -- /* The high order 53 bits (52 + hidden) go into the upper double */ \ -- hi = (lo64 >> 60) & ((1ULL << 11) - 1); \ -- hi |= (hi64 << 4); \ -- \ -- if (lo != 0LL) \ -- { \ -- /* hidden2 bit of low double controls rounding of the high double. \ -- If hidden2 is '1' then round up hi and adjust lo (2nd mantissa) \ -- plus change the sign of the low double to compensate. */ \ -- if (hidden2) \ -- { \ -- hi++; \ -- u.ieee.negative2 = !sign; \ -- lo = (1ULL << 53) - lo; \ -- } \ -- /* The hidden bit of the lo mantissa is zero so we need to \ -- normalize the it for the low double. Shift it left until the \ -- hidden bit is '1' then adjust the 2nd exponent accordingly. */ \ -- \ -- if (sizeof (lo) == sizeof (long)) \ -- lzcount = __builtin_clzl (lo); \ -- else if ((lo >> 32) != 0) \ -- lzcount = __builtin_clzl ((long) (lo >> 32)); \ -- else \ -- lzcount = __builtin_clzl ((long) lo) + 32; \ -- lzcount = lzcount - 11; \ -- if (lzcount > 0) \ -- { \ -- int expnt2 = u.ieee.exponent2 - lzcount; \ -- if (expnt2 >= 1) \ -- { \ -- /* Not denormal. Normalize and set low exponent. */ \ -- lo = lo << lzcount; \ -- u.ieee.exponent2 = expnt2; \ -- } \ -- else \ -- { \ -- /* Is denormal. */ \ -- lo = lo << (lzcount + expnt2); \ -- u.ieee.exponent2 = 0; \ -- } \ -- } \ -- } \ -- else \ -- { \ -- u.ieee.negative2 = 0; \ -- u.ieee.exponent2 = 0; \ -- } \ -- \ -- u.ieee.mantissa3 = lo & ((1ULL << 32) - 1); \ -- u.ieee.mantissa2 = (lo >> 32) & ((1ULL << 20) - 1); \ -- u.ieee.mantissa1 = hi & ((1ULL << 32) - 1); \ -- u.ieee.mantissa0 = (hi >> 32) & ((1ULL << 20) - 1); \ -- ibm_ext_ldbl = u.d; \ -- } \ -- while (0) -+ lo = ((long long)eldbl.ieee.mantissa2 << 32) | eldbl.ieee.mantissa3; -+ hi = ((long long)eldbl.ieee.mantissa0 << 32) | eldbl.ieee.mantissa1; -+ /* If the lower double is not a denomal or zero then set the hidden -+ 53rd bit. */ -+ if (eldbl.ieee.exponent2 > 0x001) -+ { -+ lo |= (1ULL << 52); -+ lo = lo << 7; /* pre-shift lo to match ieee854. */ -+ /* The lower double is normalized separately from the upper. We -+ may need to adjust the lower manitissa to reflect this. */ -+ ediff = eldbl.ieee.exponent - eldbl.ieee.exponent2; -+ if (ediff > 53) -+ lo = lo >> (ediff-53); -+ } -+ hi |= (1ULL << 52); -+ -+ if ((eldbl.ieee.negative != eldbl.ieee.negative2) -+ && ((eldbl.ieee.exponent2 != 0) && (lo != 0LL))) -+ { -+ hi--; -+ lo = (1ULL << 60) - lo; -+ if (hi < (1ULL << 52)) -+ { -+ /* we have a borrow from the hidden bit, so shift left 1. */ -+ hi = (hi << 1) | (lo >> 59); -+ lo = 0xfffffffffffffffLL & (lo << 1); -+ *exp = *exp - 1; -+ } -+ } -+ *lo64 = (hi << 60) | lo; -+ *hi64 = hi >> 4; -+} -+ -+static inline long double -+ldbl_insert_mantissa (int sign, int exp, int64_t hi64, u_int64_t lo64) -+{ -+ union ibm_extended_long_double u; -+ unsigned long hidden2, lzcount; -+ unsigned long long hi, lo; -+ -+ u.ieee.negative = sign; -+ u.ieee.negative2 = sign; -+ u.ieee.exponent = exp + IBM_EXTENDED_LONG_DOUBLE_BIAS; -+ u.ieee.exponent2 = exp-53 + IBM_EXTENDED_LONG_DOUBLE_BIAS; -+ /* Expect 113 bits (112 bits + hidden) right justified in two longs. -+ The low order 53 bits (52 + hidden) go into the lower double */ -+ lo = (lo64 >> 7)& ((1ULL << 53) - 1); -+ hidden2 = (lo64 >> 59) & 1ULL; -+ /* The high order 53 bits (52 + hidden) go into the upper double */ -+ hi = (lo64 >> 60) & ((1ULL << 11) - 1); -+ hi |= (hi64 << 4); -+ -+ if (lo != 0LL) -+ { -+ /* hidden2 bit of low double controls rounding of the high double. -+ If hidden2 is '1' then round up hi and adjust lo (2nd mantissa) -+ plus change the sign of the low double to compensate. */ -+ if (hidden2) -+ { -+ hi++; -+ u.ieee.negative2 = !sign; -+ lo = (1ULL << 53) - lo; -+ } -+ /* The hidden bit of the lo mantissa is zero so we need to -+ normalize the it for the low double. Shift it left until the -+ hidden bit is '1' then adjust the 2nd exponent accordingly. */ -+ -+ if (sizeof (lo) == sizeof (long)) -+ lzcount = __builtin_clzl (lo); -+ else if ((lo >> 32) != 0) -+ lzcount = __builtin_clzl ((long) (lo >> 32)); -+ else -+ lzcount = __builtin_clzl ((long) lo) + 32; -+ lzcount = lzcount - 11; -+ if (lzcount > 0) -+ { -+ int expnt2 = u.ieee.exponent2 - lzcount; -+ if (expnt2 >= 1) -+ { -+ /* Not denormal. Normalize and set low exponent. */ -+ lo = lo << lzcount; -+ u.ieee.exponent2 = expnt2; -+ } -+ else -+ { -+ /* Is denormal. */ -+ lo = lo << (lzcount + expnt2); -+ u.ieee.exponent2 = 0; -+ } -+ } -+ } -+ else -+ { -+ u.ieee.negative2 = 0; -+ u.ieee.exponent2 = 0; -+ } -+ -+ u.ieee.mantissa3 = lo & ((1ULL << 32) - 1); -+ u.ieee.mantissa2 = (lo >> 32) & ((1ULL << 20) - 1); -+ u.ieee.mantissa1 = hi & ((1ULL << 32) - 1); -+ u.ieee.mantissa0 = (hi >> 32) & ((1ULL << 20) - 1); -+ return u.d; -+} -+ -+/* Handy utility functions to pack/unpack/cononicalize and find the nearbyint -+ of long double implemented as double double. */ -+static inline long double -+ldbl_pack (double a, double aa) -+{ -+ union ibm_extended_long_double u; -+ u.dd[0] = a; -+ u.dd[1] = aa; -+ return u.d; -+} -+ -+static inline void -+ldbl_unpack (long double l, double *a, double *aa) -+{ -+ union ibm_extended_long_double u; -+ u.d = l; -+ *a = u.dd[0]; -+ *aa = u.dd[1]; -+} -+ -+ -+/* Convert a finite long double to canonical form. -+ Does not handle +/-Inf properly. */ -+static inline void -+ldbl_canonicalize (double *a, double *aa) -+{ -+ double xh, xl; -+ -+ xh = *a + *aa; -+ xl = (*a - xh) + *aa; -+ *a = xh; -+ *aa = xl; -+} -+ -+/* Simple inline nearbyint (double) function . -+ Only works in the default rounding mode -+ but is useful in long double rounding functions. */ -+static inline double -+ldbl_nearbyint (double a) -+{ -+ double two52 = 0x10000000000000LL; -+ -+ if (__builtin_expect ((__builtin_fabs (a) < two52), 1)) -+ { -+ if (__builtin_expect ((a > 0.0), 1)) -+ { -+ a += two52; -+ a -= two52; -+ } -+ else if (__builtin_expect ((a < 0.0), 1)) -+ { -+ a = two52 - a; -+ a = -(a - two52); -+ } -+ } -+ return a; -+} ---- glibc-20060306T1239/sysdeps/ieee754/ldbl-128ibm/s_ceill.c 31 Jan 2006 18:56:23 -0000 1.2 -+++ glibc-20060306T1239-fedora/sysdeps/ieee754/ldbl-128ibm/s_ceill.c 7 Mar 2006 08:24:12 -0000 1.1.2.3 -@@ -19,7 +19,7 @@ - 02111-1307 USA. */ - - #include --#include -+#include - #include - #include - #include -@@ -34,87 +34,58 @@ __ceill (x) - long double x; - #endif - { -- static const double TWO52 = 4503599627370496.0L; -- int mode = fegetround(); -- union ibm_extended_long_double u; -+ double xh, xl, hi, lo; - -- u.d = x; -+ ldbl_unpack (x, &xh, &xl); - -- if (fabs (u.dd[0]) < TWO52) -+ /* Return Inf, Nan, +/-0 unchanged. */ -+ if (__builtin_expect (xh != 0.0 -+ && __builtin_isless (__builtin_fabs (xh), -+ __builtin_inf ()), 1)) - { -- double high = u.dd[0]; -- fesetround(FE_UPWARD); -- if (high > 0.0) -- { -- high += TWO52; -- high -= TWO52; -- if (high == -0.0) high = 0.0; -- } -- else if (high < 0.0) -- { -- high -= TWO52; -- high += TWO52; -- if (high == 0.0) high = -0.0; -- } -- u.dd[0] = high; -- u.dd[1] = 0.0; -- fesetround(mode); -- } -- else if (fabs (u.dd[1]) < TWO52 && u.dd[1] != 0.0) -- { -- double high, low; -- /* In this case we have to round the low double and handle any -- adjustment to the high double that may be caused by rounding -- (up). This is complicated by the fact that the high double -- may already be rounded and the low double may have the -- opposite sign to compensate. */ -- if (u.dd[0] > 0.0) -- { -- if (u.dd[1] > 0.0) -- { -- /* If the high/low doubles are the same sign then simply -- round the low double. */ -- high = u.dd[0]; -- low = u.dd[1]; -- } -- else if (u.dd[1] < 0.0) -- { -- /* Else the high double is pre rounded and we need to -- adjust for that. */ -- high = nextafter (u.dd[0], 0.0); -- low = u.dd[1] + (u.dd[0] - high); -- } -- fesetround(FE_UPWARD); -- low += TWO52; -- low -= TWO52; -- fesetround(mode); -- } -- else if (u.dd[0] < 0.0) -- { -- if (u.dd[1] < 0.0) -- { -- /* If the high/low doubles are the same sign then simply -- round the low double. */ -- high = u.dd[0]; -- low = u.dd[1]; -- } -- else if (u.dd[1] > 0.0) -- { -- /* Else the high double is pre rounded and we need to -- adjust for that. */ -- high = nextafter (u.dd[0], 0.0); -- low = u.dd[1] + (u.dd[0] - high); -- } -- fesetround(FE_UPWARD); -- low -= TWO52; -- low += TWO52; -- fesetround(mode); -- } -- u.dd[0] = high + low; -- u.dd[1] = high - u.dd[0] + low; -+ double orig_xh; -+ int save_round = fegetround (); -+ -+ /* Long double arithmetic, including the canonicalisation below, -+ only works in round-to-nearest mode. */ -+ fesetround (FE_TONEAREST); -+ -+ /* Convert the high double to integer. */ -+ orig_xh = xh; -+ hi = ldbl_nearbyint (xh); -+ -+ /* Subtract integral high part from the value. */ -+ xh -= hi; -+ ldbl_canonicalize (&xh, &xl); -+ -+ /* Now convert the low double, adjusted for any remainder from the -+ high double. */ -+ lo = ldbl_nearbyint (xh); -+ -+ /* Adjust the result when the remainder is non-zero. nearbyint -+ rounds values to the nearest integer, and values halfway -+ between integers to the nearest even integer. ceill must -+ round towards +Inf. */ -+ xh -= lo; -+ ldbl_canonicalize (&xh, &xl); -+ -+ if (xh > 0.0 || (xh == 0.0 && xl > 0.0)) -+ lo += 1.0; -+ -+ /* Ensure the final value is canonical. In certain cases, -+ rounding causes hi,lo calculated so far to be non-canonical. */ -+ xh = hi; -+ xl = lo; -+ ldbl_canonicalize (&xh, &xl); -+ -+ /* Ensure we return -0 rather than +0 when appropriate. */ -+ if (orig_xh < 0.0) -+ xh = -__builtin_fabs (xh); -+ -+ fesetround (save_round); - } - -- return u.d; -+ return ldbl_pack (xh, xl); - } - - long_double_symbol (libm, __ceill, ceill); ---- glibc-20060306T1239/sysdeps/ieee754/ldbl-128ibm/s_floorl.c 31 Jan 2006 18:56:23 -0000 1.2 -+++ glibc-20060306T1239-fedora/sysdeps/ieee754/ldbl-128ibm/s_floorl.c 7 Mar 2006 08:24:12 -0000 1.1.2.3 -@@ -19,7 +19,7 @@ - 02111-1307 USA. */ - - #include --#include -+#include - #include - #include - #include -@@ -34,86 +34,52 @@ __floorl (x) - long double x; - #endif - { -- static const double TWO52 = 4503599627370496.0L; -- int mode = fegetround(); -- union ibm_extended_long_double u; -+ double xh, xl, hi, lo; - -- u.d = x; -+ ldbl_unpack (x, &xh, &xl); - -- if (fabs (u.dd[0]) < TWO52) -+ /* Return Inf, Nan, +/-0 unchanged. */ -+ if (__builtin_expect (xh != 0.0 -+ && __builtin_isless (__builtin_fabs (xh), -+ __builtin_inf ()), 1)) - { -- double high = u.dd[0]; -- fesetround(FE_DOWNWARD); -- if (high > 0.0) -- { -- high += TWO52; -- high -= TWO52; -- if (high == -0.0) high = 0.0; -- } -- else if (high < 0.0) -- { -- high -= TWO52; -- high += TWO52; -- if (high == 0.0) high = -0.0; -- } -- u.dd[0] = high; -- u.dd[1] = 0.0; -- fesetround(mode); -- } -- else if (fabs (u.dd[1]) < TWO52 && u.dd[1] != 0.0) -- { -- double high, low; -- /* In this case we have to round the low double and handle any -- adjustment to the high double that may be caused by rounding -- (up). This is complicated by the fact that the high double -- may already be rounded and the low double may have the -- opposite sign to compensate. */ -- if (u.dd[0] > 0.0) -- { -- if (u.dd[1] > 0.0) -- { -- /* If the high/low doubles are the same sign then simply -- round the low double. */ -- high = u.dd[0]; -- low = u.dd[1]; -- } -- else if (u.dd[1] < 0.0) -- { -- /* Else the high double is pre rounded and we need to -- adjust for that. */ -- high = nextafter (u.dd[0], 0.0); -- low = u.dd[1] + (u.dd[0] - high); -- } -- fesetround(FE_DOWNWARD); -- low += TWO52; -- low -= TWO52; -- } -- else if (u.dd[0] < 0.0) -- { -- if (u.dd[1] < 0.0) -- { -- /* If the high/low doubles are the same sign then simply -- round the low double. */ -- high = u.dd[0]; -- low = u.dd[1]; -- } -- else if (u.dd[1] > 0.0) -- { -- /* Else the high double is pre rounded and we need to -- adjust for that. */ -- high = nextafter (u.dd[0], 0.0); -- low = u.dd[1] + (u.dd[0] - high); -- } -- fesetround(FE_DOWNWARD); -- low -= TWO52; -- low += TWO52; -- } -- fesetround(mode); -- u.dd[0] = high + low; -- u.dd[1] = high - u.dd[0] + low; -+ int save_round = fegetround (); -+ -+ /* Long double arithmetic, including the canonicalisation below, -+ only works in round-to-nearest mode. */ -+ fesetround (FE_TONEAREST); -+ -+ /* Convert the high double to integer. */ -+ hi = ldbl_nearbyint (xh); -+ -+ /* Subtract integral high part from the value. */ -+ xh -= hi; -+ ldbl_canonicalize (&xh, &xl); -+ -+ /* Now convert the low double, adjusted for any remainder from the -+ high double. */ -+ lo = ldbl_nearbyint (xh); -+ -+ /* Adjust the result when the remainder is non-zero. nearbyint -+ rounds values to the nearest integer, and values halfway -+ between integers to the nearest even integer. floorl must -+ round towards -Inf. */ -+ xh -= lo; -+ ldbl_canonicalize (&xh, &xl); -+ -+ if (xh < 0.0 || (xh == 0.0 && xl < 0.0)) -+ lo += -1.0; -+ -+ /* Ensure the final value is canonical. In certain cases, -+ rounding causes hi,lo calculated so far to be non-canonical. */ -+ xh = hi; -+ xl = lo; -+ ldbl_canonicalize (&xh, &xl); -+ -+ fesetround (save_round); - } - -- return u.d; -+ return ldbl_pack (xh, xl); - } - - long_double_symbol (libm, __floorl, floorl); ---- glibc-20060306T1239/sysdeps/ieee754/ldbl-128ibm/s_rintl.c 28 Jan 2006 00:07:25 -0000 1.1 -+++ glibc-20060306T1239-fedora/sysdeps/ieee754/ldbl-128ibm/s_rintl.c 7 Mar 2006 08:24:12 -0000 1.1.2.2 -@@ -22,6 +22,7 @@ - when it's coded in C. */ - - #include -+#include - #include - #include - #include -@@ -36,84 +37,83 @@ __rintl (x) - long double x; - #endif - { -- static const long double TWO52 = 4503599627370496.0L; -- union ibm_extended_long_double u; -- u.d = x; -+ double xh, xl, hi, lo; - -- if (fabs (u.dd[0]) < TWO52) -- { -- double high = u.dd[0]; -- if (high > 0.0) -- { -- high += TWO52; -- high -= TWO52; -- if (high == -0.0) high = 0.0; -- } -- else if (high < 0.0) -- { -- high -= TWO52; -- high += TWO52; -- if (high == 0.0) high = -0.0; -- } -- u.dd[0] = high; -- u.dd[1] = 0.0; -- } -- else if (fabs (u.dd[1]) < TWO52 && u.dd[1] != 0.0) -+ ldbl_unpack (x, &xh, &xl); -+ -+ /* Return Inf, Nan, +/-0 unchanged. */ -+ if (__builtin_expect (xh != 0.0 -+ && __builtin_isless (__builtin_fabs (xh), -+ __builtin_inf ()), 1)) - { -- double high, low, tau; -- /* In this case we have to round the low double and handle any -- adjustment to the high double that may be caused by rounding -- (up). This is complicated by the fact that the high double -- may already be rounded and the low double may have the -- opposite sign to compensate. */ -- if (u.dd[0] > 0.0) -- { -- if (u.dd[1] > 0.0) -- { -- /* If the high/low doubles are the same sign then simply -- round the low double. */ -- high = u.dd[0]; -- low = u.dd[1]; -- } -- else if (u.dd[1] < 0.0) -- { -- /* Else the high double is pre rounded and we need to -- adjust for that. */ -- -- tau = nextafter (u.dd[0], 0.0); -- tau = (u.dd[0] - tau) * 2.0; -- high = u.dd[0] - tau; -- low = u.dd[1] + tau; -- } -- low += TWO52; -- low -= TWO52; -- } -- else if (u.dd[0] < 0.0) -+ double orig_xh; -+ int save_round = fegetround (); -+ -+ /* Long double arithmetic, including the canonicalisation below, -+ only works in round-to-nearest mode. */ -+ fesetround (FE_TONEAREST); -+ -+ /* Convert the high double to integer. */ -+ orig_xh = xh; -+ hi = ldbl_nearbyint (xh); -+ -+ /* Subtract integral high part from the value. If the low double -+ happens to be exactly 0.5 or -0.5, you might think that this -+ subtraction could result in an incorrect conversion. For -+ instance, subtracting an odd number would cause this function -+ to round in the wrong direction. However, if we have a -+ canonical long double with the low double 0.5 or -0.5, then the -+ high double must be even. */ -+ xh -= hi; -+ ldbl_canonicalize (&xh, &xl); -+ -+ /* Now convert the low double, adjusted for any remainder from the -+ high double. */ -+ lo = ldbl_nearbyint (xh); -+ -+ xh -= lo; -+ ldbl_canonicalize (&xh, &xl); -+ -+ switch (save_round) - { -- if (u.dd[1] < 0.0) -- { -- /* If the high/low doubles are the same sign then simply -- round the low double. */ -- high = u.dd[0]; -- low = u.dd[1]; -- } -- else if (u.dd[1] > 0.0) -- { -- /* Else the high double is pre rounded and we need to -- adjust for that. */ -- tau = nextafter (u.dd[0], 0.0); -- tau = (u.dd[0] - tau) * 2.0; -- high = u.dd[0] - tau; -- low = u.dd[1] + tau; -- } -- low = TWO52 - low; -- low = -(low - TWO52); -+ case FE_TONEAREST: -+ if (xl > 0.0 && xh == 0.5) -+ lo += 1.0; -+ else if (xl < 0.0 && -xh == 0.5) -+ lo -= 1.0; -+ break; -+ -+ case FE_TOWARDZERO: -+ if (orig_xh < 0.0) -+ goto do_up; -+ /* Fall thru */ -+ -+ case FE_DOWNWARD: -+ if (xh < 0.0 || (xh == 0.0 && xl < 0.0)) -+ lo -= 1.0; -+ break; -+ -+ case FE_UPWARD: -+ do_up: -+ if (xh > 0.0 || (xh == 0.0 && xl > 0.0)) -+ lo += 1.0; -+ break; - } -- u.dd[0] = high + low; -- u.dd[1] = high - u.dd[0] + low; -+ -+ /* Ensure the final value is canonical. In certain cases, -+ rounding causes hi,lo calculated so far to be non-canonical. */ -+ xh = hi; -+ xl = lo; -+ ldbl_canonicalize (&xh, &xl); -+ -+ /* Ensure we return -0 rather than +0 when appropriate. */ -+ if (orig_xh < 0.0) -+ xh = -__builtin_fabs (xh); -+ -+ fesetround (save_round); - } - -- return u.d; -+ return ldbl_pack (xh, xl); - } - - long_double_symbol (libm, __rintl, rintl); ---- glibc-20060306T1239/sysdeps/ieee754/ldbl-128ibm/s_roundl.c 28 Jan 2006 00:07:25 -0000 1.1 -+++ glibc-20060306T1239-fedora/sysdeps/ieee754/ldbl-128ibm/s_roundl.c 7 Mar 2006 08:24:12 -0000 1.1.2.2 -@@ -22,7 +22,7 @@ - when it's coded in C. */ - - #include --#include -+#include - #include - #include - #include -@@ -37,84 +37,62 @@ __roundl (x) - long double x; - #endif - { -- static const double TWO52 = 4503599627370496.0; -- static const double HALF = 0.5; -- int mode = fegetround(); -- union ibm_extended_long_double u; -- u.d = x; -- -- if (fabs (u.dd[0]) < TWO52) -- { -- fesetround(FE_TOWARDZERO); -- if (u.dd[0] > 0.0) -- { -- u.dd[0] += HALF; -- u.dd[0] += TWO52; -- u.dd[0] -= TWO52; -- } -- else if (u.dd[0] < 0.0) -- { -- u.dd[0] = TWO52 - (u.dd[0] - HALF); -- u.dd[0] = -(u.dd[0] - TWO52); -- } -- u.dd[1] = 0.0; -- fesetround(mode); -- } -- else if (fabs (u.dd[1]) < TWO52 && u.dd[1] != 0.0) -+ double xh, xl, hi, lo; -+ -+ ldbl_unpack (x, &xh, &xl); -+ -+ /* Return Inf, Nan, +/-0 unchanged. */ -+ if (__builtin_expect (xh != 0.0 -+ && __builtin_isless (__builtin_fabs (xh), -+ __builtin_inf ()), 1)) - { -- double high, low; -- /* In this case we have to round the low double and handle any -- adjustment to the high double that may be caused by rounding -- (up). This is complicated by the fact that the high double -- may already be rounded and the low double may have the -- opposite sign to compensate. */ -- if (u.dd[0] > 0.0) -+ double orig_xh; -+ int save_round = fegetround (); -+ -+ /* Long double arithmetic, including the canonicalisation below, -+ only works in round-to-nearest mode. */ -+ fesetround (FE_TONEAREST); -+ -+ /* Convert the high double to integer. */ -+ orig_xh = xh; -+ hi = ldbl_nearbyint (xh); -+ -+ /* Subtract integral high part from the value. */ -+ xh -= hi; -+ ldbl_canonicalize (&xh, &xl); -+ -+ /* Now convert the low double, adjusted for any remainder from the -+ high double. */ -+ lo = ldbl_nearbyint (xh); -+ -+ /* Adjust the result when the remainder is exactly 0.5. nearbyint -+ rounds values halfway between integers to the nearest even -+ integer. roundl must round away from zero. -+ Also correct cases where nearbyint returns an incorrect value -+ for LO. */ -+ xh -= lo; -+ ldbl_canonicalize (&xh, &xl); -+ if (xh == 0.5) - { -- if (u.dd[1] > 0.0) -- { -- /* If the high/low doubles are the same sign then simply -- round the low double. */ -- high = u.dd[0]; -- low = u.dd[1]; -- } -- else if (u.dd[1] < 0.0) -- { -- /* Else the high double is pre rounded and we need to -- adjust for that. */ -- high = nextafter (u.dd[0], 0.0); -- low = u.dd[1] + (u.dd[0] - high); -- } -- fesetround(FE_TOWARDZERO); -- low += HALF; -- low += TWO52; -- low -= TWO52; -+ if (xl > 0.0 || (xl == 0.0 && orig_xh > 0.0)) -+ lo += 1.0; - } -- else if (u.dd[0] < 0.0) -+ else if (-xh == 0.5) - { -- if (u.dd[1] < 0.0) -- { -- /* If the high/low doubles are the same sign then simply -- round the low double. */ -- high = u.dd[0]; -- low = u.dd[1]; -- } -- else if (u.dd[1] > 0.0) -- { -- /* Else the high double is pre rounded and we need to -- adjust for that. */ -- high = nextafter (u.dd[0], 0.0); -- low = u.dd[1] + (u.dd[0] - high); -- } -- fesetround(FE_TOWARDZERO); -- low -= HALF; -- low = TWO52 - low; -- low = -(low - TWO52); -+ if (xl < 0.0 || (xl == 0.0 && orig_xh < 0.0)) -+ lo -= 1.0; - } -- fesetround(mode); -- u.dd[0] = high + low; -- u.dd[1] = high - u.dd[0] + low; -+ -+ /* Ensure the final value is canonical. In certain cases, -+ rounding causes hi,lo calculated so far to be non-canonical. */ -+ xh = hi; -+ xl = lo; -+ ldbl_canonicalize (&xh, &xl); -+ -+ fesetround (save_round); - } -- return u.d; -+ -+ return ldbl_pack (xh, xl); - } - - long_double_symbol (libm, __roundl, roundl); ---- glibc-20060306T1239/sysdeps/ieee754/ldbl-128ibm/s_truncl.c 28 Jan 2006 00:07:25 -0000 1.1 -+++ glibc-20060306T1239-fedora/sysdeps/ieee754/ldbl-128ibm/s_truncl.c 7 Mar 2006 08:24:12 -0000 1.1.2.2 -@@ -22,7 +22,7 @@ - when it's coded in C. */ - - #include --#include -+#include - #include - #include - #include -@@ -37,83 +37,66 @@ __truncl (x) - long double x; - #endif - { -- static const double TWO52 = 4503599627370496.0L; -- int mode = fegetround(); -- union ibm_extended_long_double u; -- -- u.d = x; -- -- if (fabs (u.dd[0]) < TWO52) -- { -- fesetround(FE_TOWARDZERO); -- if (u.dd[0] > 0.0) -- { -- u.dd[0] += TWO52; -- u.dd[0] -= TWO52; -- } -- else if (u.dd[0] < 0.0) -- { -- u.dd[0] = TWO52 - u.dd[0]; -- u.dd[0] = -(u.dd[0] - TWO52); -- } -- u.dd[1] = 0.0; -- fesetround(mode); -- } -- else if (fabs (u.dd[1]) < TWO52 && u.dd[1] != 0.0) -+ double xh, xl, hi, lo; -+ -+ ldbl_unpack (x, &xh, &xl); -+ -+ /* Return Inf, Nan, +/-0 unchanged. */ -+ if (__builtin_expect (xh != 0.0 -+ && __builtin_isless (__builtin_fabs (xh), -+ __builtin_inf ()), 1)) - { -- double high, low; -- /* In this case we have to round the low double and handle any -- adjustment to the high double that may be caused by rounding -- (up). This is complicated by the fact that the high double -- may already be rounded and the low double may have the -- opposite sign to compensate. */ -- if (u.dd[0] > 0.0) -+ double orig_xh; -+ int save_round = fegetround (); -+ -+ /* Long double arithmetic, including the canonicalisation below, -+ only works in round-to-nearest mode. */ -+ fesetround (FE_TONEAREST); -+ -+ /* Convert the high double to integer. */ -+ orig_xh = xh; -+ hi = ldbl_nearbyint (xh); -+ -+ /* Subtract integral high part from the value. */ -+ xh -= hi; -+ ldbl_canonicalize (&xh, &xl); -+ -+ /* Now convert the low double, adjusted for any remainder from the -+ high double. */ -+ lo = ldbl_nearbyint (xh); -+ -+ /* Adjust the result when the remainder is non-zero. nearbyint -+ rounds values to the nearest integer, and values halfway -+ between integers to the nearest even integer. floorl must -+ round towards -Inf. */ -+ xh -= lo; -+ ldbl_canonicalize (&xh, &xl); -+ -+ if (orig_xh < 0.0) - { -- if (u.dd[1] > 0.0) -- { -- /* If the high/low doubles are the same sign then simply -- round the low double. */ -- high = u.dd[0]; -- low = u.dd[1]; -- } -- else if (u.dd[1] < 0.0) -- { -- /* Else the high double is pre rounded and we need to -- adjust for that. */ -- high = nextafter (u.dd[0], 0.0); -- low = u.dd[1] + (u.dd[0] - high); -- } -- fesetround(FE_TOWARDZERO); -- low += TWO52; -- low -= TWO52; -- fesetround(mode); -+ if (xh > 0.0 || (xh == 0.0 && xl > 0.0)) -+ lo += 1.0; - } -- else if (u.dd[0] < 0.0) -+ else - { -- if (u.dd[1] < 0.0) -- { -- /* If the high/low doubles are the same sign then simply -- round the low double. */ -- high = u.dd[0]; -- low = u.dd[1]; -- } -- else if (u.dd[1] > 0.0) -- { -- /* Else the high double is pre rounded and we need to -- adjust for that. */ -- high = nextafter (u.dd[0], 0.0); -- low = u.dd[1] + (u.dd[0] - high); -- } -- fesetround(FE_TOWARDZERO); -- low = TWO52 - low; -- low = -(low - TWO52); -- fesetround(mode); -+ if (xh < 0.0 || (xh == 0.0 && xl < 0.0)) -+ lo -= 1.0; - } -- u.dd[0] = high + low; -- u.dd[1] = high - u.dd[0] + low; -+ -+ /* Ensure the final value is canonical. In certain cases, -+ rounding causes hi,lo calculated so far to be non-canonical. */ -+ xh = hi; -+ xl = lo; -+ ldbl_canonicalize (&xh, &xl); -+ -+ /* Ensure we return -0 rather than +0 when appropriate. */ -+ if (orig_xh < 0.0) -+ xh = -__builtin_fabs (xh); -+ -+ fesetround (save_round); - } - -- return u.d; -+ return ldbl_pack (xh, xl); - } - - long_double_symbol (libm, __truncl, truncl); ---- glibc-20060306T1239/sysdeps/powerpc/fpu/fegetround.c 6 Jul 2001 04:56:02 -0000 1.2 -+++ glibc-20060306T1239-fedora/sysdeps/powerpc/fpu/fegetround.c 7 Mar 2006 08:24:12 -0000 1.2.4.1 -@@ -23,7 +23,5 @@ - int - fegetround (void) - { -- int result; -- asm ("mcrfs 7,7 ; mfcr %0" : "=r"(result) : : "cr7"); \ -- return result & 3; -+ return __fegetround(); - } ---- glibc-20060306T1239/sysdeps/powerpc/fpu/fenv_libc.h 6 Jul 2001 04:56:02 -0000 1.2 -+++ glibc-20060306T1239-fedora/sysdeps/powerpc/fpu/fenv_libc.h 7 Mar 2006 08:24:12 -0000 1.2.4.1 -@@ -1,5 +1,5 @@ - /* Internal libc stuff for floating point environment routines. -- Copyright (C) 1997 Free Software Foundation, Inc. -+ Copyright (C) 1997, 2006 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 -@@ -54,6 +54,41 @@ typedef union - unsigned int l[2]; - } fenv_union_t; - -+ -+static inline int -+__fegetround (void) -+{ -+ int result; -+ asm volatile ("mcrfs 7,7\n\t" -+ "mfcr %0" : "=r"(result) : : "cr7"); -+ return result & 3; -+} -+#define fegetround() __fegetround() -+ -+static inline int -+__fesetround (int round) -+{ -+ if ((unsigned int) round < 2) -+ { -+ asm volatile ("mtfsb0 30"); -+ if ((unsigned int) round == 0) -+ asm volatile ("mtfsb0 31"); -+ else -+ asm volatile ("mtfsb1 31"); -+ } -+ else -+ { -+ asm volatile ("mtfsb1 30"); -+ if ((unsigned int) round == 2) -+ asm volatile ("mtfsb0 31"); -+ else -+ asm volatile ("mtfsb1 31"); -+ } -+ -+ return 0; -+} -+#define fesetround(mode) __fesetround(mode) -+ - /* Definitions of all the FPSCR bit numbers */ - enum { - FPSCR_FX = 0, /* exception summary */ ---- glibc-20060306T1239/sysdeps/powerpc/fpu/fesetround.c 8 Jul 2005 18:52:46 -0000 1.4 -+++ glibc-20060306T1239-fedora/sysdeps/powerpc/fpu/fesetround.c 7 Mar 2006 08:24:12 -0000 1.3.4.2 -@@ -1,5 +1,5 @@ - /* Set current rounding direction. -- Copyright (C) 1997, 2005 Free Software Foundation, Inc. -+ Copyright (C) 1997, 2005, 2006 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1997. - -@@ -20,23 +20,13 @@ - - #include - -+#undef fesetround - int - fesetround (int round) - { -- fenv_union_t u; -- - if ((unsigned int) round > 3) - return 1; -- -- /* Get the current state. */ -- u.fenv = fegetenv_register (); -- -- /* Set the relevant bits. */ -- u.l[1] = (u.l[1] & ~3) | (round & 3); -- -- /* Put the new state in effect. */ -- fesetenv_register (u.fenv); -- -- return 0; -+ else -+ return __fesetround(round); - } - libm_hidden_def (fesetround) ---- glibc-20060306T1239/sysdeps/powerpc/fpu/math_ldbl.h 1 Jan 1970 00:00:00 -0000 -+++ glibc-20060306T1239-fedora/sysdeps/powerpc/fpu/math_ldbl.h 7 Mar 2006 08:24:12 -0000 1.1.2.1 -@@ -0,0 +1,189 @@ -+#ifndef _MATH_PRIVATE_H_ -+#error "Never use directly; include instead." -+#endif -+ -+#include -+#include -+ -+static inline void -+ldbl_extract_mantissa (int64_t *hi64, u_int64_t *lo64, int *exp, long double x) -+{ -+ /* We have 105 bits of mantissa plus one implicit digit. Since -+ 106 bits are representable we use the first implicit digit for -+ the number before the decimal point and the second implicit bit -+ as bit 53 of the mantissa. */ -+ unsigned long long hi, lo; -+ int ediff; -+ union ibm_extended_long_double eldbl; -+ eldbl.d = x; -+ *exp = eldbl.ieee.exponent - IBM_EXTENDED_LONG_DOUBLE_BIAS; -+ -+ lo = ((long long)eldbl.ieee.mantissa2 << 32) | eldbl.ieee.mantissa3; -+ hi = ((long long)eldbl.ieee.mantissa0 << 32) | eldbl.ieee.mantissa1; -+ /* If the lower double is not a denomal or zero then set the hidden -+ 53rd bit. */ -+ if (eldbl.ieee.exponent2 > 0x001) -+ { -+ lo |= (1ULL << 52); -+ lo = lo << 7; /* pre-shift lo to match ieee854. */ -+ /* The lower double is normalized separately from the upper. We -+ may need to adjust the lower manitissa to reflect this. */ -+ ediff = eldbl.ieee.exponent - eldbl.ieee.exponent2; -+ if (ediff > 53) -+ lo = lo >> (ediff-53); -+ } -+ hi |= (1ULL << 52); -+ -+ if ((eldbl.ieee.negative != eldbl.ieee.negative2) -+ && ((eldbl.ieee.exponent2 != 0) && (lo != 0LL))) -+ { -+ hi--; -+ lo = (1ULL << 60) - lo; -+ if (hi < (1ULL << 52)) -+ { -+ /* we have a borrow from the hidden bit, so shift left 1. */ -+ hi = (hi << 1) | (lo >> 59); -+ lo = 0xfffffffffffffffLL & (lo << 1); -+ *exp = *exp - 1; -+ } -+ } -+ *lo64 = (hi << 60) | lo; -+ *hi64 = hi >> 4; -+} -+ -+static inline long double -+ldbl_insert_mantissa (int sign, int exp, int64_t hi64, u_int64_t lo64) -+{ -+ union ibm_extended_long_double u; -+ unsigned long hidden2, lzcount; -+ unsigned long long hi, lo; -+ -+ u.ieee.negative = sign; -+ u.ieee.negative2 = sign; -+ u.ieee.exponent = exp + IBM_EXTENDED_LONG_DOUBLE_BIAS; -+ u.ieee.exponent2 = exp-53 + IBM_EXTENDED_LONG_DOUBLE_BIAS; -+ /* Expect 113 bits (112 bits + hidden) right justified in two longs. -+ The low order 53 bits (52 + hidden) go into the lower double */ -+ lo = (lo64 >> 7)& ((1ULL << 53) - 1); -+ hidden2 = (lo64 >> 59) & 1ULL; -+ /* The high order 53 bits (52 + hidden) go into the upper double */ -+ hi = (lo64 >> 60) & ((1ULL << 11) - 1); -+ hi |= (hi64 << 4); -+ -+ if (lo != 0LL) -+ { -+ /* hidden2 bit of low double controls rounding of the high double. -+ If hidden2 is '1' then round up hi and adjust lo (2nd mantissa) -+ plus change the sign of the low double to compensate. */ -+ if (hidden2) -+ { -+ hi++; -+ u.ieee.negative2 = !sign; -+ lo = (1ULL << 53) - lo; -+ } -+ /* The hidden bit of the lo mantissa is zero so we need to -+ normalize the it for the low double. Shift it left until the -+ hidden bit is '1' then adjust the 2nd exponent accordingly. */ -+ -+ if (sizeof (lo) == sizeof (long)) -+ lzcount = __builtin_clzl (lo); -+ else if ((lo >> 32) != 0) -+ lzcount = __builtin_clzl ((long) (lo >> 32)); -+ else -+ lzcount = __builtin_clzl ((long) lo) + 32; -+ lzcount = lzcount - 11; -+ if (lzcount > 0) -+ { -+ int expnt2 = u.ieee.exponent2 - lzcount; -+ if (expnt2 >= 1) -+ { -+ /* Not denormal. Normalize and set low exponent. */ -+ lo = lo << lzcount; -+ u.ieee.exponent2 = expnt2; -+ } -+ else -+ { -+ /* Is denormal. */ -+ lo = lo << (lzcount + expnt2); -+ u.ieee.exponent2 = 0; -+ } -+ } -+ } -+ else -+ { -+ u.ieee.negative2 = 0; -+ u.ieee.exponent2 = 0; -+ } -+ -+ u.ieee.mantissa3 = lo & ((1ULL << 32) - 1); -+ u.ieee.mantissa2 = (lo >> 32) & ((1ULL << 20) - 1); -+ u.ieee.mantissa1 = hi & ((1ULL << 32) - 1); -+ u.ieee.mantissa0 = (hi >> 32) & ((1ULL << 20) - 1); -+ return u.d; -+} -+ -+/* gcc generates disgusting code to pack and unpack long doubles. -+ This tells gcc that pack/unpack is really a nop. We use fr1/fr2 -+ because those are the regs used to pass/return a single -+ long double arg. */ -+static inline long double -+ldbl_pack (double a, double aa) -+{ -+ register long double x __asm__ ("fr1"); -+ register double xh __asm__ ("fr1"); -+ register double xl __asm__ ("fr2"); -+ xh = a; -+ xl = aa; -+ __asm__ ("" : "=f" (x) : "f" (xh), "f" (xl)); -+ return x; -+} -+ -+static inline void -+ldbl_unpack (long double l, double *a, double *aa) -+{ -+ register long double x __asm__ ("fr1"); -+ register double xh __asm__ ("fr1"); -+ register double xl __asm__ ("fr2"); -+ x = l; -+ __asm__ ("" : "=f" (xh), "=f" (xl) : "f" (x)); -+ *a = xh; -+ *aa = xl; -+} -+ -+ -+/* Convert a finite long double to canonical form. -+ Does not handle +/-Inf properly. */ -+static inline void -+ldbl_canonicalize (double *a, double *aa) -+{ -+ double xh, xl; -+ -+ xh = *a + *aa; -+ xl = (*a - xh) + *aa; -+ *a = xh; -+ *aa = xl; -+} -+ -+/* Simple inline nearbyint (double) function . -+ Only works in the default rounding mode -+ but is useful in long double rounding functions. */ -+static inline double -+ldbl_nearbyint (double a) -+{ -+ double two52 = 0x10000000000000LL; -+ -+ if (__builtin_expect ((__builtin_fabs (a) < two52), 1)) -+ { -+ if (__builtin_expect ((a > 0.0), 1)) -+ { -+ a += two52; -+ a -= two52; -+ } -+ else if (__builtin_expect ((a < 0.0), 1)) -+ { -+ a = two52 - a; -+ a = -(a - two52); -+ } -+ } -+ return a; -+} ---- glibc-20060306T1239/sysdeps/powerpc/powerpc64/fpu/s_rintl.S 28 Jan 2006 00:07:31 -0000 1.1 -+++ glibc-20060306T1239-fedora/sysdeps/powerpc/powerpc64/fpu/s_rintl.S 1 Jan 1970 00:00:00 -0000 -@@ -1,113 +0,0 @@ --/* Round to int long double floating-point values. -- IBM extended format long double version. -- Copyright (C) 2004, 2006 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. */ -- --/* This has been coded in assembler because GCC makes such a mess of it -- when it's coded in C. */ -- --#include --#include -- -- .section ".toc","aw" --.LC0: /* 2**52 */ -- .tc FD_43300000_0[TC],0x4330000000000000 -- .section ".text" -- --ENTRY (__rintl) -- lfd fp13,.LC0@toc(2) -- fabs fp0,fp1 -- fsub fp12,fp13,fp13 /* generate 0.0 */ -- fabs fp9,fp2 -- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */ -- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */ -- bnl- cr7,.L2 -- fmr fp2,fp12 -- bng- cr6,.L1 -- fadd fp1,fp1,fp13 /* x+= TWO52; */ -- fsub fp1,fp1,fp13 /* x-= TWO52; */ -- fabs fp1,fp1 /* if (x == 0.0) */ -- blr /* x = 0.0; */ --.L1: -- bnllr- cr6 /* if (x < 0.0) */ -- fsub fp1,fp1,fp13 /* x-= TWO52; */ -- fadd fp1,fp1,fp13 /* x+= TWO52; */ -- fnabs fp1,fp1 /* if (x == 0.0) */ -- blr /* x = -0.0; */ -- --/* The high double is > TWO52 so we need to round the low double and -- perhaps the high double. In this case we have to round the low -- double and handle any adjustment to the high double that may be -- caused by rounding (up). This is complicated by the fact that the -- high double may already be rounded and the low double may have the -- opposite sign to compensate.This gets a bit tricky so we use the -- following algorithm: -- -- tau = floor(x_high/TWO52); -- x0 = x_high - tau; -- x1 = x_low + tau; -- r1 = rint(x1); -- y_high = x0 + r1; -- y_low = x0 - y_high + r1; -- return y; */ --.L2: -- fcmpu cr7,fp9,fp13 /* if (|x_low| > TWO52) */ -- fcmpu cr0,fp9,fp12 /* || (|x_low| == 0.0) */ -- fcmpu cr5,fp2,fp12 /* if (x_low > 0.0) */ -- bgelr- cr7 /* return x; */ -- beqlr- cr0 -- fdiv fp8,fp1,fp13 /* x_high/TWO52 */ -- -- bng- cr6,.L6 /* if (x > 0.0) */ -- fctidz fp0,fp8 -- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */ -- fadd fp8,fp8,fp8 /* tau++; Make tau even */ -- bng cr5,.L4 /* if (x_low > 0.0) */ -- fmr fp3,fp1 -- fmr fp4,fp2 -- b .L5 --.L4: /* if (x_low < 0.0) */ -- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */ -- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */ --.L5: -- fadd fp5,fp4,fp13 /* r1 = x1 + TWO52; */ -- fsub fp5,fp5,fp13 /* r1 = r1 - TWO52; */ -- b .L9 --.L6: /* if (x < 0.0) */ -- fctidz fp0,fp8 -- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */ -- fadd fp8,fp8,fp8 /* tau++; Make tau even */ -- bnl cr5,.L7 /* if (x_low < 0.0) */ -- fmr fp3,fp1 -- fmr fp4,fp2 -- b .L8 --.L7: /* if (x_low > 0.0) */ -- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */ -- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */ --.L8: -- fsub fp5,fp13,fp4 /* r1 = TWO52 - x1; */ -- fsub fp0,fp5,fp13 /* r1 = - (r1 - TWO52); */ -- fneg fp5,fp0 --.L9: -- fadd fp1,fp3,fp5 /* y_high = x0 + r1; */ -- fsub fp2,fp3,fp1 /* y_low = x0 - y_high + r1; */ -- fadd fp2,fp2,fp5 -- blr --END (__rintl) -- --long_double_symbol (libm, __rintl, rintl) ---- glibc-20060306T1239/sysdeps/unix/nice.c 28 Sep 2002 19:13:13 -0000 1.6 -+++ glibc-20060306T1239-fedora/sysdeps/unix/nice.c 22 Sep 2004 21:21:08 -0000 1.6.2.1 +--- glibc-20060328T0900/sysdeps/unix/nice.c 28 Sep 2002 19:13:13 -0000 1.6 ++++ glibc-20060328T0900-fedora/sysdeps/unix/nice.c 22 Sep 2004 21:21:08 -0000 1.6.2.1 @@ -41,7 +41,12 @@ nice (int incr) __set_errno (save); } @@ -5100,8 +3051,8 @@ if (result != -1) return getpriority (PRIO_PROCESS, 0); else ---- glibc-20060306T1239/sysdeps/unix/sysv/linux/dl-osinfo.h 8 Jan 2006 08:21:15 -0000 1.22 -+++ glibc-20060306T1239-fedora/sysdeps/unix/sysv/linux/dl-osinfo.h 9 Jan 2006 21:55:08 -0000 1.14.2.8 +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/dl-osinfo.h 8 Jan 2006 08:21:15 -0000 1.22 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/dl-osinfo.h 9 Jan 2006 21:55:08 -0000 1.14.2.8 @@ -18,12 +18,15 @@ 02111-1307 USA. */ @@ -5150,8 +3101,8 @@ + ret ^= stk; return ret; } ---- glibc-20060306T1239/sysdeps/unix/sysv/linux/futimesat.c 3 Feb 2006 05:26:34 -0000 1.6 -+++ glibc-20060306T1239-fedora/sysdeps/unix/sysv/linux/futimesat.c 3 Feb 2006 09:43:55 -0000 1.1.2.7 +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/futimesat.c 3 Feb 2006 05:26:34 -0000 1.6 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/futimesat.c 3 Feb 2006 09:43:55 -0000 1.1.2.7 @@ -37,14 +37,14 @@ futimesat (fd, file, tvp) { int result; @@ -5194,8 +3145,8 @@ { size_t filelen = strlen (file); static const char procfd[] = "/proc/self/fd/%d/%s"; ---- glibc-20060306T1239/sysdeps/unix/sysv/linux/paths.h 15 Nov 2000 23:06:47 -0000 1.11 -+++ glibc-20060306T1239-fedora/sysdeps/unix/sysv/linux/paths.h 22 Sep 2004 21:21:08 -0000 1.11.4.1 +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/paths.h 15 Nov 2000 23:06:47 -0000 1.11 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/paths.h 22 Sep 2004 21:21:08 -0000 1.11.4.1 @@ -61,7 +61,7 @@ #define _PATH_TTY "/dev/tty" #define _PATH_UNIX "/boot/vmlinux" @@ -5205,8 +3156,8 @@ #define _PATH_WTMP "/var/log/wtmp" /* Provide trailing slash, since mostly used for building pathnames. */ ---- glibc-20060306T1239/sysdeps/unix/sysv/linux/tcsetattr.c 10 Sep 2003 19:16:07 -0000 1.16 -+++ glibc-20060306T1239-fedora/sysdeps/unix/sysv/linux/tcsetattr.c 22 Sep 2004 21:21:08 -0000 1.16.2.1 +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/tcsetattr.c 10 Sep 2003 19:16:07 -0000 1.16 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/tcsetattr.c 22 Sep 2004 21:21:08 -0000 1.16.2.1 @@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios { struct __kernel_termios k_termios; @@ -5252,8 +3203,30 @@ + return retval; } libc_hidden_def (tcsetattr) ---- glibc-20060306T1239/sysdeps/unix/sysv/linux/i386/dl-cache.h 1 Jan 1970 00:00:00 -0000 -+++ glibc-20060306T1239-fedora/sysdeps/unix/sysv/linux/i386/dl-cache.h 22 Sep 2004 21:21:08 -0000 1.1.2.1 +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h 24 Mar 2006 16:36:38 -0000 1.20 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h 20 Jun 2005 15:58:39 -0000 1.18.2.1 +@@ -1,5 +1,5 @@ + /* O_*, F_*, FD_* bit values for Linux. +- Copyright (C) 1995-2000, 2004, 2005, 2006 Free Software Foundation, Inc. ++ Copyright (C) 1995-1999, 2000, 2004, 2005 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -173,12 +173,6 @@ struct flock64 + # define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ + #endif + +-/* Linux-specific operations for posix_fadvise. */ +-#ifdef __USE_GNU +-# define LINUX_FADV_ASYNC_WRITE 32 /* Start writeout on range. */ +-# define LINUX_FADV_WRITE_WAIT 33 /* Wait upon writeout to range. */ +-#endif +- + __BEGIN_DECLS + + /* Provide kernel hint to read ahead. */ +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/i386/dl-cache.h 1 Jan 1970 00:00:00 -0000 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/i386/dl-cache.h 22 Sep 2004 21:21:08 -0000 1.1.2.1 @@ -0,0 +1,59 @@ +/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. + Copyright (C) 2004 Free Software Foundation, Inc. @@ -5314,8 +3287,30 @@ + } while (0) + +#include_next ---- glibc-20060306T1239/sysdeps/unix/sysv/linux/ia64/dl-cache.h 6 Jul 2001 04:56:17 -0000 1.2 -+++ glibc-20060306T1239-fedora/sysdeps/unix/sysv/linux/ia64/dl-cache.h 22 Sep 2004 21:21:09 -0000 1.2.4.1 +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/i386/bits/fcntl.h 24 Mar 2006 16:36:38 -0000 1.14 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/i386/bits/fcntl.h 23 Aug 2004 07:28:44 -0000 1.13 +@@ -1,5 +1,5 @@ + /* O_*, F_*, FD_* bit values for Linux. +- Copyright (C) 1995, 1996, 1997, 1998, 2000, 2004, 2006 ++ Copyright (C) 1995, 1996, 1997, 1998, 2000, 2004 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -180,12 +180,6 @@ struct flock64 + # define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ + #endif + +-/* Linux-specific operations for posix_fadvise. */ +-#ifdef __USE_GNU +-# define LINUX_FADV_ASYNC_WRITE 32 /* Start writeout on range. */ +-# define LINUX_FADV_WRITE_WAIT 33 /* Wait upon writeout to range. */ +-#endif +- + __BEGIN_DECLS + + /* Provide kernel hint to read ahead. */ +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/ia64/dl-cache.h 6 Jul 2001 04:56:17 -0000 1.2 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/ia64/dl-cache.h 22 Sep 2004 21:21:09 -0000 1.2.4.1 @@ -22,4 +22,31 @@ #define _dl_cache_check_flags(flags) \ ((flags) == _DL_CACHE_DEFAULT_ID) @@ -5348,24 +3343,156 @@ + } while (0) + #include_next ---- glibc-20060306T1239/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20060306T1239-fedora/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c 22 Sep 2004 21:21:09 -0000 1.1.2.1 +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c 1 Jan 1970 00:00:00 -0000 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c 22 Sep 2004 21:21:09 -0000 1.1.2.1 @@ -0,0 +1,5 @@ +#ifdef IS_IN_ldconfig +#include +#else +#include +#endif ---- glibc-20060306T1239/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h 1 Jan 1970 00:00:00 -0000 -+++ glibc-20060306T1239-fedora/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h 22 Sep 2004 21:21:09 -0000 1.1.2.1 +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h 1 Jan 1970 00:00:00 -0000 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h 22 Sep 2004 21:21:09 -0000 1.1.2.1 @@ -0,0 +1,5 @@ +#ifdef IS_IN_ldconfig +#include +#else +#include +#endif ---- glibc-20060306T1239/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed 17 Jan 2002 06:49:28 -0000 1.2 -+++ glibc-20060306T1239-fedora/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed 22 Sep 2004 21:21:09 -0000 1.2.2.1 +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed 17 Jan 2002 06:49:28 -0000 1.2 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed 22 Sep 2004 21:21:09 -0000 1.2.2.1 @@ -1 +1 @@ -s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 \2\3"_ +s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 /emul/ia32-linux\2\3"_ +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h 24 Mar 2006 16:36:38 -0000 1.9 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h 23 Aug 2004 07:28:44 -0000 1.8 +@@ -1,5 +1,5 @@ + /* O_*, F_*, FD_* bit values for Linux/IA64. +- Copyright (C) 1999, 2000, 2004, 2006 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2000, 2004 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 +@@ -174,12 +174,6 @@ struct flock64 + # define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ + #endif + +-/* Linux-specific operations for posix_fadvise. */ +-#ifdef __USE_GNU +-# define LINUX_FADV_ASYNC_WRITE 32 /* Start writeout on range. */ +-# define LINUX_FADV_WRITE_WAIT 33 /* Wait upon writeout to range. */ +-#endif +- + __BEGIN_DECLS + + /* Provide kernel hint to read ahead. */ +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h 24 Mar 2006 16:36:38 -0000 1.13 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h 23 Aug 2004 07:28:45 -0000 1.12 +@@ -1,5 +1,5 @@ + /* O_*, F_*, FD_* bit values for Linux/PowerPC. +- Copyright (C) 1995, 1996, 1997, 1998, 2000, 2003, 2004, 2006 ++ Copyright (C) 1995, 1996, 1997, 1998, 2000, 2003, 2004 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -180,12 +180,6 @@ struct flock64 + # define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ + #endif + +-/* Linux-specific operations for posix_fadvise. */ +-#ifdef __USE_GNU +-# define LINUX_FADV_ASYNC_WRITE 32 /* Start writeout on range. */ +-# define LINUX_FADV_WRITE_WAIT 33 /* Wait upon writeout to range. */ +-#endif +- + __BEGIN_DECLS + + /* Provide kernel hint to read ahead. */ +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/s390/bits/fcntl.h 24 Mar 2006 16:36:38 -0000 1.10 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/s390/bits/fcntl.h 23 Aug 2004 07:28:45 -0000 1.9 +@@ -1,5 +1,5 @@ + /* O_*, F_*, FD_* bit values for Linux. +- Copyright (C) 2000, 2001, 2002, 2004, 2006 Free Software Foundation, Inc. ++ Copyright (C) 2000, 2001, 2002, 2004 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 +@@ -199,12 +199,6 @@ struct flock64 + # endif + #endif + +-/* Linux-specific operations for posix_fadvise. */ +-#ifdef __USE_GNU +-# define LINUX_FADV_ASYNC_WRITE 32 /* Start writeout on range. */ +-# define LINUX_FADV_WRITE_WAIT 33 /* Wait upon writeout to range. */ +-#endif +- + __BEGIN_DECLS + + /* Provide kernel hint to read ahead. */ +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/sh/bits/fcntl.h 24 Mar 2006 16:36:38 -0000 1.7 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/sh/bits/fcntl.h 1 Mar 2006 06:55:56 -0000 1.5.2.1 +@@ -1,5 +1,5 @@ + /* O_*, F_*, FD_* bit values for Linux. +- Copyright (C) 1995, 1996, 1997, 1998, 2000, 2004, 2006 ++ Copyright (C) 1995, 1996, 1997, 1998, 2000, 2004 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -180,12 +180,6 @@ struct flock64 + # define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ + #endif + +-/* Linux-specific operations for posix_fadvise. */ +-#ifdef __USE_GNU +-# define LINUX_FADV_ASYNC_WRITE 32 /* Start writeout on range. */ +-# define LINUX_FADV_WRITE_WAIT 33 /* Wait upon writeout to range. */ +-#endif +- + __BEGIN_DECLS + + /* Provide kernel hint to read ahead. */ +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h 24 Mar 2006 16:36:38 -0000 1.23 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h 23 Aug 2004 07:28:46 -0000 1.22 +@@ -1,5 +1,5 @@ + /* O_*, F_*, FD_* bit values for Linux/SPARC. +- Copyright (C) 1995, 1996, 1997, 1998, 2000, 2003, 2004, 2006 ++ Copyright (C) 1995, 1996, 1997, 1998, 2000, 2003, 2004 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -199,12 +199,6 @@ struct flock64 + # define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ + #endif + +-/* Linux-specific operations for posix_fadvise. */ +-#ifdef __USE_GNU +-# define LINUX_FADV_ASYNC_WRITE 32 /* Start writeout on range. */ +-# define LINUX_FADV_WRITE_WAIT 33 /* Wait upon writeout to range. */ +-#endif +- + __BEGIN_DECLS + + /* Provide kernel hint to read ahead. */ +--- glibc-20060328T0900/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h 24 Mar 2006 16:36:37 -0000 1.7 ++++ glibc-20060328T0900-fedora/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h 23 Aug 2004 07:28:46 -0000 1.6 +@@ -1,5 +1,5 @@ + /* O_*, F_*, FD_* bit values for Linux/x86-64. +- Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc. ++ Copyright (C) 2001, 2002, 2004 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 +@@ -194,12 +194,6 @@ struct flock64 + # define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ + #endif + +-/* Linux-specific operations for posix_fadvise. */ +-#ifdef __USE_GNU +-# define LINUX_FADV_ASYNC_WRITE 32 /* Start writeout on range. */ +-# define LINUX_FADV_WRITE_WAIT 33 /* Wait upon writeout to range. */ +-#endif +- + __BEGIN_DECLS + + /* Provide kernel hint to read ahead. */ diff --git a/glibc.spec b/glibc.spec index e0140c1..5bbdc14 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,6 +1,6 @@ -%define glibcdate 20060306T1239 +%define glibcdate 20060328T0900 %define glibcname glibc -%define glibcsrcdir glibc-20060306T1239 +%define glibcsrcdir glibc-20060328T0900 %define glibc_release_tarballs 0 %define glibcversion 2.4 %define glibcrelease 5 @@ -59,10 +59,6 @@ Conflicts: gcc4 <= 4.0.0-0.6 %ifarch x86_64 %{ix86} # Need gdb that understands DW_CFA_val_expression Conflicts: gdb < 6.3.0.0-1.111 -# XXX new gdb is broken, >= -1.111 is adequate if not great (no crashes) -# Need gdb that understands DW_CFA_val_expression and handles two frames -# with the same entry point and CFA, but different PC -#Conflicts: gdb < 6.3.0.0-1.115 %endif # Earlier shadow-utils packages had too restrictive permissions on # /etc/default @@ -188,10 +184,7 @@ Autoreq: true %description -n nscd Nscd caches name service lookups and can dramatically improve -performance with NIS+, and may help with DNS as well. Note that you -can't use nscd with 2.0 kernels because of bugs in the kernel-side -thread support. Unfortunately, nscd happens to hit these bugs -particularly hard. +performance with NIS+, and may help with DNS as well. %package utils Summary: Development utilities from GNU C library @@ -1348,7 +1341,15 @@ rm -f *.filelist* %endif %changelog -* Tue Mar 7 2006 Roland McGrath 2.4-5 +* Tue Mar 28 2006 Jakub Jelinek 2.4-5 +- update from CVS + - pshared robust mutex support + - fix btowc and bwtoc in C++ (#186410) + - fix NIS+ (#186592) + - don't declare __wcsto*l_internal for non-GCC or if not -O1+ (#185667) +- don't mention nscd failures on 2.0 kernels (#185335) + +* Tue Mar 7 2006 Roland McGrath 2.4-4 - back up %%{ix86} gdb conflicts to < 6.3.0.0-1.111 * Tue Mar 7 2006 Jakub Jelinek 2.4-3 diff --git a/sources b/sources index 7496d6e..cc3125f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -c3bd549b42829d73aad876a10435ae73 glibc-20060306T1239.tar.bz2 -f4732d93d3749c864b1909e9f9d39524 glibc-fedora-20060306T1239.tar.bz2 +76218e49e12649e83d18f0cb82395ede glibc-20060328T0900.tar.bz2 +f691b4f8f607db7bfbf75dc766651856 glibc-fedora-20060328T0900.tar.bz2