| Carl Hansen on Mon, 26 Apr 2004 01:43:58 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| link error log2 exp2 gcc 3.4.0 and resolution |
a bug, and its resolution
just installed gcc 3.4.0 (on Solaris 9 sparc)
couldn't remake, link errors:
Undefined symbol exp2 log2
examining pari-2.2.7.alpha/config/has_log2.c,
(which is used by Configure) :
#include <math.h>
main(){ double x=log2(1.0); }
compiles cleanly,
however trying:
#include <math.h>
main(){ double x=log2(0.666); }
get Undefined symbol log2
Having pondered, conclude the compiler compile-time-optimises
log2(1.0) to 0 , so log2 is never called at runtime, as
can be verified by looking at has_log2.s , so the Configure script
will conclude has it HAS log2, whereas in the
other case log2(0.666), Configure script will realise
we in fact DON'T have log2.
likewise has_exp2.c
So contemplate assumptions made by compiler, compiler writer, writer
of Configure, and become wise, and wonder what else could be wrong.
--
Carl Hansen
carl@pictopia.com
I don't actually "WORK" here anymore
510 981 1231