diff options
author | Dirkjan Ochtman <djc@gentoo.org> | 2012-02-16 12:18:54 +0000 |
---|---|---|
committer | Dirkjan Ochtman <djc@gentoo.org> | 2012-02-16 12:18:54 +0000 |
commit | a6d1b6a4fdd3b7b7875ae57f19d2bfd856b9a74a (patch) | |
tree | d1e04445bef618523fcd00aeb92216a184607f2d /dev-python | |
parent | Fix build with new automake, bug #398971 by Juergen Rose and Rolf S. Arvidson... (diff) | |
download | gentoo-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/ChangeLog | 9 | ||||
-rw-r--r-- | dev-python/pypy/files/1.8-elf-metadata-26a8d3fc57a7.patch | 10 | ||||
-rw-r--r-- | dev-python/pypy/files/1.8-sext-instructions-02dc2f6160ee.patch | 22 | ||||
-rw-r--r-- | dev-python/pypy/pypy-1.8-r1.ebuild | 99 |
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 +} |