[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Kernel IEEE Math Completion (everything is zeroed!?!)



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


Reply to: