commit: 47fdb3554be8764c8adfc03782dcdf41a4448191 Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> AuthorDate: Mon Jan 1 22:37:14 2018 +0000 Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> CommitDate: Mon Jan 1 22:37:14 2018 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=47fdb355
sys-boot/silo: fix build failure against gcc-6, bug #639224 It's a commit similar to d534bffc051980f5bca96ae8fbad3f7f1a70297c ("sys-boot/aboot: fix link failure on recent gcc (force gnu90)") c99 and gnu90 have slightly different semantics WRT symbol definition: http://www.greenend.org.uk/rjk/tech/inline.html Reported-by: Rolf Eike Beer Closes: https://bugs.gentoo.org/639224 Package-Manager: Portage-2.3.19, Repoman-2.3.6 .../files/silo-1.4.14_p20120819-gnu90-inline.patch | 20 +++++++ sys-boot/silo/silo-1.4.14_p20120819-r1.ebuild | 69 ++++++++++++++++++++++ 2 files changed, 89 insertions(+) diff --git a/sys-boot/silo/files/silo-1.4.14_p20120819-gnu90-inline.patch b/sys-boot/silo/files/silo-1.4.14_p20120819-gnu90-inline.patch new file mode 100644 index 00000000000..bf6add0ce10 --- /dev/null +++ b/sys-boot/silo/files/silo-1.4.14_p20120819-gnu90-inline.patch @@ -0,0 +1,20 @@ +--- a/Rules.make ++++ b/Rules.make +@@ -26,2 +26,7 @@ CFLAGS += -fno-stack-protector + endif ++ifeq ($(call cc-option-yn, -std=gnu90),y) ++# In gcc-5+ c99 changed inline rules by forbidding ++# multiple extern definitions. Fall back to gnu90 ++CFLAGS += -std=gnu90 ++endif + +--- a/silo/Makefile ++++ b/silo/Makefile +@@ -6,2 +6,7 @@ UFSDEPS= + CFLAGS=-O2 -Wall -I. -I../include ++ifeq ($(call cc-option-yn, -std=gnu90),y) ++# In gcc-5+ c99 changed inline rules by forbidding ++# multiple extern definitions. Fall back to gnu90 ++CFLAGS += -std=gnu90 ++endif + diff --git a/sys-boot/silo/silo-1.4.14_p20120819-r1.ebuild b/sys-boot/silo/silo-1.4.14_p20120819-r1.ebuild new file mode 100644 index 00000000000..8cb43a1287e --- /dev/null +++ b/sys-boot/silo/silo-1.4.14_p20120819-r1.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit mount-boot flag-o-matic toolchain-funcs eutils + +DEB_PL="1" +MY_PV="${PV##*_p}" +MY_GIT="git${MY_PV%%_*}" +MY_PV="${PV%%_*}" +MY_P="${PN}_${MY_PV}+${MY_GIT}" + +DESCRIPTION="SPARC/UltraSPARC Improved Loader, a boot loader for sparc" +SRC_URI="mirror://debian/pool/main/s/${PN}/${MY_P}.orig.tar.gz + mirror://debian/pool/main/s/${PN}/${MY_P}-${DEB_PL}.diff.gz" +HOMEPAGE="https://git.kernel.org/?p=linux/kernel/git/davem/silo.git;a=summary" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="-* ~sparc" +IUSE="" + +DEPEND="sys-fs/e2fsprogs + sys-apps/sparc-utils" +RDEPEND="" + +ABI_ALLOW="sparc32" + +S="${WORKDIR}/${PN}" + +PATCHES=( + "${FILESDIR}"/${P}-gnu90-inline.patch +) + +src_prepare() { + default + + #Set the correct version + 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 +} + +src_compile() { + filter-flags "-fstack-protector" + + emake CC="$(tc-getCC)" +} + +src_install() { + default + + dodoc first-isofs/README.SILO_ISOFS docs/README* + + # Fix maketilo manpage + rm "${D}"/usr/share/man/man1/maketilo.1 + dosym tilo.1 /usr/share/man/man1/maketilo.1 +} + +pkg_postinst() { + mount-boot_pkg_postinst + ewarn "NOTE: If this is an upgrade to an existing SILO install," + ewarn " you will need to re-run silo as the /boot/second.b" + ewarn " file has changed, else the system will fail to load" + ewarn " SILO at the next boot." + ewarn +}