diff options
author | Andrey Grozin <grozin@gentoo.org> | 2014-01-11 14:03:15 +0000 |
---|---|---|
committer | Andrey Grozin <grozin@gentoo.org> | 2014-01-11 14:03:15 +0000 |
commit | 2062efe19368c5aa86c6c214779d2ef7545a1751 (patch) | |
tree | a7358e3596dd19c8be00ff6a2b3ffaf50d3f849d /dev-lisp/ecls | |
parent | x86 stable (bug #497632) (diff) | |
download | gentoo-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!)
Diffstat (limited to 'dev-lisp/ecls')
-rw-r--r-- | dev-lisp/ecls/ChangeLog | 10 | ||||
-rw-r--r-- | dev-lisp/ecls/ecls-13.5.1-r1.ebuild | 87 | ||||
-rw-r--r-- | dev-lisp/ecls/files/13.5.1-gc74.patch | 57 |
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 ++ + /* |