With gcc trunk, boostrap fails in stage3 with: if /bin/sh ../libtool --mode=compile /Volumes/HD/ltmp/ssen/gcc-build/./gcc/xgcc -B/Volumes/HD/ltmp/ssen/gcc-build/./gcc/ -B/usr/local/i386-apple-darwin8.4.2/bin/ -B/usr/local/i386-apple-darwin8.4.2/lib/ -isystem /usr/local/i386-apple-darwin8.4.2/include -isystem /usr/local/i386-apple-darwin8.4.2/sys-include -DPACKAGE_NAME=\"libgcc-math\" -DPACKAGE_TARNAME=\"libgcc-math\" -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"libgcc-math\ 1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"libgcc-math\" -DVERSION=\"1.0\" -DHAVE_HIDDEN_VISIBILITY=1 -I. -I../../../../gcc/libgcc-math/i386 -I../../../../gcc/libgcc-math/i386/../include -include ../../../../gcc/libgcc-math/i386/sse2.h -Wall -O2 -g -msse2 -msseregparm -mfpmath=sse -march=pentium3 -fno-math-errno -fno-trapping-math -ffinite-math-only -fno-rounding-math -fno-signaling-nans -D__NO_MATH_INLINES -O2 -g -O2 -MT libsse2_la-s_isinf.lo -MD -MP -MF ".deps/libsse2_la-s_isinf.Tpo" -c -o libsse2_la-s_isinf.lo `test -f '../../../../gcc/libgcc-math/i386/../dbl-64/s_isinf.c' || echo '../../../../gcc/libgcc-math/i386/'`../../../../gcc/libgcc-math/i386/../dbl-64/s_isinf.c; \ then mv -f ".deps/libsse2_la-s_isinf.Tpo" ".deps/libsse2_la-s_isinf.Plo"; else rm -f ".deps/libsse2_la-s_isinf.Tpo"; exit 1; fi /Volumes/HD/ltmp/ssen/gcc-build/./gcc/xgcc -B/Volumes/HD/ltmp/ssen/gcc-build/./gcc/ -B/usr/local/i386-apple-darwin8.4.2/bin/ -B/usr/local/i386-apple-darwin8.4.2/lib/ -isystem /usr/local/i386-apple-darwin8.4.2/include -isystem /usr/local/i386-apple-darwin8.4.2/sys-include -DPACKAGE_NAME=\"libgcc-math\" -DPACKAGE_TARNAME=\"libgcc-math\" -DPACKAGE_VERSION=\"1.0\" "-DPACKAGE_STRING=\"libgcc-math 1.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"libgcc-math\" -DVERSION=\"1.0\" -DHAVE_HIDDEN_VISIBILITY=1 -I. -I../../../../gcc/libgcc-math/i386 -I../../../../gcc/libgcc-math/i386/../include -include ../../../../gcc/libgcc-math/i386/sse2.h -Wall -O2 -g -msse2 -msseregparm -mfpmath=sse -march=pentium3 -fno-math-errno -fno-trapping-math -ffinite-math-only -fno-rounding-math -fno-signaling-nans -D__NO_MATH_INLINES -O2 -g -O2 -MT libsse2_la-s_isinf.lo -MD -MP -MF .deps/libsse2_la-s_isinf.Tpo -c ../../../../gcc/libgcc-math/i386/../dbl-64/s_isinf.c -fno-common -DPIC -o .libs/libsse2_la-s_isinf.o ../../../../gcc/libgcc-math/i386/../dbl-64/s_isinf.c:21: error: conflicting types for '__isinf' /usr/include/architecture/i386/math.h:171: error: previous declaration of '__isinf' was here make[3]: *** [libsse2_la-s_isinf.lo] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-target-libgcc-math] Error 2 make: *** [all] Error 2
The system <math.h> eventually includes <architecture/i386/math.h>, which has: #define isinf(x) \ ( sizeof (x) == sizeof(float ) ? __isinff(x) \ : sizeof (x) == sizeof(double) ? __isinfd(x) \ : __isinf (x)) ... extern int __isinff (float ); extern int __isinfd (double ); extern int __isinf (long double); libgcc-math's s_isinf.c, on the other hand, has: int __isinf (double x) { ... -- Summary: libgcc-math declaration of __isinf conflicts with system header, fails bootstrap Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ssen at opendarwin dot org GCC build triplet: i386-apple-darwin8.4.1 GCC host triplet: i386-apple-darwin8.4.1 GCC target triplet: i386-apple-darwin8.4.1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26055