This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Tue, Nov 23, 2004 at 09:33:12PM -0800, David Mosberger wrote: > The latest ia64 libm update patch is now available at: > > ftp://ftp.hpl.hp.com/pub/linux-ia64/libc-intel-libm-v2.1-update-041123.diff.gz > md5sum: 51f780c07a7467281d038f49de33c8d9 It seems that this update broke nextafterl: #include <float.h> #include <math.h> #include <stdlib.h> int main (void) { union { long double d; unsigned long int x[2]; } v; v.d = nextafterl (nextafterl (LDBL_MIN, LDBL_MIN / 2.0), LDBL_MIN); if (v.x[0] != 0x8000000000000000L) abort (); return 0; } or: #include <float.h> #include <math.h> #include <stdlib.h> int main (void) { if (nextafterl (nextafterl (LDBL_MIN, LDBL_MIN / 2.0), LDBL_MIN) != LDBL_MIN) abort (); return 0; } used to work before but now fails. The first call to nextafterl is with: f8 0 (raw 0x000000000000c0018000000000000000) f9 0 (raw 0x00000000000000004000000000000000) and returns on current CVS glibc: f8 0 (raw 0x000000000000c0007fffffffffffffff) while on stock 2.3.4: f8 0 (raw 0x00000000000000007fffffffffffffff) The second call gets with CVS glibc: f8 0 (raw 0x000000000000c0007fffffffffffffff) f9 0 (raw 0x000000000000c0018000000000000000) but on 2.3.4: f8 0 (raw 0x00000000000000007fffffffffffffff) f9 0 (raw 0x000000000000c0018000000000000000) and returns on CVS glibc: f8 0 (raw 0x00000000000000004000000000000000) while on 2.3.4: f8 0 (raw 0x000000000000c0018000000000000000) 0x000000000000c0007fffffffffffffff doesn't sound like correct denormal format. The above test comes from test-misc.c, but there for some reason GCC < 4 normalizes the values or something, but GCC 4 does not. But the above distilled testcases fail with CVS glibc no matter if -O0 or -O2 and no matter if using GCC 3.3.4, 3.4.3 or 4.0pre and pass when moving the unmodified binaries to older glibc. Jakub
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |