commit: f461e9f8576ab71a998b580095a8de1530cdbd35
Author: Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 11 22:17:37 2016 +0000
Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Nov 11 22:17:37 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f461e9f8
flag-o-matic.eclass: handle gcc-6 -no-pie option #596584
Reported-by: Laine Gholson <laine.gholson <AT> gmail.com>
eclass/flag-o-matic.eclass | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass
index 69f613f..d2f504b 100644
--- a/eclass/flag-o-matic.eclass
+++ b/eclass/flag-o-matic.eclass
@@ -27,7 +27,7 @@ setup-allowed-flags() {
-pipe -O '-O[12sg]' -mcpu -march -mtune
'-fstack-protector*' '-fsanitize*'
-fbounds-check -fbounds-checking -fno-strict-overflow
- -fno-PIE -fno-pie -nopie -fno-unit-at-a-time
+ -fno-PIE -fno-pie -nopie -no-pie -fno-unit-at-a-time
-g '-g[0-9]' -ggdb '-ggdb[0-9]' '-gdwarf-*' gstabs -gstabs+
-fno-ident -fpermissive -frecord-gcc-switches
'-fdiagnostics*' '-fplugin*'
@@ -80,7 +80,16 @@ _filter-hardened() {
# thinking about -fPIE.
-fPIC|-fpic|-fPIE|-fpie|-Wl,pie|-pie)
gcc-specs-pie || continue
- is-flagq -nopie || append-flags -nopie;;
+ if ! is-flagq -nopie && ! is-flagq -no-pie ;
then
+ # Support older Gentoo form first
(-nopie) before falling
+ # back to the official gcc-6+ form
(-no-pie).
+ if test-flags -nopie >/dev/null ; then
+ append-flags -nopie
+ else
+ append-flags -no-pie
+ fi
+ fi
+ ;;
-fstack-protector)
gcc-specs-ssp || continue
is-flagq -fno-stack-protector || append-flags
$(test-flags -fno-stack-protector);;