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);;

Reply via email to