gcc-6: Add fix for missing no-PIE flags

Fixes build on hardened PAX host with gcc-5 (linker error on relocs).
Completes no-PIE config by adding to ALL_* flags variables.
Borrowed from Gentoo gcc patches, tested on 2 hardened amd64 hosts.

Upstream-Status: Inappropriate [configuration]

Commited by: Gentoo Toolchain Project <toolchain@gentoo.org>
(From OE-Core rev: c178791cd78d5a9ebc4d7b7790e647a9bafe9cf2)

(From OE-Core rev: e54f26a0dbfc8de22ce8326ac77d1097d13f6e2c)

Signed-off-by: Stephen Arnold <stephen.arnold42@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fcb236ea7cd1ac052719187fefed60ebf1a30ac8)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Stephen Arnold 2017-02-12 18:25:27 -08:00 committed by Richard Purdie
parent d80d10b4d4
commit 1118ff07f4
2 changed files with 23 additions and 0 deletions

View File

@ -79,6 +79,7 @@ SRC_URI = "\
file://0046-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \
file://0047-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \
file://0048-sync-gcc-stddef.h-with-musl.patch \
file://0054_all_nopie-all-flags.patch \
${BACKPORTS} \
"
BACKPORTS = "\

View File

@ -0,0 +1,22 @@
Need to pass NO_PIE_CFLAGS to ALL_* so gcc doesn't fail when
we compile it with older gcc and pie.
Upstream-Status: Inappropriate [configuration]
Maintained by: Gentoo Toolchain Project <toolchain@gentoo.org>
Signed-off-by: Stephen Arnold <stephen.arnold42@gmail.com>
--- a/gcc/Makefile.in 2015-06-25 19:18:12.000000000 +0200
+++ b/gcc/Makefile.in 2016-04-22 00:12:54.029178860 +0200
@@ -991,10 +991,10 @@ ALL_CXXFLAGS = $(T_CFLAGS) $(CFLAGS-$@)
ALL_CPPFLAGS = $(INCLUDES) $(CPPFLAGS)
# This is the variable to use when using $(COMPILER).
-ALL_COMPILERFLAGS = $(ALL_CXXFLAGS)
+ALL_COMPILERFLAGS = $(NO_PIE_CFLAGS) $(ALL_CXXFLAGS)
# This is the variable to use when using $(LINKER).
-ALL_LINKERFLAGS = $(ALL_CXXFLAGS)
+ALL_LINKERFLAGS = $(NO_PIE_CFLAGS) $(ALL_CXXFLAGS)
# Build and host support libraries.