sys-boot/grub-0.97-r17: switch -nopie for -no-pie on gcc6+
authorIan Stakenvicius <axs@gentoo.org>
Thu, 26 Oct 2017 20:25:49 +0000 (16:25 -0400)
committerIan Stakenvicius <axs@gentoo.org>
Thu, 26 Oct 2017 20:26:23 +0000 (16:26 -0400)
As the -nopie option was something gentoo patched into gcc via the pie patches
used for hardened, and these patches are not applied to gcc6, the no-pie
patch used with grub:0 needs to be adjusted to hse the new flag when a newer
gcc is used.

Package-Manager: Portage-2.3.8, Repoman-2.3.3

sys-boot/grub/grub-0.97-r17.ebuild

index 038a541f87958a600258d33ddfd9eaf420395ddf..b34191f7346d9b3a3a862b740ae63e535bb3ad0a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 # XXX: we need to review menu.lst vs grub.conf handling.  We've been converting
@@ -67,6 +67,13 @@ src_prepare() {
                "${S}"/grub/asmstub.c \
                || die
 
+       # gcc-6 and above doesnt have a '-nopie' option patched in, use upstream's -no-pie
+       if (( $(gcc-major-version) > 5 )); then
+               sed -i 's/-nopie/-no-pie/' \
+                       "${WORKDIR}"/patch/860_all_grub-0.97-pie.patch \
+                       || die
+       fi
+
        EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
        # bug 564890, 566638
        epatch "${FILESDIR}"/grub-0.97-Add-esp-to-list-of-clobbered-registers.patch