This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Recent libstdc++-v3 cmath.cc doesn't compile on alphaev6-unknown-linux-gnu
>>>>> Toon Moene writes:
Toon> Zack Weinberg wrote:
>> On Fri, Jun 09, 2000 at 10:49:36PM +0200, Toon Moene wrote:
>> > Well, it turns out that the libm on my system:
>> >
>> > $ ls /lib/libm*
>> > /lib/libm-2.1.1.so* /lib/libm.so.6.1@
>> >
>> > $ nm /lib/libm.so.6.1 | grep acosl
>> > 0000000000019020 t __acosl
>> > 000000000001d000 t __cacosl
>> > 0000000000019020 W acosl
>> > 000000000001d000 W cacosl
>> > contains acosl [et al.], but there's no header file with a prototype for
>> > it:
>> > $ grep acosl `find /usr/include -name '*.h' -print`
>> > <nothing>
>> If this is glibc 2.1, the acosl prototype is (should be) created by
>> evil macros in math.h and bits/mathcalls.h.
>> $ cpp /usr/include/math.h |grep acosl
>> extern long double acosl (long double __x);
>> extern long double __acosl (long double __x);
Toon> Not over here:
You're running Linux on an Alpha, aren't you?
The difference between Alpha and e.g. ix86 is the definition of
__NO_LONG_DOUBLE_MATH which is done in <bits/mathdef.h> for Alpha but
not for ix86:
/usr/include/bits/mathdef.h:#ifndef __NO_LONG_DOUBLE_MATH
/usr/include/bits/mathdef.h:# define __NO_LONG_DOUBLE_MATH 1
Toon> $ cpp /usr/include/math.h | grep acos
Toon> extern double acos (double __x) ; extern
Toon> double __acos (double __x) ;
Toon> extern double acosh (double __x) ; extern
Toon> double __acosh (double __x) ;
Toon> extern float acosf (float __x) ; extern
Toon> float __acosf (float __x) ;
Toon> extern float acoshf (float __x) ; extern
Toon> float __acoshf (float __x) ;
Toon> Is there something simple I can do to math.h or bits/mathcalls.h that
Toon> would solve this ?
Only a guess for a hack: Remove the define of __NO_LONG_DOUBLE_MATH.
Andreas
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de