From: H.J. Lu Date: Thu, 29 Oct 2015 12:29:43 +0000 (+0000) Subject: Add BUILD_NO_PIE_CFLAGS and BUILD_NO_PIE_FLAG X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5148d2e38fa5ff6427fca48cb592ca34a46af3f9;p=gcc.git Add BUILD_NO_PIE_CFLAGS and BUILD_NO_PIE_FLAG We shouldn't use NO_PIE_CFLAGS and NO_PIE_FLAG with CXX_FOR_BUILD when CXX_FOR_BUILD != CXX. This patch adds BUILD_NO_PIE_CFLAGS and BUILD_NO_PIE_FLAG to use with CXX_FOR_BUILD. They are set to NO_PIE_CFLAGS and NO_PIE_FLAG when build machine == host machine. Otherwise, they are set to NO_PIE_CFLAGS_FOR_BUILD and NO_PIE_FLAG_FOR_BUILD. * Makefile.in (NO_PIE_CFLAGS): New. (NO_PIE_FLAG): Likewise. (NO_PIE_CFLAGS_FOR_BUILD): Likewise. (NO_PIE_FLAG_FOR_BUILD): Likewise. (BUILD_NO_PIE_CFLAGS): Likewise. (BUILD_NO_PIE_FLAG): Likewise. (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS). (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG). (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with $(BUILD_NO_PIE_CFLAGS). (BUILD_CXXFLAGS): Likewise. (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with $(BUILD_NO_PIE_FLAG). * configure.ac (BUILD_NO_PIE_CFLAGS): New. AC_SUBST. (BUILD_NO_PIE_FLAG): Likewise. (NO_PIE_CFLAGS_FOR_BUILD): Likewise. (NO_PIE_FLAG_FOR_BUILD): Likewise. * configure: Regenerated. From-SVN: r229522 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 72d61adc5dc..e72098c7d7e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,24 @@ +2015-10-29 H.J. Lu + + * Makefile.in (NO_PIE_CFLAGS): New. + (NO_PIE_FLAG): Likewise. + (NO_PIE_CFLAGS_FOR_BUILD): Likewise. + (NO_PIE_FLAG_FOR_BUILD): Likewise. + (BUILD_NO_PIE_CFLAGS): Likewise. + (BUILD_NO_PIE_FLAG): Likewise. + (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS). + (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG). + (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with + $(BUILD_NO_PIE_CFLAGS). + (BUILD_CXXFLAGS): Likewise. + (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with + $(BUILD_NO_PIE_FLAG). + * configure.ac (BUILD_NO_PIE_CFLAGS): New. AC_SUBST. + (BUILD_NO_PIE_FLAG): Likewise. + (NO_PIE_CFLAGS_FOR_BUILD): Likewise. + (NO_PIE_FLAG_FOR_BUILD): Likewise. + * configure: Regenerated. + 2015-10-29 Richard Biener PR middle-end/56956 diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 6778f7d7a9b..9a544e7c109 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -258,11 +258,14 @@ LINKER = $(CC) LINKER_FLAGS = $(CFLAGS) endif +NO_PIE_CFLAGS = @NO_PIE_CFLAGS@ +NO_PIE_FLAG = @NO_PIE_FLAG@ + # We don't want to compile the compilers with -fPIE, it make PCH fail. -COMPILER += @NO_PIE_CFLAGS@ +COMPILER += $(NO_PIE_CFLAGS) # Link with -no-pie since we compile the compiler with -fno-PIE. -LINKER += @NO_PIE_FLAG@ +LINKER += $(NO_PIE_FLAG) # Like LINKER, but use a mutex for serializing front end links. ifeq (@DO_LINK_MUTEX@,true) @@ -755,10 +758,13 @@ DIR = ../gcc # Native compiler for the build machine and its switches. CC_FOR_BUILD = @CC_FOR_BUILD@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ +NO_PIE_CFLAGS_FOR_BUILD = @NO_PIE_CFLAGS_FOR_BUILD@ +NO_PIE_FLAG_FOR_BUILD = @NO_PIE_FLAG_FOR_BUILD@ BUILD_CFLAGS= @BUILD_CFLAGS@ -DGENERATOR_FILE BUILD_CXXFLAGS = @BUILD_CXXFLAGS@ -DGENERATOR_FILE -BUILD_CFLAGS += @NO_PIE_CFLAGS@ -BUILD_CXXFLAGS += @NO_PIE_CFLAGS@ +BUILD_NO_PIE_CFLAGS = @BUILD_NO_PIE_CFLAGS@ +BUILD_CFLAGS += $(BUILD_NO_PIE_CFLAGS) +BUILD_CXXFLAGS += $(BUILD_NO_PIE_CFLAGS) # Native compiler that we use. This may be C++ some day. COMPILER_FOR_BUILD = $(CXX_FOR_BUILD) @@ -770,7 +776,8 @@ BUILD_LINKERFLAGS = $(BUILD_CXXFLAGS) # Native linker and preprocessor flags. For x-fragment overrides. BUILD_LDFLAGS=@BUILD_LDFLAGS@ -BUILD_LDFLAGS += @NO_PIE_FLAG@ +BUILD_NO_PIE_FLAG = @BUILD_NO_PIE_FLAG@ +BUILD_LDFLAGS += $(BUILD_NO_PIE_FLAG) BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \ -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS) diff --git a/gcc/configure b/gcc/configure index 3122499da26..92bda6c759e 100755 --- a/gcc/configure +++ b/gcc/configure @@ -707,6 +707,10 @@ FGREP SED LIBTOOL collect2 +NO_PIE_FLAG_FOR_BUILD +NO_PIE_CFLAGS_FOR_BUILD +BUILD_NO_PIE_FLAG +BUILD_NO_PIE_CFLAGS STMP_FIXINC BUILD_LDFLAGS BUILD_CXXFLAGS @@ -7096,7 +7100,8 @@ if test x$ac_checking != x ; then $as_echo "#define ENABLE_CHECKING 1" >>confdefs.h - $as_echo "#define CHECKING_P 1" >>confdefs.h + +$as_echo "#define CHECKING_P 1" >>confdefs.h nocommon_flag=-fno-common else @@ -12253,14 +12258,24 @@ BUILD_CXXFLAGS='$(ALL_CXXFLAGS)' BUILD_LDFLAGS='$(LDFLAGS)' STMP_FIXINC=stmp-fixinc +BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS)' +BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG)' + # And these apply if build != host, or we are generating coverage data if test x$build != x$host || test "x$coverage_flags" != x then BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CXXFLAGS_FOR_BUILD)' BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)' + + NO_PIE_CFLAGS_FOR_BUILD=${NO_PIE_CFLAGS_FOR_BUILD-${NO_PIE_CFLAGS}} + NO_PIE_FLAG_FOR_BUILD=${NO_PIE_FLAG_FOR_BUILD-${NO_PIE_FLAG}} + BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS_FOR_BUILD)' + BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG_FOR_BUILD)' fi + + # Expand extra_headers to include complete path. # This substitutes for lots of t-* files. extra_headers_list= @@ -18390,7 +18405,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 18393 "configure" +#line 18408 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -18496,7 +18511,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 18499 "configure" +#line 18514 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/gcc/configure.ac b/gcc/configure.ac index a30bb3b89e8..7e22267e3bb 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -2041,13 +2041,23 @@ BUILD_CXXFLAGS='$(ALL_CXXFLAGS)' AC_SUBST(BUILD_CXXFLAGS) BUILD_LDFLAGS='$(LDFLAGS)' AC_SUBST(BUILD_LDFLAGS) STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC) +BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS)' AC_SUBST(BUILD_NO_PIE_CFLAGS) +BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG)' AC_SUBST(BUILD_NO_PIE_FLAG) + # And these apply if build != host, or we are generating coverage data if test x$build != x$host || test "x$coverage_flags" != x then BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CXXFLAGS_FOR_BUILD)' BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)' + + NO_PIE_CFLAGS_FOR_BUILD=${NO_PIE_CFLAGS_FOR_BUILD-${NO_PIE_CFLAGS}} + NO_PIE_FLAG_FOR_BUILD=${NO_PIE_FLAG_FOR_BUILD-${NO_PIE_FLAG}} + BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS_FOR_BUILD)' + BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG_FOR_BUILD)' fi +AC_SUBST(NO_PIE_CFLAGS_FOR_BUILD) +AC_SUBST(NO_PIE_FLAG_FOR_BUILD) # Expand extra_headers to include complete path. # This substitutes for lots of t-* files.