summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirkjan Ochtman <djc@gentoo.org>2012-02-16 12:18:54 +0000
committerDirkjan Ochtman <djc@gentoo.org>2012-02-16 12:18:54 +0000
commita6d1b6a4fdd3b7b7875ae57f19d2bfd856b9a74a (patch)
treed1e04445bef618523fcd00aeb92216a184607f2d /dev-python
parentFix build with new automake, bug #398971 by Juergen Rose and Rolf S. Arvidson... (diff)
downloadgentoo-2-a6d1b6a4fdd3b7b7875ae57f19d2bfd856b9a74a.tar.gz
gentoo-2-a6d1b6a4fdd3b7b7875ae57f19d2bfd856b9a74a.tar.bz2
gentoo-2-a6d1b6a4fdd3b7b7875ae57f19d2bfd856b9a74a.zip
Made xml mandatory, stackless is built by default, split patches.
(Portage version: 2.1.10.46/cvs/Linux x86_64)
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/pypy/ChangeLog9
-rw-r--r--dev-python/pypy/files/1.8-elf-metadata-26a8d3fc57a7.patch10
-rw-r--r--dev-python/pypy/files/1.8-sext-instructions-02dc2f6160ee.patch22
-rw-r--r--dev-python/pypy/pypy-1.8-r1.ebuild99
4 files changed, 139 insertions, 1 deletions
diff --git a/dev-python/pypy/ChangeLog b/dev-python/pypy/ChangeLog
index 757ccd02dbba..79109b3f352a 100644
--- a/dev-python/pypy/ChangeLog
+++ b/dev-python/pypy/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for dev-python/pypy
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/pypy/ChangeLog,v 1.14 2012/02/14 02:16:51 floppym Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/pypy/ChangeLog,v 1.15 2012/02/16 12:18:54 djc Exp $
+
+*pypy-1.8-r1 (16 Feb 2012)
+
+ 16 Feb 2012; Dirkjan Ochtman <djc@gentoo.org> +pypy-1.8-r1.ebuild,
+ +files/1.8-sext-instructions-02dc2f6160ee.patch,
+ +files/1.8-elf-metadata-26a8d3fc57a7.patch:
+ Made xml mandatory, stackless is built by default, split patches.
14 Feb 2012; Mike Gilbert <floppym@gentoo.org> pypy-1.7-r2.ebuild,
pypy-1.8.ebuild:
diff --git a/dev-python/pypy/files/1.8-elf-metadata-26a8d3fc57a7.patch b/dev-python/pypy/files/1.8-elf-metadata-26a8d3fc57a7.patch
new file mode 100644
index 000000000000..d58137350e2d
--- /dev/null
+++ b/dev-python/pypy/files/1.8-elf-metadata-26a8d3fc57a7.patch
@@ -0,0 +1,10 @@
+--- pypy-pypy-release-1.7/pypy/translator/c/gcc/trackgcroot.py.bak 2011-11-29 14:22:29.000000000 +0100
++++ pypy-pypy-release-1.7/pypy/translator/c/gcc/trackgcroot.py 2011-11-29 14:22:55.000000000 +0100
+@@ -1694,6 +1694,7 @@
+ }
+ """
+ elif self.format in ('elf64', 'darwin64'):
++ print >> output, "\t.section .note.GNU-stack,\"\",%progbits"
+ print >> output, "\t.text"
+ print >> output, "\t.globl %s" % _globalname('pypy_asm_stackwalk')
+ _variant(elf64='.type pypy_asm_stackwalk, @function',
diff --git a/dev-python/pypy/files/1.8-sext-instructions-02dc2f6160ee.patch b/dev-python/pypy/files/1.8-sext-instructions-02dc2f6160ee.patch
new file mode 100644
index 000000000000..6528479e098c
--- /dev/null
+++ b/dev-python/pypy/files/1.8-sext-instructions-02dc2f6160ee.patch
@@ -0,0 +1,22 @@
+--- pypy/translator/c/gcc/trackgcroot.py.old 2012-02-15 14:11:38.551479431 -0800
++++ pypy/translator/c/gcc/trackgcroot.py 2012-02-15 00:55:20.082136135 -0800
+@@ -471,8 +471,8 @@
+ return []
+
+ IGNORE_OPS_WITH_PREFIXES = dict.fromkeys([
+- 'cmp', 'test', 'set', 'sahf', 'lahf', 'cltd', 'cld', 'std',
+- 'rep', 'movs', 'lods', 'stos', 'scas', 'cwtl', 'cwde', 'prefetch',
++ 'cmp', 'test', 'set', 'sahf', 'lahf', 'cld', 'std',
++ 'rep', 'movs', 'lods', 'stos', 'scas', 'cwde', 'prefetch',
+ # floating-point operations cannot produce GC pointers
+ 'f',
+ 'cvt', 'ucomi', 'comi', 'subs', 'subp' , 'adds', 'addp', 'xorp',
+@@ -485,6 +485,8 @@
+ 'bswap', 'bt', 'rdtsc',
+ 'punpck', 'pshufd', 'pcmp', 'pand', 'psllw', 'pslld', 'psllq',
+ 'paddq', 'pinsr',
++ # sign-extending moves should not produce GC pointers
++ 'cbtw', 'cwtl', 'cwtd', 'cltd', 'cltq', 'cqto',
+ # zero-extending moves should not produce GC pointers
+ 'movz',
+ # locked operations should not move GC pointers, at least so far
diff --git a/dev-python/pypy/pypy-1.8-r1.ebuild b/dev-python/pypy/pypy-1.8-r1.ebuild
new file mode 100644
index 000000000000..1fcf50e17159
--- /dev/null
+++ b/dev-python/pypy/pypy-1.8-r1.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-python/pypy/pypy-1.8-r1.ebuild,v 1.1 2012/02/16 12:18:54 djc Exp $
+
+EAPI="4"
+
+inherit eutils toolchain-funcs check-reqs python versionator
+
+DESCRIPTION="PyPy is a fast, compliant alternative implementation of the Python language"
+HOMEPAGE="http://pypy.org/"
+SRC_URI="https://bitbucket.org/pypy/pypy/get/release-${PV}.tar.bz2 -> ${P}.tar.bz2"
+SLOTVER=$(get_version_component_range 1-2 ${PV})
+
+LICENSE="MIT"
+SLOT="${SLOTVER}"
+PYTHON_ABI="2.7-pypy-${SLOTVER}"
+KEYWORDS="~amd64 ~x86"
+IUSE="bzip2 doc examples +jit ncurses sandbox shadowstack sqlite ssl"
+
+RDEPEND=">=sys-libs/zlib-1.1.3
+ virtual/libffi
+ virtual/libintl
+ dev-libs/expat
+ bzip2? ( app-arch/bzip2 )
+ ncurses? ( sys-libs/ncurses )
+ sqlite? ( dev-db/sqlite:3 )
+ ssl? ( dev-libs/openssl )"
+DEPEND="${RDEPEND}"
+PDEPEND="app-admin/python-updater"
+
+DOC="README LICENSE"
+
+pkg_pretend() {
+ CHECKREQS_MEMORY="2G"
+ use amd64 && CHECKREQS_MEMORY="4G"
+ check-reqs_pkg_pretend
+}
+
+src_unpack() {
+ default
+ mv pypy-pypy-* "${S}" || die
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${PV}-elf-metadata-26a8d3fc57a7.patch"
+ epatch "${FILESDIR}/${PV}-sext-instructions-02dc2f6160ee.patch"
+ epatch "${FILESDIR}/1.7-scripts-location.patch"
+ epatch "${FILESDIR}/pypy-1.7-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
+ epatch "${FILESDIR}/pypy-1.7-distutils-fix_handling_of_executables_and_flags.patch"
+}
+
+src_compile() {
+ local conf
+ if use jit; then
+ conf="-Ojit"
+ else
+ conf="-O2"
+ fi
+ if use shadowstack; then
+ conf+=" --gcrootfinder=shadowstack"
+ fi
+ if use sandbox; then
+ conf+=" --sandbox"
+ fi
+
+ conf+=" ./pypy/translator/goal/targetpypystandalone.py"
+ # Avoid linking against libraries disabled by use flags
+ local optional_use=("bzip2" "ncurses" "ssl")
+ local optional_mod=("bz2" "_minimal_curses" "_ssl")
+ for ((i = 0; i < ${#optional_use[*]}; i++)); do
+ if use ${optional_use[$i]}; then
+ conf+=" --withmod-${optional_mod[$i]}"
+ else
+ conf+=" --withoutmod-${optional_mod[$i]}"
+ fi
+ done
+
+ local translate_cmd="$(PYTHON -2) ./pypy/translator/goal/translate.py --batch $conf"
+ echo ${_BOLD}"${translate_cmd}"${_NORMAL}
+ ${translate_cmd} || die "compile error"
+}
+
+src_install() {
+ local INSPATH="/usr/$(get_libdir)/pypy${SLOT}"
+ insinto ${INSPATH}
+ doins -r include lib_pypy lib-python pypy-c
+ fperms a+x ${INSPATH}/pypy-c
+ dosym ../$(get_libdir)/pypy${SLOT}/pypy-c /usr/bin/pypy-c${SLOT}
+
+ if ! use sqlite; then
+ rm -fr "${ED}${INSPATH}/lib-python/2.7/sqlite3"
+ rm -fr "${ED}${INSPATH}/lib-python/modified-2.7/sqlite3"
+ rm -f "${ED}${INSPATH}/lib_pypy/_sqlite3.py"
+ fi
+}
+
+src_test() {
+ $(PYTHON -2) ./pypy/test_all.py --pypy=./pypy-c lib-python
+}