diff options
Diffstat (limited to 'Makefile.tpl')
-rw-r--r-- | Makefile.tpl | 57 |
1 files changed, 26 insertions, 31 deletions
diff --git a/Makefile.tpl b/Makefile.tpl index 6bc461bfd..12ad2a1ff 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -207,10 +207,10 @@ BASE_TARGET_EXPORTS = \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \ CC="$(CC_FOR_TARGET)"; export CC; \ - CFLAGS="$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \ - CXXFLAGS="$(CXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ GFORTRAN="$(GFORTRAN_FOR_TARGET)"; export GFORTRAN; \ DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ @@ -330,19 +330,14 @@ PICFLAG = # MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them # overrideable (for a bootstrap build stage1 also builds gcc.info). +STAGE1_CFLAGS=@stage1_cflags@ STAGE1_CHECKING=@stage1_checking@ STAGE1_LANGUAGES=@stage1_languages@ -STAGE1_CFLAGS=@stage1_cflags@ STAGE2_CFLAGS=$(BOOT_CFLAGS) STAGE3_CFLAGS=$(BOOT_CFLAGS) STAGE4_CFLAGS=$(BOOT_CFLAGS) -STAGE1_LIBCFLAGS=$(CFLAGS_FOR_TARGET) -STAGE2_LIBCFLAGS=$(CFLAGS_FOR_TARGET) -STAGE3_LIBCFLAGS=$(CFLAGS_FOR_TARGET) -STAGE4_LIBCFLAGS=$(CFLAGS_FOR_TARGET) - do-compare = @do_compare@ do-compare3 = $(do-compare) do-compare-debug = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2 @@ -381,11 +376,18 @@ COMPILER_AS_FOR_TARGET=@COMPILER_AS_FOR_TARGET@ COMPILER_LD_FOR_TARGET=@COMPILER_LD_FOR_TARGET@ COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_TARGET@ -CFLAGS_FOR_TARGET = @CFLAGS_FOR_TARGET@ -CXXFLAGS_FOR_TARGET = @CXXFLAGS_FOR_TARGET@ +# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS +# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS +# might also be empty (or "-g", if a non-GCC C++ compiler is in the path). +# We want to ensure that TARGET libraries (which we know are built with +# gcc) are built with "-O2 -g", so prepend those options when setting +# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET. +CFLAGS_FOR_TARGET = -O2 -g $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \ + $(DEBUG_PREFIX_CFLAGS_FOR_TARGET) SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@ DEBUG_PREFIX_CFLAGS_FOR_TARGET = @DEBUG_PREFIX_CFLAGS_FOR_TARGET@ - +CXXFLAGS_FOR_TARGET = -O2 -g $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \ + $(DEBUG_PREFIX_CFLAGS_FOR_TARGET) LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates LDFLAGS_FOR_TARGET = @@ -489,20 +491,19 @@ POSTSTAGE1_FLAGS_TO_PASS = \ # Flags to pass down to makes which are built with the target environment. # The double $ decreases the length of the command line; those variables # are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. The -# *_CFLAGS_FOR_TARGET variables are not passed down and most often empty, -# so we expand them here. +# COMPILER_ prefixed variables are not passed down so we expand them here. EXTRA_TARGET_FLAGS = \ 'AR=$$(AR_FOR_TARGET)' \ 'AS=$(COMPILER_AS_FOR_TARGET)' \ 'CC=$$(CC_FOR_TARGET)' \ - 'CFLAGS=$$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \ + 'CFLAGS=$$(CFLAGS_FOR_TARGET)' \ 'CXX=$$(CXX_FOR_TARGET)' \ - 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \ + 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ 'LD=$(COMPILER_LD_FOR_TARGET)' \ 'LDFLAGS=$$(LDFLAGS_FOR_TARGET)' \ - 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \ - 'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \ + 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \ + 'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \ 'NM=$(COMPILER_NM_FOR_TARGET)' \ 'OBJDUMP=$$(OBJDUMP_FOR_TARGET)' \ 'RANLIB=$$(RANLIB_FOR_TARGET)' \ @@ -850,11 +851,9 @@ configure-stage[+id+]-[+prefix+][+module+]: fi; \ [+ ENDIF check_multilibs +]test ! -f [+subdir+]/[+module+]/Makefile || exit 0; \ [+exports+][+ IF prev +] \ - [+poststage1_exports+][+ ENDIF prev +] [+ IF prefix +] \ - CFLAGS="[+stage_libcflags+] $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \ - CXXFLAGS="[+stage_libcflags+] $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; [+ ELSE +] \ + [+poststage1_exports+][+ ENDIF prev +] \ CFLAGS="[+stage_cflags+]"; export CFLAGS; \ - CXXFLAGS="[+stage_cflags+]"; export CXXFLAGS; [+ ENDIF +] \ + LIBCFLAGS="[+stage_cflags+]"; export LIBCFLAGS; \ echo Configuring stage [+id+] in [+subdir+]/[+module+] ; \ $(SHELL) $(srcdir)/mkinstalldirs [+subdir+]/[+module+] ; \ cd [+subdir+]/[+module+] || exit 1; \ @@ -891,8 +890,7 @@ all-[+prefix+][+module+]: configure-[+prefix+][+module+][+ IF bootstrap +][+ ELS s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ [+exports+] \ (cd [+subdir+]/[+module+] && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) [+args+] [+extra_make_flags+] \ - $(TARGET-[+prefix+][+module+])) + $(MAKE) [+args+] [+extra_make_flags+] $(TARGET-[+prefix+][+module+])) @endif [+prefix+][+module+] [+ IF bootstrap +] @@ -912,11 +910,8 @@ all-stage[+id+]-[+prefix+][+module+]: configure-stage[+id+]-[+prefix+][+module+] [+exports+][+ IF prev +] \ [+poststage1_exports+][+ ENDIF prev +] \ cd [+subdir+]/[+module+] && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) \ - CFLAGS="[+stage_cflags+]" CXXFLAGS="[+stage_cflags+]" \ - LIBCFLAGS="[+stage_libcflags+]" \ - CFLAGS_FOR_TARGET="[+stage_libcflags+]" \ - CXXFLAGS_FOR_TARGET="[+stage_libcflags+]" [+args+] [+ + $(MAKE) [+args+] \ + CFLAGS="[+stage_cflags+]" LIBCFLAGS="[+stage_cflags+]" [+ IF prev +][+poststage1_args+][+ ENDIF prev +] [+extra_make_flags+] \ $(TARGET-stage[+id+]-[+prefix+][+module+]) @@ -966,7 +961,7 @@ clean-stage[+id+]-[+prefix+][+module+]: [+ all prefix="" subdir="$(HOST_SUBDIR)" exports="$(HOST_EXPORTS)" poststage1_exports="$(POSTSTAGE1_HOST_EXPORTS)" - args="$(EXTRA_HOST_FLAGS)" + args="$(FLAGS_TO_PASS)" poststage1_args="$(POSTSTAGE1_FLAGS_TO_PASS)" +] .PHONY: check-[+module+] maybe-check-[+module+] @@ -1064,7 +1059,7 @@ maybe-[+make_target+]-[+module+]: [+make_target+]-[+module+] [+ all prefix="target-" subdir="$(TARGET_SUBDIR)" exports="$(RAW_CXX_TARGET_EXPORTS)" - args="$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'" +] + args="$(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'" +] [+ ELSE +] [+ configure prefix="target-" subdir="$(TARGET_SUBDIR)" check_multilibs=true @@ -1075,7 +1070,7 @@ maybe-[+make_target+]-[+module+]: [+make_target+]-[+module+] [+ all prefix="target-" subdir="$(TARGET_SUBDIR)" exports="$(NORMAL_TARGET_EXPORTS)" - args="$(EXTRA_TARGET_FLAGS)" +] + args="$(TARGET_FLAGS_TO_PASS)" +] [+ ENDIF +] .PHONY: check-target-[+module+] maybe-check-target-[+module+] |