eclass/toolchain-glibc.eclass: skip pie check for gcc-6 or newer
authorMatthias Maier <tamiko@gentoo.org>
Wed, 14 Jun 2017 15:22:54 +0000 (10:22 -0500)
committerMatthias Maier <tamiko@gentoo.org>
Fri, 16 Jun 2017 08:23:35 +0000 (03:23 -0500)
For gcc-6 and newer the old logic in the toolchain-glibc eclass:

  if use hardened && gcc-specs-pie ; then
    append-cppflags -DPIC
  else
    filter-flags -fPIE
  fi

is obsolete. Simply disable the check.

eclass/toolchain-glibc.eclass

index 1667f1ac7ad6086ffe3a97c6d02a82301855a946..1d6a54a37f14d4bcd618929b4362c4a2819a4f4b 100644 (file)
@@ -266,14 +266,20 @@ setup_flags() {
                tc-enables-ssp && append-flags $(test-flags -fno-stack-protector)
        fi
 
-       if use hardened && tc-enables-pie ; then
-               # Force PIC macro definition for all compilations since they're all
-               # either -fPIC or -fPIE with the default-PIE compiler.
-               append-cppflags -DPIC
-       else
-               # Don't build -fPIE without the default-PIE compiler and the
-               # hardened-pie patch
-               filter-flags -fPIE
+       if [[ $(gcc-major-version) -lt 6 ]]; then
+               # Starting with gcc-6 (and fully upstreamed pie patches) we control
+               # default enabled/disabled pie via use flags. So nothing to do
+               # here. #618160
+
+               if use hardened && tc-enables-pie ; then
+                       # Force PIC macro definition for all compilations since they're all
+                       # either -fPIC or -fPIE with the default-PIE compiler.
+                       append-cppflags -DPIC
+               else
+                       # Don't build -fPIE without the default-PIE compiler and the
+                       # hardened-pie patch
+                       filter-flags -fPIE
+               fi
        fi
 }