On Wed, Jun 14, 2006 at 10:21:00AM -0400, Tyson Whitehead wrote: > I was fooling around on my Alpha and just noticed that all the special IEEE > numbers (infs, nans, and denormals) are now being replaced by zeros. > For example, > #include <stdio.h> > > int main() { > double value1; > double value2; > printf("Please enter the num: "); > scanf("%lf",&value1); > printf("Please enter the den: "); > scanf("%lf",&value2); > printf("\n%g/%g = %g\n",value1,value2,value1/value2); > return 0; > } > saved to "div.c" and compiled with "gcc -o div -lm -Wall div.c" gives > 0/0 = 0 (should be nan) > 1/0 = 0 (should be inf) > 1e-320/2 = 0 (should be 5e-321: 1e-320 is a denormalized) > Dumping the generated code with "objdump -d div | less" shows gcc is > generating all the required trap instructions and su extentions on the > floating point operations. This leaves me wondering if something has changed > in the IEEE floating point fixup code in newer kernels. > Unfortunately, I'm stuck at 2.6.15 or greater due to new udev requirements > (and only 2.6.16 is available), but is there anyone else out there running an > older kernel (maybe even 2.4) that could give this a try? FWIW, I've tested on my ev56 with 2.6.15 and 2.6.16 and see the same behavior as you. I have no idea about earlier kernels, I don't have enough space on /boot to install random old kernels for testing; but perhaps you could try booting from the sarge installer and mounting your partition for a test? -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. vorlon@debian.org http://www.debian.org/
Attachment:
signature.asc
Description: Digital signature