On Sat, Mar 12, 2011 at 09:48:53AM +0100, Julien PUYDT wrote:
Package: libc6
Version: 2.11.2-13
The following piece of code :
#include<stdio.h>
#include<math.h>
int
main (int argc,
char* argv[])
{
long double x = 6.0;
printf ("tgammal (%20Lf)=%20Lf\n", x, tgammal (x));
return 0;
}
Prints, on an x86 debian unstable (eglibc 2.11.2-11) :
tgammal ( 6.000000)= 120.000000
And on an ARMel debian unstable (eglibc 2.11.2-13) :
tgammal (6.00000000000000000000)=119.99999999999997157829
On armel, long double is same the type as a double, and thus tgamma()
and tgammal() are the same functions. On x86 long double and double are
different types, and thus tgamma() and tgammal() are different
functions.
Your test code with long double and tgammal() on armel gives as expected
exactly the same result as double and tgamma() on x86. I don't see any
problem here, this function works as expected.