summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Grozin <grozin@gentoo.org>2014-01-11 14:03:15 +0000
committerAndrey Grozin <grozin@gentoo.org>2014-01-11 14:03:15 +0000
commit2062efe19368c5aa86c6c214779d2ef7545a1751 (patch)
treea7358e3596dd19c8be00ff6a2b3ffaf50d3f849d
parentx86 stable (bug #497632) (diff)
downloadgentoo-2-2062efe19368c5aa86c6c214779d2ef7545a1751.tar.gz
gentoo-2-2062efe19368c5aa86c6c214779d2ef7545a1751.tar.bz2
gentoo-2-2062efe19368c5aa86c6c214779d2ef7545a1751.zip
Upstream fix for building with boehm-gc-7.4, bug #496780
(Portage version: 2.2.8/cvs/Linux i686, signed Manifest commit with key 0x3AFFCE974D34BD8C!)
-rw-r--r--dev-lisp/ecls/ChangeLog10
-rw-r--r--dev-lisp/ecls/ecls-13.5.1-r1.ebuild87
-rw-r--r--dev-lisp/ecls/files/13.5.1-gc74.patch57
3 files changed, 152 insertions, 2 deletions
diff --git a/dev-lisp/ecls/ChangeLog b/dev-lisp/ecls/ChangeLog
index afcb20c7d75e..04a29e55b7af 100644
--- a/dev-lisp/ecls/ChangeLog
+++ b/dev-lisp/ecls/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-lisp/ecls
-# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lisp/ecls/ChangeLog,v 1.47 2013/07/02 04:14:08 grozin Exp $
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lisp/ecls/ChangeLog,v 1.48 2014/01/11 14:03:15 grozin Exp $
+
+*ecls-13.5.1-r1 (11 Jan 2014)
+
+ 11 Jan 2014; Andrey Grozin <grozin@gentoo.org> +ecls-13.5.1-r1.ebuild,
+ +files/13.5.1-gc74.patch:
+ Upstream fix for building with boehm-gc-7.4, bug #496780
02 Jul 2013; Andrey Grozin <grozin@gentoo.org> ecls-13.5.1.ebuild:
A typo fixed
diff --git a/dev-lisp/ecls/ecls-13.5.1-r1.ebuild b/dev-lisp/ecls/ecls-13.5.1-r1.ebuild
new file mode 100644
index 000000000000..b46148ce3c2d
--- /dev/null
+++ b/dev-lisp/ecls/ecls-13.5.1-r1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lisp/ecls/ecls-13.5.1-r1.ebuild,v 1.1 2014/01/11 14:03:15 grozin Exp $
+
+EAPI=5
+inherit eutils multilib
+
+MY_P=ecl-${PV}
+
+DESCRIPTION="ECL is an embeddable Common Lisp implementation."
+HOMEPAGE="http://ecls.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tgz"
+
+LICENSE="BSD LGPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE="debug emacs gengc precisegc sse +threads +unicode X"
+
+CDEPEND="dev-libs/gmp
+ virtual/libffi
+ >=dev-libs/boehm-gc-7.1[threads?]
+ >=dev-lisp/asdf-2.33-r3:="
+DEPEND="${CDEPEND}
+ app-text/texi2html
+ emacs? ( virtual/emacs >=app-admin/eselect-emacs-1.12 )"
+RDEPEND="${CDEPEND}"
+
+S="${WORKDIR}"/${MY_P}
+
+pkg_setup () {
+ if use gengc || use precisegc ; then
+ ewarn "You have enabled the generational garbage collector or"
+ ewarn "the precise collection routines. These features are not very stable"
+ ewarn "at the moment and may cause crashes."
+ ewarn "Don't enable them unless you know what you're doing."
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PV}-headers-gentoo.patch
+ # bug #496780
+ epatch "${FILESDIR}"/${PV}-gc74.patch
+ cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die
+}
+
+src_configure() {
+ econf \
+ --with-system-gmp \
+ --enable-boehm=system \
+ --enable-longdouble \
+ --with-dffi \
+ $(use_enable gengc) \
+ $(use_enable precisegc) \
+ $(use_with debug debug-cflags) \
+ $(use_with sse) \
+ $(use_enable threads) \
+ $(use_with threads __thread) \
+ $(use_enable unicode) \
+ $(use_with X x) \
+ $(use_with X clx)
+}
+
+src_compile() {
+ if use emacs; then
+ local ETAGS=$(eselect --brief etags list | sed -ne '/emacs/{p;q}')
+ [[ -n ${ETAGS} ]] || die "No etags implementation found"
+ pushd build > /dev/null || die
+ emake ETAGS=${ETAGS} TAGS
+ popd > /dev/null
+ else
+ touch build/TAGS
+ fi
+
+ #parallel make fails
+ emake -j1 || die "Compilation failed"
+}
+
+src_install () {
+ emake DESTDIR="${D}" install || die "Installation failed"
+
+ dodoc ANNOUNCEMENT Copyright
+ dodoc "${FILESDIR}"/README.Gentoo
+ pushd build/doc
+ newman ecl.man ecl.1
+ newman ecl-config.man ecl-config.1
+ popd
+}
diff --git a/dev-lisp/ecls/files/13.5.1-gc74.patch b/dev-lisp/ecls/files/13.5.1-gc74.patch
new file mode 100644
index 000000000000..a1069b214b4b
--- /dev/null
+++ b/dev-lisp/ecls/files/13.5.1-gc74.patch
@@ -0,0 +1,57 @@
+diff -r -U1 ecl-13.5.1.orig/src/aclocal.m4 ecl-13.5.1/src/aclocal.m4
+--- ecl-13.5.1.orig/src/aclocal.m4 2013-05-28 03:37:36.000000000 +0700
++++ ecl-13.5.1/src/aclocal.m4 2014-01-12 00:34:36.663129950 +0700
+@@ -942,2 +942,6 @@
+ fi
++ if test "${system_boehm}" = "yes"; then
++ AC_CHECK_LIB( [gc], [GC_set_start_callback],
++ [AC_DEFINE(HAVE_GC_SET_START_CALLBACK)], [] )
++ fi
+ AC_MSG_CHECKING( [whether we can use the existing Boehm-Weiser library] )
+diff -r -U1 ecl-13.5.1.orig/src/c/alloc_2.d ecl-13.5.1/src/c/alloc_2.d
+--- ecl-13.5.1.orig/src/c/alloc_2.d 2013-05-28 03:37:36.000000000 +0700
++++ ecl-13.5.1/src/c/alloc_2.d 2014-01-12 00:43:44.177106924 +0700
+@@ -33,2 +33,9 @@
+
++static void (*GC_old_start_callback)(void) = NULL;
++#ifdef HAVE_GC_START_CALLBACK
++extern void GC_set_start_callback(void *);
++extern void *GC_get_start_callback(void *);
++#else
++extern void *GC_start_call_back(void);
++#endif
+ static void gather_statistics();
+@@ -752,3 +759,2 @@
+ extern void (*GC_push_other_roots)();
+-extern void (*GC_start_call_back)();
+ static void (*old_GC_push_other_roots)();
+@@ -1092,3 +1098,9 @@
+ GC_push_other_roots = stacks_scanner;
++#ifdef HAVE_GC_SET_START_CALLBACK
++ GC_old_start_callback = GC_get_start_callback();
++ GC_set_start_callback(gather_statistics);
++#else
++ GC_old_start_callback = GC_start_call_back;
+ GC_start_call_back = (void (*)())gather_statistics;
++#endif
+ GC_java_finalization = 1;
+@@ -1200,3 +1212,3 @@
+ */
+-#if 1 /*GBC_BOEHM == 0*/
++#if GBC_BOEHM == 0
+ extern int GC_print_stats;
+@@ -1279,2 +1291,4 @@
+ }
++ if (GC_old_start_callback)
++ GC_old_start_callback();
+ }
+Только в ecl-13.5.1/src/c: alloc_2.d.orig
+diff -r -U1 ecl-13.5.1.orig/src/h/config.h.in ecl-13.5.1/src/h/config.h.in
+--- ecl-13.5.1.orig/src/h/config.h.in 2013-05-28 03:37:36.000000000 +0700
++++ ecl-13.5.1/src/h/config.h.in 2014-01-12 00:34:36.663129950 +0700
+@@ -310,2 +310,5 @@
+
++/* GC_set_start_callback */
++#define HAVE_GC_SET_START_CALLBACK
++
+ /*