newlib's libc now has dependencies on libm

Jeff Johnston jjohnstn@redhat.com
Fri Jun 26 11:01:00 GMT 2009


Richard Earnshaw wrote:
> I've just seen a sudden large increase in the number of gcc testsuite
> failures for ARM after updating my newlib sources.  It looks like libc
> has quietly (probably erroneously) grown a link-time dependency on libm:
>
> libc.a:lib_a-strtod.o:         U __fpclassifyd
> libc.a:lib_a-svfprintf.o:         U __fpclassifyd
> libc.a:lib_a-svfscanf.o:         U __fpclassifyd
> libc.a:lib_a-svfwprintf.o:         U __fpclassifyd
> libc.a:lib_a-svfwscanf.o:         U __fpclassifyd
> libc.a:lib_a-vfprintf.o:         U __fpclassifyd
> libc.a:lib_a-vfscanf.o:         U __fpclassifyd
> libc.a:lib_a-vfwprintf.o:         U __fpclassifyd
> libc.a:lib_a-vfwscanf.o:         U __fpclassifyd
> libc.a:lib_a-wcstod.o:         U __fpclassifyd
>
> libm.a:lib_a-s_fpclassify.o:00000000 T __fpclassifyd
>
>
> My guess is that this was caused by the following change:
>
> 2009-06-16  Craig Howland <howland@LGSInnovations.com>
>
>         * libc/include/math.h:  Simplify fpclassify, isinf, isnan, and signbit
>         macros to remove un-necessary extension use.  isinf and isnan also
>         changed to use fpclassify.  isfinite macro modified to run faster by
>         only calling fpclassify once instead of possibly twice.
>
>
>
>   
Good catch.  There are a set of math objs in libc that we copy over in 
the top-level Makefile.am.
Changing infinity testing to use fpclassify caused the problem.  I have 
added the fpclassify routines to
the MATHOBJS_IN_LIBC list and regenerated Makefile.in.

2009-06-23  Jeff Johnston  <jjohnstn@redhat.com>

        * Makefile.am (MATHOBJS_IN_LIBC): Add s_fpclassify and
        sf_fpclassify as these are now used for infinity testing.
        * Makefile.in: Regenerated.

-- Jeff J.




More information about the Newlib mailing list