diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2006-07-04 09:52:47 +0200 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2006-07-04 07:52:47 +0000 |
commit | 0b50988af53a1e6237a8c3b61c5da1c4d1a41117 (patch) | |
tree | c3b9e31f432f73e77358b1d33eac3ed3d9d9a590 | |
parent | 84e9ad15fabafedf6815d5a6c90d65c7774c7792 (diff) | |
download | gcc-0b50988af53a1e6237a8c3b61c5da1c4d1a41117.zip gcc-0b50988af53a1e6237a8c3b61c5da1c4d1a41117.tar.gz gcc-0b50988af53a1e6237a8c3b61c5da1c4d1a41117.tar.bz2 |
re PR bootstrap/18058 (Bootstrap fails with non-GCC compilers)
PR bootstrap/18058
* configure.in: Add -fkeep-inline-functions to CFLAGS for stage 1
if the bootstrap compiler is a GCC version that supports it.
* configure: Regenerate.
gcc/
* Makefile.in (BUILD_RTL): Add build/vec.o.
(build/gencondmd.o): Filter out -fkeep-inline-functions.
(build/genextract): Delete.
(build/genautomata): Likewise.
From-SVN: r115172
-rw-r--r-- | ChangeLog | 7 | ||||
-rwxr-xr-x | configure | 31 | ||||
-rw-r--r-- | configure.in | 15 | ||||
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/Makefile.in | 12 |
5 files changed, 68 insertions, 5 deletions
@@ -1,3 +1,10 @@ +2006-07-04 Eric Botcazou <ebotcazou@libertysurf.fr> + + PR bootstrap/18058 + * configure.in: Add -fkeep-inline-functions to CFLAGS for stage 1 + if the bootstrap compiler is a GCC version that supports it. + * configure: Regenerate. + 2006-07-03 Paolo Bonzini <bonzini@gnu.org> * configure.in: Fix thinkos in previous check-in. @@ -7257,6 +7257,37 @@ case $build in ;; esac +# This is aimed to mimic bootstrap with a non-GCC compiler to catch problems. +if test "$GCC" = yes; then + saved_CFLAGS="$CFLAGS" + + # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it. + CFLAGS="$CFLAGS -fkeep-inline-functions" + echo $ac_n "checking whether -fkeep-inline-functions is supported""... $ac_c" 1>&6 +echo "configure:3894: checking whether -fkeep-inline-functions is supported" >&5 + cat > conftest.$ac_ext <<EOF +#line 3896 "configure" +#include "confdefs.h" + +int main() { + +; return 0; } +EOF +if { (eval echo configure:3903: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6; stage1_cflags="$stage1_cflags -fkeep-inline-functions" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6 +fi +rm -f conftest* + + CFLAGS="$saved_CFLAGS" +fi + + # Enable -Werror in bootstrap stage2 and later. # Change the default to "no" on release branches. diff --git a/configure.in b/configure.in index dd5d21d..a67a0a2 100644 --- a/configure.in +++ b/configure.in @@ -2411,6 +2411,21 @@ case $build in stage1_cflags="-g -no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0" ;; esac + +# This is aimed to mimic bootstrap with a non-GCC compiler to catch problems. +if test "$GCC" = yes; then + saved_CFLAGS="$CFLAGS" + + # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it. + CFLAGS="$CFLAGS -fkeep-inline-functions" + AC_MSG_CHECKING([whether -fkeep-inline-functions is supported]) + AC_TRY_COMPILE(,, + [AC_MSG_RESULT([yes]); stage1_cflags="$stage1_cflags -fkeep-inline-functions"], + [AC_MSG_RESULT([no])]) + + CFLAGS="$saved_CFLAGS" +fi + AC_SUBST(stage1_cflags) # Enable -Werror in bootstrap stage2 and later. diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dbc201e..2905deb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2006-07-04 Eric Botcazou <ebotcazou@libertysurf.fr> + + PR bootstrap/18058 + * Makefile.in (BUILD_RTL): Add build/vec.o. + (build/gencondmd.o): Filter out -fkeep-inline-functions. + (build/genextract): Delete. + (build/genautomata): Likewise. + 2006-07-04 Alan Modra <amodra@bigpond.net.au> PR target/28207 diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 9197d4e..9f29c7b 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -854,7 +854,7 @@ LDEXP_LIB = @LDEXP_LIB@ # even if we are cross-building GCC. BUILD_LIBS = $(BUILD_LIBIBERTY) -BUILD_RTL = build/rtl.o build/read-rtl.o build/ggc-none.o \ +BUILD_RTL = build/rtl.o build/read-rtl.o build/ggc-none.o build/vec.o \ build/min-insn-modes.o build/gensupport.o build/print-rtl.o BUILD_ERRORS = build/errors.o @@ -2956,6 +2956,11 @@ build/gencondmd.o : build/gencondmd.c $(BCONFIG_H) $(SYSTEM_H) \ coretypes.h $(GTM_H) insn-constants.h $(RTL_H) $(TM_P_H) \ $(FUNCTION_H) $(REGS_H) $(RECOG_H) $(REAL_H) output.h $(FLAGS_H) \ $(RESOURCE_H) toplev.h reload.h except.h tm-constrs.h +# This pulls in tm-pred.h which contains inline functions wrapping up +# predicates from the back-end so those functions must be discarded. +# No big deal since gencondmd.c is a dummy file for non-GCC compilers. +build/gencondmd.o : \ + BUILD_CFLAGS := $(filter-out -fkeep-inline-functions, $(BUILD_CFLAGS)) # ...these are the programs themselves. build/genattr.o : genattr.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H) \ @@ -3020,10 +3025,7 @@ genprogmd = attr attrtab automata codes conditions config constants emit \ extract flags mddeps opinit output peep preds recog $(genprogmd:%=build/gen%$(build_exeext)): $(BUILD_RTL) $(BUILD_ERRORS) -# These programs need files over and above what they get from the above list. -build/genextract$(build_exeext) : build/vec.o - -build/genautomata$(build_exeext) : build/vec.o +# These programs need libs over and above what they get from the above list. build/genautomata$(build_exeext) : BUILD_LIBS += -lm # These programs are not linked with the MD reader. |