Subject: FPU inexact flag always set for dynamic programs

From: Kjeld Borch Egevang <[email-masked]>
Date: Thu, 14 Mar 2002 14:52:15 +0100 (CET)

Hi all.

I've discovered that the inexact bit is always set at startup for a 
program. My test program fenvtest.c:

#include <fenv.h>
#include <stdio.h>

int main()
{
        int retval;

        retval = fetestexcept(FE_ALL_EXCEPT);
        printf("%d\n", retval);
        return 0;
}

And when I run:

cc -o fenvtest fenvtest.c -lm
./fenvtest 

I get:

4

and:

cc -o fenvtest fenvtest.c -lm -static
./fenvtest

I get:

0

Is there something in /lib/ld.so.1 that invalidates the FP csr?

/Kjeld

-- 
_    _ ____  ___                       Mailto:[email-masked]
|\  /|||___)(___    MIPS Denmark       Direct: +45 44 86 55 85
| \/ |||    ____)   Lautrupvang 4 B    Switch: +45 44 86 55 55
  TECHNOLOGIES      DK-2750 Ballerup   Fax...: +45 44 86 55 56
                    Denmark            http://www.mips.com/

---

From: Zhang Fuxin <[email-masked]>
Date: Thu, 14 Mar 2002 23:52:54 +0800

hi,
>Is there something in /lib/ld.so.1 that invalidates the FP csr?
  maybe,
  I believe the root of problem is we don't clear used_math
for new execed processes so they inherit fpu contents from their
parent. 
  Several days ago i posted a little patch to correct it,so your problem
doesn't occurs here any more. but it seems Ralf doesn't accept it.Maybe
you can try it.

在 2002-03-14 14:52:00 you wrote：
>../fenvtest 
>../fenvtest

Regards
            Zhang Fuxin
            [email-masked]