summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2017-10-18 15:36:06 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2017-10-18 15:36:06 +0100
commitd534bffc051980f5bca96ae8fbad3f7f1a70297c (patch)
treecf8efb9a06c8dd9e3e83972943989d5d20b877e4 /sys-boot/aboot
parentsys-boot/aboot: allow user patches (diff)
downloadgentoo-d534bffc051980f5bca96ae8fbad3f7f1a70297c.tar.gz
gentoo-d534bffc051980f5bca96ae8fbad3f7f1a70297c.tar.bz2
gentoo-d534bffc051980f5bca96ae8fbad3f7f1a70297c.zip
sys-boot/aboot: fix link failure on recent gcc (force gnu90)
Package-Manager: Portage-2.3.11, Repoman-2.3.3
Diffstat (limited to 'sys-boot/aboot')
-rw-r--r--sys-boot/aboot/aboot-1.0_pre20040408-r3.ebuild1
-rw-r--r--sys-boot/aboot/files/aboot-gnu90.patch26
2 files changed, 27 insertions, 0 deletions
diff --git a/sys-boot/aboot/aboot-1.0_pre20040408-r3.ebuild b/sys-boot/aboot/aboot-1.0_pre20040408-r3.ebuild
index d02ceb0724bc..2fd4afa8a92a 100644
--- a/sys-boot/aboot/aboot-1.0_pre20040408-r3.ebuild
+++ b/sys-boot/aboot/aboot-1.0_pre20040408-r3.ebuild
@@ -34,6 +34,7 @@ src_unpack() {
# Bug 364697
epatch "${FILESDIR}/aboot-define_stat_only_in_userspace.patch"
epatch "${FILESDIR}"/aboot-respect-AR.patch
+ epatch "${FILESDIR}"/aboot-gnu90.patch
# Modified patch from Debian to add netboot support
epatch "${WORKDIR}"/aboot_gentoo.diff
diff --git a/sys-boot/aboot/files/aboot-gnu90.patch b/sys-boot/aboot/files/aboot-gnu90.patch
new file mode 100644
index 000000000000..2fb4b87f6b2c
--- /dev/null
+++ b/sys-boot/aboot/files/aboot-gnu90.patch
@@ -0,0 +1,26 @@
+This patch fixes multiple definitions of 'extern inline' functions.
+
+c99 and gnu90 have slightly different semantics
+WRT symbol definition: http://www.greenend.org.uk/rjk/tech/inline.html
+
+gcc-4 defaults to gnu90 and works, gcc-6 defaults to gnu-99
+and fails to link aboot as:
+ alpha-unknown-linux-gnu-ld: Disabling relaxation: it will not work with multiple definitions
+ lib/libaboot.a(isolib.o): In function `prefetchw':
+ (.text+0x60): multiple definition of `prefetchw'
+ fs/ext2.o:(.text+0xe68): first defined here
+
+The change is to force gnu90 explicitly.
+diff --git a/Makefile b/Makefile
+index b4245af..634ac87 100644
+--- a/Makefile
++++ b/Makefile
+@@ -40,6 +40,6 @@ ifeq ($(TESTING),)
+ CPPFLAGS = $(CFGDEFS) -I$(TOP)/include -I$(KSRC)/include
+-CFLAGS = $(CPPFLAGS) -D__KERNEL__ -Os -Wall -fno-builtin -mno-fp-regs
++CFLAGS = $(CPPFLAGS) -std=gnu90 -D__KERNEL__ -Os -Wall -fno-builtin -mno-fp-regs
+ else
+ CPPFLAGS = -DTESTING $(CFGDEFS) -I$(TOP)/include -I$(KSRC)/include
+-CFLAGS = $(CPPFLAGS) -O -g3 -Wall -D__KERNEL__ -ffixed-8
++CFLAGS = $(CPPFLAGS) -std=gnu90 -O -g3 -Wall -D__KERNEL__ -ffixed-8
+ endif