summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lisp/cmucl')
-rw-r--r--dev-lisp/cmucl/ChangeLog13
-rw-r--r--dev-lisp/cmucl/Manifest23
-rw-r--r--dev-lisp/cmucl/cmucl-20b_p001.ebuild89
-rw-r--r--dev-lisp/cmucl/files/20b-customize-lisp-implementation-version.patch16
-rw-r--r--dev-lisp/cmucl/files/20b-execstack-fixes.patch118
-rw-r--r--dev-lisp/cmucl/files/20b-nositeinit-build.patch18
-rw-r--r--dev-lisp/cmucl/files/20b-patch001.patch119
-rw-r--r--dev-lisp/cmucl/files/site-init.lisp.in4
-rw-r--r--dev-lisp/cmucl/metadata.xml5
9 files changed, 386 insertions, 19 deletions
diff --git a/dev-lisp/cmucl/ChangeLog b/dev-lisp/cmucl/ChangeLog
index 4063600242d9..bce9d164c9c1 100644
--- a/dev-lisp/cmucl/ChangeLog
+++ b/dev-lisp/cmucl/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for dev-lisp/cmucl
-# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lisp/cmucl/ChangeLog,v 1.35 2010/12/17 20:17:43 ulm Exp $
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lisp/cmucl/ChangeLog,v 1.36 2011/04/28 20:21:33 grozin Exp $
+
+*cmucl-20b_p001 (29 Apr 2011)
+
+ 29 Apr 2011; Andrey Grozin <grozin@gentoo.org>
+ +files/20b-customize-lisp-implementation-version.patch,
+ +cmucl-20b_p001.ebuild, +files/20b-execstack-fixes.patch,
+ +files/20b-nositeinit-build.patch, +files/20b-patch001.patch,
+ files/site-init.lisp.in, metadata.xml:
+ Version bump from the lisp overlay
17 Dec 2010; Ulrich Mueller <ulm@gentoo.org> cmucl-19c.ebuild,
cmucl-19d_p2.ebuild, cmucl-20a.ebuild:
diff --git a/dev-lisp/cmucl/Manifest b/dev-lisp/cmucl/Manifest
index 952640d67163..168c414e3a96 100644
--- a/dev-lisp/cmucl/Manifest
+++ b/dev-lisp/cmucl/Manifest
@@ -1,6 +1,3 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
AUX 19c/README.Gentoo 848 RMD160 c4ba0ce6cf147a8b339302856fbac6590609e343 SHA1 16b6415ea63fc546a02c5de99e9e3a789f8efbfc SHA256 99dae09d2159ddf599a39cdc21168c300dd3c56d7ca454565f08076fb83ae064
AUX 19c/cmucl.sh 2701 RMD160 31cf025b4345e7670b3b895023d1bb00d4f6fc3d SHA1 5789679a4fa1125de61855a3b3447f33dabee3b6 SHA256 61c4084a280e44c86b0d2e915ba79151c44b3934ed894d2256402d850b78dc25
AUX 19c/herald-save.lisp-gentoo.patch 830 RMD160 7a9da1b5bc5190a9d44f691bd1b5ca433532083b SHA1 1f4484ded58c1a6ce24cc7f352cfe41e5bdf5b7d SHA256 cd6b45f4b981dafd00ca86fd5a76313adc21ffd8d9b30aaadd72819eb40b7a8e
@@ -10,25 +7,25 @@ AUX 19d-cmucl-patch-002.patch 1289 RMD160 677e67369392e2d0d77c3e75d50964984897e1
AUX 19d-gentoo.patch 1331 RMD160 e78cf4588976d363f52959e7f4a8afc9d814b917 SHA1 20de05f939a3ef79243c92b575b3d5c2602b579b SHA256 4c661395dd633c51099ef833f79af868fb8188af1e519c7308182ecf03a5ce30
AUX 20a-multiplefixes.patch 3990 RMD160 5311892ba7aa33e2dc0cfe82c4c48547000914be SHA1 abe23ea6d0e0da5b890062240191d9590f5db811 SHA256 4894e2088e0745cb8ad55b8ec4852d04d2949837e6f5d7ca2d8fe340ece6f554
AUX 20a-patch000.patch 679 RMD160 c371ed28a06c652b433e1b2c3c3052650a9c224b SHA1 8a44aa62d96cfc5befe1656db2bc0c6bac87439b SHA256 ab375f40369d0c7e7d7cc8593405ce2b8b88397ec7faf2a6c7035f55a51fe4f3
+AUX 20b-customize-lisp-implementation-version.patch 697 RMD160 24c08df29a98eb73af53c01535722007551c560c SHA1 b60e043e21a94df6cd071ecc7073493102f8fa3d SHA256 5bf77957f916508e383e6b6aac7e1b5f3518c399cf1ebf70395360cc122623a2
+AUX 20b-execstack-fixes.patch 3990 RMD160 ffdd6a680f6c81d56c67211bb4506d1424b83226 SHA1 65cd11aba2630db79529719a69e28fe7a4348c58 SHA256 f507d48eef3ae55e9f38ef96964d2179a3a328837420e866be4509c5fdde9131
+AUX 20b-nositeinit-build.patch 772 RMD160 96e5126db63f1b045304ac4507e9f61b54c094f2 SHA1 b44e89b06d6ee563e1c3ab9eccc9b24b4b650d3c SHA256 ab3a1bc613e390097dd08148b3d887aa8c92eab833e2413c1bf440dba082ff17
+AUX 20b-patch001.patch 4266 RMD160 c9bc18718d6699b778eaa6b3cd858cad23a2bf53 SHA1 0ff706aff731ac723d60def49c43b5b2b1624ad0 SHA256 6075ac099b9717fdfb0de70265d1dcb7317a0c1335bb90a101b88ccbe895eef1
AUX cmuclrc 305 RMD160 f3cb3cde18b7c5acc087d278d133a0c4ae0efc82 SHA1 ed3b1cfb3f4e702d1d87584e6a3bf5d4ffe4d080 SHA256 4f1f050f8dcbf261c9ee33075d5546a43fd14f7f0cd0ad486b175081bd4b27d2
AUX fix-man-and-doc-installation.patch 1671 RMD160 9bbc857219ae45170c41974967bd111c02d8121c SHA1 accb39eb4a9879830ce55dbb9dc6c91102757757 SHA256 77b9844670345e4c79510969b2676db1b0a366ed0f1e5c07ac74c477cdf65819
-AUX site-init.lisp.in 1971 RMD160 a30f444bb6b35623654dbd729bbaa86f6d2215ff SHA1 906a45575872e6e612f0a528930345f8ca3a52dd SHA256 3e0c6a8ed24658a61b39879b5f83915bed211a62b3832f153958530f272bc020
+AUX site-init.lisp.in 1839 RMD160 cf5673c06c3e6f63782ab77a5a92377579a853ab SHA1 98a719850fd658a312ab72c7fd0af6d2552ce6e3 SHA256 6164e40b50a0a0e7175089f0b55d549b8f24ef602c1c0c41f9433f5c61c512e7
DIST cmucl-19c-x86-linux.tar.bz2 7305922 RMD160 9731fb0fa5f3b47afb89f16c79378324ca8a79b3 SHA1 098c13a7120499a7ff68d4992a76ef7b9442f8c0 SHA256 4f8e1a819e69be176dd03efbd7cc282261d8ddc70b22ffdba1136853f58a30e7
DIST cmucl-19d-x86-linux.tar.bz2 7600189 RMD160 43a6d3e2637a74dad3155923f6771c213e09f54a SHA1 3e32c5f204974fdb68570f885cd0ae3ee5de5504 SHA256 5d459213f37dac8f633377d1c64901d1e9fe9c5774a7b1d5f914c306fb48dadc
DIST cmucl-20a-x86-linux.tar.bz2 16390027 RMD160 5bb559f12fcd78cdc5d0c7cb9d89420094dd0f5d SHA1 f9b3141f9298abe1f69cbb88938ff96a12445eb6 SHA256 920db6d07427fae919b1b936fea88d242bb664d5e1fbbce3b8ee6bbe98744d1a
+DIST cmucl-20b-x86-linux.tar.bz2 17612706 RMD160 ecc41c357f0db335d989d07383f3d0046cc20ce8 SHA1 73aca21ec8ee3b8119c34883d884808466de89a2 SHA256 b6c9e1c25abb69fbe08892e3e58e7dc24accb8c0e5a37a7685bfccaf67c800e8
DIST cmucl-src-19d.tar.bz2 3780254 RMD160 5f691d74f4263e33142f478616a8c09524f2318b SHA1 8fac36916987c37f1092168d56aaf16c562af843 SHA256 027a86d3e2729e14cb8101d088716a61fb62b5197af66a4f80457f13134514bf
DIST cmucl-src-20a.tar.bz2 6203135 RMD160 27042678cf4653e0a0a7be32dd3cadc9fd7aa118 SHA1 4381905b212678f7953920abb49bf24e822d1ace SHA256 a1821808fb2906a3f6fc7229fd7bc558b0896a08d2a227d1b9e726db09c3777d
+DIST cmucl-src-20b.tar.bz2 5834128 RMD160 bb0e19437faacbf99dfa0cd087ef89b2c7f5ddee SHA1 ea2fa41bbba3e8b51d55d7c5fc787baa537e8648 SHA256 42dcb9851e692b18d1f544bcdcb3ae18704cc9726ba42780c9677bac700cf5ab
DIST cmucl_19c-release-20051115-1.diff.gz 1506111 RMD160 4b74b89e4deaa1dff1e8d003e06a82f59a0c77a3 SHA1 4c8a131e027fe35503add94adc469942d6e42fa2 SHA256 65ef4018294b6fed388c39643782e6e611ee87bdb944c639da648522a4c2d336
DIST cmucl_19c-release-20051115.orig.tar.gz 4654304 RMD160 1c6b165a8427839d48639047020ee7c9c368da65 SHA1 4d95482e94b55e93a7efb148c63f1f2fe0a5449e SHA256 4eebac35decc23449f4cf79996c31ea674df7136e08b829210d352c5d20d2407
EBUILD cmucl-19c.ebuild 4643 RMD160 b0fc85b96e282f5899fefbfee5f0f6668bfe9bda SHA1 959fab7f0bae309371f87d84d3d85ecaf5e8380a SHA256 3759181867335f834ca46991d15181ee63424bb8c711171f88b2f50fa7e88177
EBUILD cmucl-19d_p2.ebuild 1828 RMD160 2e67d3946b01ceb4b3a779810404f512bd23c383 SHA1 e28ea36c88002d04190f8b021e6da59cf9effc3b SHA256 955c0485c761798b97076e767c7b502294e226360c53ba92b1ffde427195594b
EBUILD cmucl-20a.ebuild 2246 RMD160 23c0e1b5ff8bfc684fe6ea823977e0b2604bbe5f SHA1 7e96f38c92996bd31914491616a2a1aa2f32e42e SHA256 0398e14b6991cbe4c7c834ed89e0dcf048faa53410f4e07c2a38e6837572dedd
-MISC ChangeLog 7070 RMD160 014edaab2ad274d25816e9c78c29c8618caecb84 SHA1 58d231c273d718b421568871d7e5ca6bfd4e434c SHA256 d413c3b4f6aa7d80171a4ba724805c0b676522330bf62971f9596fa6af806d17
-MISC metadata.xml 1201 RMD160 a53109298a26c111b24bccabac8c5fa8084d2756 SHA1 4bc50d74b522f84bfaaec751b935b0cffe872ff1 SHA256 e0d0e5aef67b7b9cb0aae16ac7b92fa8279a5e3a9b658a87ce4d8d20eea94edb
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.16 (GNU/Linux)
-
-iEYEARECAAYFAk0LxmAACgkQOeoy/oIi7uxPpgCgg1jzc9Vfu1DPbKkgNM1805nC
-9XUAn2LAuwBHkbmzZB5EZOh23XOAvLYS
-=dRWW
------END PGP SIGNATURE-----
+EBUILD cmucl-20b_p001.ebuild 2901 RMD160 def5448f2c99daa04ec0dcf204754f0bd73b4969 SHA1 b755c6fec8d486745f66e13395bad8d4571d6d8c SHA256 2c137b520ac713d25decb16efac99c9976bfc51923295bef72a1cea865569331
+MISC ChangeLog 7414 RMD160 57f88fae04d439d98637eed00480e61aee860f64 SHA1 dff2f0d8b36453395e036265e714e975e6cb8486 SHA256 c94d9d9cf4ef4b0f23cefcc5680748bc63b1d1e7e673b964ef37c771c216a02e
+MISC metadata.xml 1361 RMD160 44f5e6e7bbebb887545a7acb7b45603b9f8114f1 SHA1 bd23e8ad97db5f9f350eded14d333f309f53698b SHA256 f4b7f1014988c330913565e96209b71c5a765e28237c66f72cc0fb5d93b06b68
diff --git a/dev-lisp/cmucl/cmucl-20b_p001.ebuild b/dev-lisp/cmucl/cmucl-20b_p001.ebuild
new file mode 100644
index 000000000000..b4c2a53f7658
--- /dev/null
+++ b/dev-lisp/cmucl/cmucl-20b_p001.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lisp/cmucl/cmucl-20b_p001.ebuild,v 1.1 2011/04/28 20:21:33 grozin Exp $
+
+EAPI=3
+inherit eutils toolchain-funcs
+
+MY_PV=${PV:0:3}
+
+DESCRIPTION="CMU Common Lisp is an implementation of ANSI Common Lisp"
+HOMEPAGE="http://www.cons.org/cmucl/"
+SRC_URI="http://common-lisp.net/project/cmucl/downloads/release/${MY_PV}/cmucl-src-${MY_PV}.tar.bz2
+ http://common-lisp.net/project/cmucl/downloads/release/${MY_PV}/cmucl-${MY_PV}-x86-linux.tar.bz2"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="~x86"
+IUSE="X source sse2"
+
+RDEPEND="x11-libs/openmotif"
+DEPEND="${RDEPEND}
+ sys-devel/bc"
+PDEPEND="dev-lisp/gentoo-init"
+
+S="${WORKDIR}"
+
+# glo_usev flagname [<if_yes> [<if_no>]]
+# If $(use FLAGNAME) return true, echo IF_YES to standard output,
+# otherwise echo IF_NO. IF_YES defaults to FLAGNAME if not specified
+glo_usev() {
+ if [[ $# < 1 || $# > 3 ]]; then
+ echo "Usage: ${0} flag [if_yes [if_no]]"
+ die "${0}: wrong number of arguments: $#"
+ fi
+ local if_yes="${2:-${1}}" if_no="${3}"
+ if useq ${1} ; then
+ printf "%s" "${if_yes}"
+ return 0
+ else
+ printf "%s" "${if_no}"
+ return 1
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${MY_PV}-patch001.patch
+ epatch "${FILESDIR}"/fix-man-and-doc-installation.patch
+ epatch "${FILESDIR}"/${MY_PV}-execstack-fixes.patch
+ epatch "${FILESDIR}"/${MY_PV}-customize-lisp-implementation-version.patch
+ epatch "${FILESDIR}"/${MY_PV}-nositeinit-build.patch
+}
+
+src_compile() {
+ local cmufpu=$(glo_usev sse2 sse2 x87)
+ local cmuopts="$(glo_usev !X -u) -f ${cmufpu}"
+ local buildimage="bin/lisp -core lib/cmucl/lib/lisp-${cmufpu}.core -noinit -nositeinit -batch"
+ env CC="$(tc-getCC)" src/tools/build.sh -v "-gentoo-${PR}" -C "" -o "${buildimage}" ${cmuopts} || die "Cannot build the compiler"
+}
+
+src_install() {
+ env MANDIR=share/man/man1 DOCDIR=share/doc/${PF} \
+ src/tools/make-dist.sh -S -g -G root -O root build-4 ${MY_PV} x86 linux \
+ || die "Cannot build installation archive"
+ # Necessary otherwise tar will fail
+ dodir /usr
+ pushd "${D}"/usr
+ tar xzpf "${WORKDIR}"/cmucl-${MY_PV}-x86-linux.tar.gz \
+ || die "Cannot install main system"
+ if use X ; then
+ tar xzpf "${WORKDIR}"/cmucl-${MY_PV}-x86-linux.extra.tar.gz \
+ || die "Cannot install extra files"
+ fi
+ if use source; then
+ # Necessary otherwise tar will fail
+ dodir /usr/share/common-lisp/source/${PN}
+ cd "${D}"/usr/share/common-lisp/source/${PN}
+ tar --strip-components 1 -xzpf "${WORKDIR}"/cmucl-src-${MY_PV}.tar.gz \
+ || die "Cannot install sources"
+ fi
+ popd
+
+ # Install site config file
+ sed "s,@PF@,${PF},g ; s,@VERSION@,$(date +%F),g" \
+ < "${FILESDIR}"/site-init.lisp.in \
+ > "${D}"/usr/$(get_libdir)/cmucl/site-init.lisp \
+ || die "Cannot fix site-init.lisp"
+ insinto /etc
+ doins "${FILESDIR}"/cmuclrc || die "Failed to install cmuclrc"
+}
diff --git a/dev-lisp/cmucl/files/20b-customize-lisp-implementation-version.patch b/dev-lisp/cmucl/files/20b-customize-lisp-implementation-version.patch
new file mode 100644
index 000000000000..41da86d014ff
--- /dev/null
+++ b/dev-lisp/cmucl/files/20b-customize-lisp-implementation-version.patch
@@ -0,0 +1,16 @@
+diff -ur cmucl.orig/src/code/misc.lisp cmucl/src/code/misc.lisp
+--- cmucl.orig/src/code/misc.lisp 2010-04-20 19:57:45.000000000 +0200
++++ cmucl/src/code/misc.lisp 2010-10-15 02:15:53.064623104 +0200
+@@ -181,8 +181,10 @@
+
+ (defun lisp-implementation-version ()
+ "Returns a string describing the implementation version."
+- (format nil "~A (~X~A)" *lisp-implementation-version* c:byte-fasl-file-version
+- #+unicode (intl:gettext " Unicode") #-unicode ""))
++ (format nil "~X~A~A"
++ c:byte-fasl-file-version
++ #+unicode "-unicode" #-unicode ""
++ *lisp-implementation-version*))
+
+ (defun machine-instance ()
+ "Returns a string giving the name of the local machine."
diff --git a/dev-lisp/cmucl/files/20b-execstack-fixes.patch b/dev-lisp/cmucl/files/20b-execstack-fixes.patch
new file mode 100644
index 000000000000..034848d64a26
--- /dev/null
+++ b/dev-lisp/cmucl/files/20b-execstack-fixes.patch
@@ -0,0 +1,118 @@
+diff -Naur work.old/src/lisp/alpha-assem.S work/src/lisp/alpha-assem.S
+--- work.old/src/lisp/alpha-assem.S 2003-03-06 11:13:09.000000000 -0300
++++ work/src/lisp/alpha-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -297,3 +297,7 @@
+ function_end_breakpoint_end:
+
+
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/amd64-assem.S work/src/lisp/amd64-assem.S
+--- work.old/src/lisp/amd64-assem.S 2004-07-27 19:03:53.000000000 -0300
++++ work/src/lisp/amd64-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -1051,3 +1051,7 @@
+ .end
+
+ #endif /* LINKAGE_TABLE */
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/backtrace.c work/src/lisp/backtrace.c
+--- work.old/src/lisp/backtrace.c 2009-06-11 13:04:01.000000000 -0300
++++ work/src/lisp/backtrace.c 2010-05-10 00:06:22.000000000 -0300
+@@ -3,6 +3,8 @@
+ * Simple backtrace facility. More or less from Rob's lisp version.
+ */
+
++#include "os-common.h"
++
+ #include <stdio.h>
+ #include <signal.h>
+ #include "lisp.h"
+diff -Naur work.old/src/lisp/hppa-assem.S work/src/lisp/hppa-assem.S
+--- work.old/src/lisp/hppa-assem.S 2002-08-23 14:05:35.000000000 -0300
++++ work/src/lisp/hppa-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -460,3 +460,7 @@
+
+ .export function_end_breakpoint_end
+ function_end_breakpoint_end
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/linux-stubs.S work/src/lisp/linux-stubs.S
+--- work.old/src/lisp/linux-stubs.S 2005-08-17 00:40:16.000000000 -0300
++++ work/src/lisp/linux-stubs.S 2010-05-10 00:06:34.000000000 -0300
+@@ -995,3 +995,7 @@
+ /* doe(yperr_string) */
+ /* doe(ypprot_err) */
+ #endif /* defined(LINKAGE_TABLE) && !defined(__FreeBSD__) */
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/lisp.c work/src/lisp/lisp.c
+--- work.old/src/lisp/lisp.c 2009-07-13 16:41:54.000000000 -0300
++++ work/src/lisp/lisp.c 2010-05-10 00:05:55.000000000 -0300
+@@ -5,6 +5,9 @@
+ *
+ */
+
++#include "os-common.h"
++#include <time.h>
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <limits.h>
+diff -Naur work.old/src/lisp/mips-assem.S work/src/lisp/mips-assem.S
+--- work.old/src/lisp/mips-assem.S 2002-08-23 14:01:02.000000000 -0300
++++ work/src/lisp/mips-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -402,3 +402,7 @@
+ move v0, a1
+ j _restore_state
+ .end save_state
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/os-common.h work/src/lisp/os-common.h
+--- work.old/src/lisp/os-common.h 1969-12-31 21:00:00.000000000 -0300
++++ work/src/lisp/os-common.h 2010-05-10 00:06:22.000000000 -0300
+@@ -0,0 +1 @@
++char* convert_lisp_string(char *c_string, void *lisp_string, int len);
+diff -Naur work.old/src/lisp/ppc-assem.S work/src/lisp/ppc-assem.S
+--- work.old/src/lisp/ppc-assem.S 2006-02-25 01:35:58.000000000 -0300
++++ work/src/lisp/ppc-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -721,3 +721,7 @@
+ SET_SIZE(fpu_restore)
+
+ #endif
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/sparc-assem.S work/src/lisp/sparc-assem.S
+--- work.old/src/lisp/sparc-assem.S 2003-10-23 23:57:00.000000000 -0300
++++ work/src/lisp/sparc-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -837,3 +837,7 @@
+ * End:
+ */
+
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/x86-assem.S work/src/lisp/x86-assem.S
+--- work.old/src/lisp/x86-assem.S 2008-12-24 02:36:40.000000000 -0200
++++ work/src/lisp/x86-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -798,3 +798,7 @@
+ ENDFUNC(undefined_foreign_symbol_trap)
+
+ #endif /* LINKAGE_TABLE */
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
diff --git a/dev-lisp/cmucl/files/20b-nositeinit-build.patch b/dev-lisp/cmucl/files/20b-nositeinit-build.patch
new file mode 100644
index 000000000000..3aea006d159d
--- /dev/null
+++ b/dev-lisp/cmucl/files/20b-nositeinit-build.patch
@@ -0,0 +1,18 @@
+Author: Stelian Ionescu <sionescu@cddr.org>
+Date: 2010-11-03
+Status: Upstream
+Description: Avoids loading the site init during build
+
+diff -ur cmucl.orig//src/tools/build.sh cmucl/src/tools/build.sh
+--- cmucl.orig//src/tools/build.sh 2010-09-02 18:16:18.000000000 +0200
++++ cmucl/src/tools/build.sh 2010-11-03 15:57:06.615611658 +0100
+@@ -126,7 +126,8 @@
+ fi
+ $TOOLDIR/load-world.sh $TARGET "$VERSION" || { echo "Failed: $TOOLDIR/load-world.sh"; exit 1; }
+
+- $TARGET/lisp/lisp -batch -noinit $FPU_MODE < /dev/null || { echo "Failed: $TARGET/lisp/lisp -batch -noinit $FPU_MODE"; exit 1; }
++ $TARGET/lisp/lisp -batch -noinit -nositeinit $FPU_MODE < /dev/null || \
++ { echo "Failed: $TARGET/lisp/lisp -batch -noinit $FPU_MODE"; exit 1; }
+ return 0;
+ fi
+ }
diff --git a/dev-lisp/cmucl/files/20b-patch001.patch b/dev-lisp/cmucl/files/20b-patch001.patch
new file mode 100644
index 000000000000..f9464221e365
--- /dev/null
+++ b/dev-lisp/cmucl/files/20b-patch001.patch
@@ -0,0 +1,119 @@
+Author: Raymond Toy <rtoy@common-lisp.net>
+Date: 2010-11-02
+Status: Upstream
+Description: Fixes bug in SSE2 VOP for COMPLEX arrays
+
+diff -ru cmucl.orig//src/compiler/x86/float-sse2.lisp cmucl/src/compiler/x86/float-sse2.lisp
+--- cmucl.orig//src/compiler/x86/float-sse2.lisp 2010-08-15 17:09:41.000000000 +0200
++++ cmucl/src/compiler/x86/float-sse2.lisp 2010-11-01 13:41:54.860889371 +0100
+@@ -7,7 +7,7 @@
+ ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
+ ;;;
+ (ext:file-comment
+- "$Header: /var/cvsroot/gentoo-x86/dev-lisp/cmucl/files/20b-patch001.patch,v 1.1 2011/04/28 20:21:33 grozin Exp $")
++ "$Header: /var/cvsroot/gentoo-x86/dev-lisp/cmucl/files/20b-patch001.patch,v 1.1 2011/04/28 20:21:33 grozin Exp $")
+ ;;;
+ ;;; **********************************************************************
+ ;;;
+@@ -1390,13 +1390,19 @@
+ (:arg-types complex-single-float)
+ (:results (r :scs (single-reg)))
+ (:result-types single-float)
++ (:temporary (:sc single-reg) temp)
+ (:policy :fast-safe)
+ (:note _N"complex float realpart")
+ (:generator 3
+ (sc-case x
+ (complex-single-reg
+- (inst xorps r r) ; temp = 0|0|0|0
+- (inst movss r x)) ; r = 0|0|0|x
++ (cond ((location= r x)
++ (inst xorps temp temp) ; temp = 0|0|0|0
++ (inst movss temp x) ; temp = 0|0|0|x
++ (inst movss r temp)) ; r = temp
++ (t
++ (inst xorps r r) ; temp = 0|0|0|0
++ (inst movss r x)))) ; r = 0|0|0|x
+ (complex-single-stack
+ (inst movss r (ea-for-csf-real-stack x)))
+ (descriptor-reg
+@@ -1408,13 +1414,19 @@
+ (:arg-types complex-double-float)
+ (:results (r :scs (double-reg)))
+ (:result-types double-float)
++ (:temporary (:sc double-reg) temp)
+ (:policy :fast-safe)
+- (:note _N"complex float realpart")
++ (:note "complex float realpart")
+ (:generator 3
+ (sc-case x
+ (complex-double-reg
+- (inst xorpd r r) ; temp = 0|0
+- (inst movsd r x)) ; r = 0|x
++ (cond ((location= r x)
++ (inst xorpd temp temp) ; temp = 0|0
++ (inst movsd temp x) ; temp = 0|x
++ (inst movsd r temp)) ; r = temp
++ (t
++ (inst xorpd r r) ; r = 0|0
++ (inst movsd r x)))) ; r = 0|x
+ (complex-double-stack
+ (inst movsd r (ea-for-cdf-real-stack x)))
+ (descriptor-reg
+@@ -1457,8 +1469,13 @@
+ (:generator 3
+ (sc-case x
+ (complex-double-reg
+- (inst xorpd r r) ; r = 0|0
+- (inst movhlps r x)) ; r = 0|b
++ (cond ((location= r x)
++ (inst xorpd temp temp) ; temp = 0|0
++ (inst movhlps temp x) ; temp = 0|b
++ (inst movsd r temp)) ; r = temp
++ (t
++ (inst xorpd r r) ; r = 0|0
++ (inst movhlps r x)))) ; r = 0|b
+ (complex-double-stack
+ (inst movsd r (ea-for-cdf-imag-stack x)))
+ (descriptor-reg
+@@ -1835,7 +1852,7 @@
+ (convert-complex %complex-single-float cvtpd2ps complex-single complex-double))
+
+ (macrolet
+- ((convert-complex (trans op base-ea to from)
++ ((convert-complex (trans op base-ea to from movinst)
+ (let ((name (symbolicate to "/" from))
+ (from-sc (symbolicate from "-REG"))
+ (from-sc-stack (symbolicate from "-STACK"))
+@@ -1849,21 +1866,27 @@
+ (:arg-types ,from-type)
+ (:results (r :scs (,to-sc)))
+ (:result-types ,to-type)
++ (:temporary (:sc ,to-sc) temp)
+ (:policy :fast-safe)
+ (:generator 1
+ (sc-case x
+ (,from-sc
+ ;; Need to make sure the imaginary part is zero
+- (inst xorps r r)
+- (inst ,op r x))
++ (cond ((location= x r)
++ (inst xorps temp temp)
++ (inst ,op temp x)
++ (inst ,movinst r temp))
++ (t
++ (inst xorps r r)
++ (inst ,op r x))))
+ (,from-sc-stack
+ (inst xorps r r)
+ (inst ,op r (,(symbolicate "EA-FOR-" base-ea "-STACK") x)))
+ (descriptor-reg
+ (inst xorps r r)
+ (inst ,op r (,(symbolicate "EA-FOR-" base-ea "-DESC") x)))))))))
+- (convert-complex %complex-double-float cvtss2sd sf complex-double single)
+- (convert-complex %complex-single-float cvtsd2ss df complex-single double))
++ (convert-complex %complex-double-float cvtss2sd sf complex-double single movapd)
++ (convert-complex %complex-single-float cvtsd2ss df complex-single double movaps))
+
+ ;; Add and subtract for two complex arguments
+ (macrolet
diff --git a/dev-lisp/cmucl/files/site-init.lisp.in b/dev-lisp/cmucl/files/site-init.lisp.in
index 7a1010102003..1b232166c889 100644
--- a/dev-lisp/cmucl/files/site-init.lisp.in
+++ b/dev-lisp/cmucl/files/site-init.lisp.in
@@ -12,10 +12,6 @@
(in-package "SYSTEM")
-(ext:without-package-locks
- (defun lisp-implementation-version ()
- (format nil "~X-~A" c:byte-fasl-file-version "@VERSION@")))
-
(if (probe-file "/etc/cmuclrc")
(load "/etc/cmuclrc")
(format t "~%;;; Warning: There is no /etc/cmuclrc file (which should have been created during emerge"))
diff --git a/dev-lisp/cmucl/metadata.xml b/dev-lisp/cmucl/metadata.xml
index 495851f3f501..87a6440bc0e3 100644
--- a/dev-lisp/cmucl/metadata.xml
+++ b/dev-lisp/cmucl/metadata.xml
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
+<maintainer>
+<email>grozin@gentoo.org</email>
+<name>Andrey Grozin</name>
+</maintainer>
<herd>common-lisp</herd>
<longdescription>
CMUCL is a free implementation of the Common Lisp programming language
@@ -28,5 +32,6 @@ ANSI Common Lisp standard. Here is a summary of its main features:
</longdescription>
<use>
<flag name='nosource'>Don't include source code for CMUCL in installation</flag>
+<flag name='source'>Include source code for CMUCL in installation</flag>
</use>
</pkgmetadata>