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