From df8bf548b501ad28ddb7a1ba4408054be6d97cf9 Mon Sep 17 00:00:00 2001 From: Magnus Granberg Date: Sun, 7 Oct 2012 18:49:54 +0200 Subject: Add new Makefile patch --- upstream/Makefile.patch | 100 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 upstream/Makefile.patch diff --git a/upstream/Makefile.patch b/upstream/Makefile.patch new file mode 100644 index 0000000..a116e5f --- /dev/null +++ b/upstream/Makefile.patch @@ -0,0 +1,100 @@ +--- a/Makefile.tpl 2012-01-02 11:59:04.000000000 +0100 ++++ b/Makefile.tpl 2012-06-29 00:11:30.886010145 +0200 +@@ -362,9 +362,17 @@ WINDRES_FOR_BUILD = @WINDRES_FOR_BUILD@ + BUILD_PREFIX = @BUILD_PREFIX@ + BUILD_PREFIX_1 = @BUILD_PREFIX_1@ + ++# Disable SSP on BOOT_CFLAGS, LIBCFLAGS and LIBCXXFLAGS ++enable_espf = @enable_espf@ ++ifeq ($(enable_espf),yes) ++ESPF_NOSSP_CFLAGS = -fno-stack-protector ++else ++ESPF_NOSSP_CFLAGS= ++endif ++ + # Flags to pass to stage2 and later makes. They are defined + # here so that they can be overridden by Makefile fragments. +-BOOT_CFLAGS= -g -O2 ++BOOT_CFLAGS= -g -O2 $(ESPF_NOSSP_CFLAGS) + BOOT_LDFLAGS= + BOOT_ADAFLAGS=-gnatpg -gnata + +@@ -410,9 +418,9 @@ GNATMAKE = @GNATMAKE@ + + CFLAGS = @CFLAGS@ + LDFLAGS = @LDFLAGS@ +-LIBCFLAGS = $(CFLAGS) ++LIBCFLAGS = $(CFLAGS) $(ESPF_NOSSP_CFLAGS) + CXXFLAGS = @CXXFLAGS@ +-LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates ++LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates $(ESPF_NOSSP_CFLAGS) + GOCFLAGS = $(CFLAGS) + + TFLAGS = +--- a/gcc/Makefile.in 2012-02-11 09:50:23.000000000 +0100 ++++ b/gcc/Makefile.in 2012-06-29 00:07:45.230003420 +0200 +@@ -973,14 +973,23 @@ LIBFUNCS_H = libfuncs.h $(HASHTAB_H) + # cross compiler which does not use the native headers and libraries. + INTERNAL_CFLAGS = -DIN_GCC @CROSS@ + ++# We don't want to compile the compiler with -fPIE, it make PCH fail. ++enable_espf = @enable_espf@ ++ifeq ($(enable_espf),yes) ++ESPF_NOPIE_CFLAGS = -fno-PIE ++else ++ESPF_NOPIE_CFLAGS= ++endif ++ + # This is the variable actually used when we compile. If you change this, + # you probably want to update BUILD_CFLAGS in configure.ac +-ALL_CFLAGS = $(T_CFLAGS) $(CFLAGS-$@) \ ++ALL_CFLAGS = $(ESPF_NOPIE_CFLAGS) $(T_CFLAGS) $(CFLAGS-$@) \ + $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) @DEFS@ + + # The C++ version. +-ALL_CXXFLAGS = $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) $(INTERNAL_CFLAGS) \ +- $(COVERAGE_FLAGS) $(NOEXCEPTION_FLAGS) $(WARN_CXXFLAGS) @DEFS@ ++ALL_CXXFLAGS =$(ESPF_NOPIE_CFLAGS) $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) \ ++ $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(NOEXCEPTION_FLAGS) \ ++ $(WARN_CXXFLAGS) @DEFS@ + + # Likewise. Put INCLUDES at the beginning: this way, if some autoconf macro + # puts -I options in CPPFLAGS, our include files in the srcdir will always +@@ -1815,6 +1824,7 @@ libgcc.mvars: config.status Makefile spe + echo GCC_CFLAGS = '$(GCC_CFLAGS)' >> tmp-libgcc.mvars + echo INHIBIT_LIBC_CFLAGS = '$(INHIBIT_LIBC_CFLAGS)' >> tmp-libgcc.mvars + echo TARGET_SYSTEM_ROOT = '$(TARGET_SYSTEM_ROOT)' >> tmp-libgcc.mvars ++ echo enable_espf = '$(enable_espf)' >> tmp-libgcc.mvars + + mv tmp-libgcc.mvars libgcc.mvars + +@@ -4893,6 +4903,9 @@ site.exp: ./config.status Makefile + @if test "@enable_lto@" = "yes" ; then \ + echo "set ENABLE_LTO 1" >> ./site.tmp; \ + fi ++ @if test "@enable_espf@" = "yes" ; then \ ++ echo "set ENABLE_ESPF 1" >> ./site.tmp; \ ++ fi + # If newlib has been configured, we need to pass -B to gcc so it can find + # newlib's crt0.o if it exists. This will cause a "path prefix not used" + # message if it doesn't, but the testsuite is supposed to ignore the message - +--- a/libgcc/Makefile.in 2011-11-22 04:01:02.000000000 +0100 ++++ b/libgcc/Makefile.in 2012-06-29 00:15:04.534016511 +0200 +@@ -275,11 +275,16 @@ override CFLAGS := $(filter-out -fprofil + INTERNAL_CFLAGS = $(CFLAGS) $(LIBGCC2_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \ + $(INCLUDES) @set_have_cc_tls@ @set_use_emutls@ + ++ifeq ($(enable_espf),yes) ++ESPF_NOPIE_CFLAGS = -fno-PIE ++else ++ESPF_NOPIE_CFLAGS= ++endif + # Options to use when compiling crtbegin/end. + CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \ + -finhibit-size-directive -fno-inline -fno-exceptions \ + -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \ +- -fno-stack-protector \ ++ -fno-stack-protector $(ESPF_NOPIE_CFLAGS) \ + $(INHIBIT_LIBC_CFLAGS) + + # Extra flags to use when compiling crt{begin,end}.o. -- cgit v1.2.3-65-gdbad