sys-boot/grub:0 - Force -O0 to work around bugs 564890, 566638
authorIan Stakenvicius <axs@gentoo.org>
Tue, 8 Dec 2015 21:23:20 +0000 (16:23 -0500)
committerIan Stakenvicius <axs@gentoo.org>
Tue, 8 Dec 2015 21:23:47 +0000 (16:23 -0500)
Package-Manager: portage-2.2.24

sys-boot/grub/grub-0.97-r16.ebuild [moved from sys-boot/grub/grub-0.97-r15.ebuild with 93% similarity]

similarity index 93%
rename from sys-boot/grub/grub-0.97-r15.ebuild
rename to sys-boot/grub/grub-0.97-r16.ebuild
index 068f68b9196049918cf930d903a5e5f0a4864b28..9da0d0e384ffdef8b14bf61f0d299a881326f7fb 100644 (file)
@@ -67,6 +67,21 @@ src_prepare() {
                || die
 
        EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
+
+       # Work around issue where the default CFLAGS fail with gcc-4.9.3 (possibly newer), force -O0 instead
+       # bug 564890, 566638
+       if [[ $(gcc-major-version) -ge 5 || $(gcc-major-version) -eq 4 && $(gcc-minor-version) -ge 9 ]]; then
+               if use custom-cflags; then
+                       ewarn "You are using custom cflags with gcc-4.9 or newer."
+                       ewarn "Be aware the result may segfault at runtime due to unknown optimization"
+                       ewarn "incompatibilities."
+               else
+                       einfo "Forcing -O0 to get around optimization issue caused by gcc-4.9 and newer with -O2"
+                       sed -i  -e "/CFLAGS/s/-O2/-O0/" \
+                               "${S}"/configure.ac || die
+               fi
+       fi
+
        rm -f "${S}"/aclocal.m4 # seems to keep bug 418287 away
        eautoreconf
 }