summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Seifert <soap@gentoo.org>2016-02-06 11:27:11 +0100
committerDavid Seifert <soap@gentoo.org>2016-02-06 11:27:25 +0100
commit0a4ee8dccd9422cdc4a507c5bdd360be4802f8fd (patch)
treeeb226abdb33908c58fe9385316d41b951cbc9a2b /sys-devel/dev86
parentMerge remote-tracking branch 'github/pr/790'. (diff)
downloadgentoo-0a4ee8dccd9422cdc4a507c5bdd360be4802f8fd.tar.gz
gentoo-0a4ee8dccd9422cdc4a507c5bdd360be4802f8fd.tar.bz2
gentoo-0a4ee8dccd9422cdc4a507c5bdd360be4802f8fd.zip
sys-devel/dev86: Include patch for building with clang
Gentoo-Bug: 523096 * EAPI=6 * Amend patches for -p1 * Thanks Fabio Scaccabarozzi for the patch Package-Manager: portage-2.2.27
Diffstat (limited to 'sys-devel/dev86')
-rw-r--r--sys-devel/dev86/dev86-0.16.21-r1.ebuild76
-rw-r--r--sys-devel/dev86/files/dev86-0.16.21-non-void-return-clang.patch15
-rw-r--r--sys-devel/dev86/files/dev86-pic.patch4
3 files changed, 93 insertions, 2 deletions
diff --git a/sys-devel/dev86/dev86-0.16.21-r1.ebuild b/sys-devel/dev86/dev86-0.16.21-r1.ebuild
new file mode 100644
index 000000000000..9942a8284b5a
--- /dev/null
+++ b/sys-devel/dev86/dev86-0.16.21-r1.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit toolchain-funcs
+
+DESCRIPTION="Bruce's C compiler - Simple C compiler to generate 8086 code"
+HOMEPAGE="http://v3.sk/~lkundrak/dev86/"
+SRC_URI="http://v3.sk/~lkundrak/dev86/Dev86src-${PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+RDEPEND="sys-devel/bin86"
+DEPEND="${RDEPEND}
+ dev-util/gperf"
+
+STRIP_MASK="/usr/*/bcc/lib*.a /usr/*/i386/libc.a"
+PATCHES=(
+ "${FILESDIR}/${PN}-pic.patch"
+ "${FILESDIR}/${PN}-0.16.19-fortify.patch"
+ "${FILESDIR}/${P}-non-void-return-clang.patch"
+)
+
+src_prepare() {
+ default
+
+ # elksemu doesn't compile under amd64
+ if use amd64; then
+ einfo "Not compiling elksemu on amd64"
+ sed -i \
+ -e 's,alt-libs elksemu,alt-libs,' \
+ -e 's,install-lib install-emu,install-lib,' \
+ makefile.in || die
+ fi
+
+ sed -i -e "s:-O2 -g:${CFLAGS}:" -e '/INEXE=/s:-s::' makefile.in || die
+ sed -i -e "s:/lib/:/$(get_libdir)/:" bcc/bcc.c || die
+ sed -i -e '/INSTALL_OPTS=/s:-s::' bin86/Makefile || die
+ sed -i -e '/install -m 755 -s/s:-s::' dis88/Makefile || die
+}
+
+src_compile() {
+ # Don't mess with CPPFLAGS as they tend to break compilation
+ # (bug #343655).
+ unset CPPFLAGS
+
+ # First `make` is also a config, so set all the path vars here
+ emake -j1 \
+ DIST="${D}" \
+ CC="$(tc-getCC)" \
+ LIBDIR="/usr/$(get_libdir)/bcc" \
+ INCLDIR="/usr/$(get_libdir)/bcc"
+
+ export PATH=${S}/bin:${PATH}
+
+ ln -s bin/{ncc,bcc} || die
+
+ cd bootblocks || die
+ emake DIST="${D}"
+}
+
+src_install() {
+ emake -j1 install-all DIST="${D}"
+ dobin bootblocks/makeboot
+ # remove all the stuff supplied by bin86
+ rm "${D}"/usr/bin/{as,ld,nm,objdump,size}86 || die
+ rm "${D}"/usr/man/man1/{as,ld}86.1 || die
+
+ dodir /usr/share
+ mv "${D}"/usr/{man,share/man} || die
+}
diff --git a/sys-devel/dev86/files/dev86-0.16.21-non-void-return-clang.patch b/sys-devel/dev86/files/dev86-0.16.21-non-void-return-clang.patch
new file mode 100644
index 000000000000..cb42e5707dcf
--- /dev/null
+++ b/sys-devel/dev86/files/dev86-0.16.21-non-void-return-clang.patch
@@ -0,0 +1,15 @@
+Return void properly, else clang aborts with
+* tok_io.c:231:6: error: non-void function 'do_control' should return a value [-Wreturn-type]
+See also: https://bugs.gentoo.org/show_bug.cgi?id=523096
+
+--- dev86-0.16.21/unproto/tok_io.c
++++ dev86-0.16.21/unproto/tok_io.c
+@@ -189,7 +189,7 @@
+
+ /* do_control - parse control line */
+
+-static int do_control()
++static void do_control()
+ {
+ struct token *t;
+ int line;
diff --git a/sys-devel/dev86/files/dev86-pic.patch b/sys-devel/dev86/files/dev86-pic.patch
index 439c2648b7d2..23158d188b02 100644
--- a/sys-devel/dev86/files/dev86-pic.patch
+++ b/sys-devel/dev86/files/dev86-pic.patch
@@ -1,5 +1,5 @@
---- elksemu/elks.c.orig 2005-11-04 01:35:37.000000000 +0100
-+++ elksemu/elks.c 2005-11-04 01:45:28.000000000 +0100
+--- dev86-0.16.21/elksemu/elks.c.orig 2005-11-04 01:35:37.000000000 +0100
++++ dev86-0.16.21/elksemu/elks.c 2005-11-04 01:45:28.000000000 +0100
@@ -129,8 +129,17 @@
static inline int vm86_mine(struct vm86_struct* v86)
{