From e54f26a0dbfc8de22ce8326ac77d1097d13f6e2c Mon Sep 17 00:00:00 2001 From: Stephen Arnold Date: Sun, 12 Feb 2017 18:25:27 -0800 Subject: 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 (From OE-Core rev: c178791cd78d5a9ebc4d7b7790e647a9bafe9cf2) Signed-off-by: Stephen Arnold Signed-off-by: Ross Burton Signed-off-by: Richard Purdie (cherry picked from commit fcb236ea7cd1ac052719187fefed60ebf1a30ac8) --- meta/recipes-devtools/gcc/gcc-6.3.inc | 1 + .../gcc/gcc-6.3/0054_all_nopie-all-flags.patch | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 meta/recipes-devtools/gcc/gcc-6.3/0054_all_nopie-all-flags.patch diff --git a/meta/recipes-devtools/gcc/gcc-6.3.inc b/meta/recipes-devtools/gcc/gcc-6.3.inc index 7cf25ab1b6..4f04c012c1 100644 --- a/meta/recipes-devtools/gcc/gcc-6.3.inc +++ b/meta/recipes-devtools/gcc/gcc-6.3.inc @@ -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 = "\ diff --git a/meta/recipes-devtools/gcc/gcc-6.3/0054_all_nopie-all-flags.patch b/meta/recipes-devtools/gcc/gcc-6.3/0054_all_nopie-all-flags.patch new file mode 100644 index 0000000000..73ab9502dc --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-6.3/0054_all_nopie-all-flags.patch @@ -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 +Signed-off-by: Stephen Arnold + +--- 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. -- cgit 1.2.3-korg