Hello Bruno, Bruno Haible wrote: > Rainer Tammer wrote: > >> AIX 7.1BETA >> >> # ./testlibm >> acos is in libc >> asin is in libc >> atan is in libc >> atan2 is in libc >> cbrt is in libc >> copysign is in libc >> cos is in libc >> cosh is in libc >> erf is in libc >> erfc is in libc >> exp is in libc >> fmod is in libc >> hypot is in libc >> j0 is in libc >> j1 is in libc >> jn is in libc >> lgamma is in libc >> log is in libc >> log10 is in libc >> log1p is in libc >> pow is in libc >> remainder is in libc >> sin is in libc >> sinh is in libc >> sqrt is in libc >> tan is in libc >> tanh is in libc >> y0 is in libc >> y1 is in libc >> yn is in libc >> > Hmm, there is apparently something wrong with the test program that I used. > Maybe xlc's optimizations are removing the use of the function pointer. > > Can you please try this one, instead? > > for func in acos asin atan atan2 cbrt copysign cos cosh erf erfc exp \ > fmod hypot j0 j1 jn lgamma log log10 log1p pow remainder \ > sin sinh sqrt tan tanh y0 y1 yn; do > (echo '#include <math.h>'; echo "double (*funcptr)() = (double > (*)())$func;"; echo 'int main() { return funcptr (1.6180339887) < 0.3; }') > > conftest.c > if gcc conftest.c > /dev/null 2>/dev/null; then > echo "$func is in libc" > else > echo "$func requires libm" > fi > done > > Bruno > > > # ./testme acos requires libm asin requires libm atan requires libm atan2 requires libm cbrt requires libm copysign requires libm cos requires libm cosh requires libm erf requires libm erfc requires libm exp requires libm fmod requires libm hypot requires libm j0 requires libm j1 requires libm jn requires libm lgamma requires libm log requires libm log10 requires libm log1p requires libm pow requires libm remainder requires libm sin requires libm sinh requires libm sqrt requires libm tan requires libm tanh requires libm y0 requires libm y1 requires libm yn requires libm
Bye Rainer