sys-boot/silo: fix a build against PIC profiles
authorSergei Trofimovich <slyfox@gentoo.org>
Mon, 7 May 2018 16:14:01 +0000 (17:14 +0100)
committerSergei Trofimovich <slyfox@gentoo.org>
Mon, 7 May 2018 16:14:25 +0000 (17:14 +0100)
Build failed on default/linux/sparc/17.0 profiles as
  ./util -a silotftp.map silotftp.aout silotftp2.aout silotftp.b silotftp.b2
  Distance between two changes larger than 63K 3 83881 0

I suspect th breakage happens due code inflation (caused by
-fPIC) on new profiles. iamben reports that -fno-PIC makes
silo to build and boot a sparc machine \o/

Fixed-by: iamben
Tested-by: iamben
Package-Manager: Portage-2.3.36, Repoman-2.3.9

sys-boot/silo/silo-1.4.14_p20120819-r1.ebuild
sys-boot/silo/silo-1.4.14_p20170829.ebuild

index 2431901f440da540d5daedd40742d325cca28f68..946707a29471b529bb79f44b7569bf4bfdce1ed7 100644 (file)
@@ -40,7 +40,9 @@ src_prepare() {
        sed -i -e "s/1.4.14/1.4.14_git20120819_p1/g" Rules.make || die
 
        # Fix build failure
-       sed -i -e "s/-fno-strict-aliasing/-fno-strict-aliasing -U_FORTIFY_SOURCE -mcpu=v9/g" Rules.make || die
+       # -fno-PIC is needed to shrink silo size back to manageable on
+       # profiles where gcc has -fPIC default (via --enable-default-pie).
+       sed -i -e "s/-fno-strict-aliasing/-fno-strict-aliasing -U_FORTIFY_SOURCE -mcpu=v9 -fno-PIC/g" Rules.make || die
 }
 
 src_compile() {
index dde2b3c9a7336b8b9d69305707cbc13b603c1540..e62265f8848caa9fcb9aedb9b12f55d067a84c31 100644 (file)
@@ -29,7 +29,9 @@ src_prepare() {
        sed -i -e "s/1.4.14/1.4.14_git20170829/g" Rules.make || die
 
        # Fix build failure
-       sed -i -e "s/-fno-strict-aliasing/-fno-strict-aliasing -U_FORTIFY_SOURCE -mcpu=v9/g" Rules.make || die
+       # -fno-PIC is needed to shrink silo size back to manageable on
+       # profiles where gcc has -fPIC default (via --enable-default-pie).
+       sed -i -e "s/-fno-strict-aliasing/-fno-strict-aliasing -U_FORTIFY_SOURCE -mcpu=v9 -fno-PIC/g" Rules.make || die
 
        # Don't strip ieee32.b during compile
        sed -i -e '/^   $(STRIP) ieee32.b/d' first/Makefile || die