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