diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2017-10-18 15:36:06 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2017-10-18 15:36:06 +0100 |
commit | d534bffc051980f5bca96ae8fbad3f7f1a70297c (patch) | |
tree | cf8efb9a06c8dd9e3e83972943989d5d20b877e4 /sys-boot/aboot | |
parent | sys-boot/aboot: allow user patches (diff) | |
download | gentoo-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.ebuild | 1 | ||||
-rw-r--r-- | sys-boot/aboot/files/aboot-gnu90.patch | 26 |
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 |