regression in tgamma?

Jeff Johnston jjohnstn@redhat.com
Tue Dec 15 17:11:25 GMT 2020


Hi Paul,

I copied the newlib/libm/common directory and header files from master to a
separate directory and called __ieee754_tgamma directly in your test (adding
a declaration of __ieee754_tgamma as well).  I then built as follows:

gcc -g -O0 -I. -DNEWLIB  testtgamma.c e_tgamma.c e_exp.c k_sin.c math_err.c
er_lgamma.c k_cos.c s_floor.c e_log.c w_log.c

I get the same result as you get for 3.3.0.

Can you possibly recheck to see if your 4.0.0 library has been built
correctly?  Perhaps I have somehow by-passed the cause of the problem by
compiling directly.

-- Jeff J.

On Tue, Dec 15, 2020 at 8:36 AM Paul Zimmermann <Paul.Zimmermann@inria.fr>
wrote:

>        Hi,
>
> while updating my comparison from Newlib 3.3.0 to Newlib 4.0.0, I found a
> regression in tgamma on x86_64/Linux:
>
> $ cat test3.c
> #include <stdio.h>
> #include <math.h>
>
> #ifdef NEWLIB
> int errno;
> int* __errno () { return &errno; }
> #endif
>
> int main()
> {
>   double x = -0x1.53f198fe3b278p+7, y;
>   y = tgamma (x);
>   printf ("x=%a y=%a\n", x, y);
> }
>
> Newlib 3.3.0:
> $ gcc -DNEWLIB -no-pie test3.c /localdisk/zimmerma/newlib-3.3.0/libm.a;
> ./a.out
> x=-0x1.53f198fe3b278p+7 y=0x1.fd6d312572d9cp-1015
>
> Newlib 4.0.0:
> $ gcc -DNEWLIB -no-pie test3.c /localdisk/zimmerma/newlib-4.0.0/libm.a;
> ./a.out
> x=-0x1.53f198fe3b278p+7 y=0x1p+0
>
> Please can someone confirm?
>
> Best regards,
> Paul
>
>


More information about the Newlib mailing list