On Wed, Jul 30, 2008 at 4:26 AM, Eric Blake <[EMAIL PROTECTED]> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > [re-adding the list, and also adding bug-gnulib, since this particular > problem is related to gnulib. For bug-gnulib readers: this is a report of > test-strtod failure on Solaris 10] > > According to Dennis Clarke on 7/29/2008 10:09 PM: > | whoops > | > | builds fine .. and then make check gets ugly : > | > | source='test-strtod.c' object='test-strtod.o' libtool=no \ > | DEPDIR=.deps depmode=none /bin/bash ../build-aux/depcomp \ > | c99 -I. -I../lib -I. -I. -I.. -I./.. -I../lib -I./../lib > | -I/opt/build/dclarke/local/include -D_REENTRANT -erroff=%all > | -fsimple=0 -g -m64 -xO1 -Qy -Xa -xbuiltin=%none -xdebugformat=dwarf > | -xmodel=medium -xnolibmil -xnolibmopt -xregs=no%frameptr -xs > | -xstrconst -xtarget=opteron -xtemp=/tmp/dclarke -c test-strtod.c > | c99 -erroff=%all -fsimple=0 -g -m64 -xO1 -Qy -Xa -xbuiltin=%none > | -xdebugformat=dwarf -xmodel=medium -xnolibmil -xnolibmopt > | -xregs=no%frameptr -xs -xstrconst -xtarget=opteron -xtemp=/tmp/dclarke > | -o test-strtod test-strtod.o libtests.a ../lib/libm4.a libtests.a > | Undefined first referenced > | symbol in file > | fabs test-strtod.o > > Ah. So it looks like when you turn on all the C99 flags to your compiler, > that strtod(3) no longer fails the configure test. But then test-strtod > fails to link, because it is lacking -lm on the command line.
yep thus : $ cc -xc99=all -erroff=%all -fsimple=0 -g -m64 -xO1 -Qy -Xa -xbuiltin=%none -xdebugformat=dwarf -xmodel=medium -xnolibmil \ > -xregs=no%frameptr -xs -xstrconst -xtarget=opteron -xtemp=/tmp/dclarke -H -o > test-strtod test-strtod.o libtests.a \ > ../lib/libm4.a libtests.a Undefined first referenced symbol in file fabs test-strtod.o ld: fatal: Symbol referencing errors. No output written to test-strtod is fixed with a simple -lm $ cc -xc99=all -erroff=%all -fsimple=0 -g -m64 -xO1 -Qy -Xa -xbuiltin=%none -xdebugformat=dwarf -xmodel=medium -xnolibmil \ > -xregs=no%frameptr -xs -xstrconst -xtarget=opteron -xtemp=/tmp/dclarke -H -o > test-strtod test-strtod.o libtests.a \ > ../lib/libm4.a libtests.a -lm $ file test-strtod test-strtod: ELF 64-bit LSB executable AMD64 Version 1 [SSE2 SSE FXSR CMOV FPU], dynamically linked, not stripped $ ldd test-strtod libm.so.2 => /lib/64/libm.so.2 libc.so.1 => /lib/64/libc.so.1 > You're the first person whee .. lucky me. :-\ > to report this particular failure of a missing library in the > test link line; most platforms (including Solaris 10 without the proper > C99 compliance flags) have already failed the configure test, such that > POW_LIB is defined as -lm when needed, or provide fabs as part of libc > instead of libm. > > Somehow, the test needs to be made more robust; we either need more m4 > magic to determine if -lm is necessary for fabs, or a gnulib replacement > for fabs that works without requiring libm, or a way to rewrite that test > to not need fabs. In the meantime, feel free to manually add -lm to the > link line for that particular test program. did that ... but don't know what to do with it. In reality I need a stable release grade package and 1.5.89a.31-d9538d is not it. I'll go back to looking at m4-1.4.11 and see what there is that I can do to get it to pass its testsuite on Solaris 10. Perhaps gl_cv_func_strtod_works=no is the only way to go. Which feels like a hack somehow. Maybe I need to think about this and see what the *real* issue is with libc and then see if that can be fixed. Not a small task. Dennis