diff --git a/dev-lang/v8/Manifest b/dev-lang/v8/Manifest new file mode 100644 index 000000000..6da73c0c4 --- /dev/null +++ b/dev-lang/v8/Manifest @@ -0,0 +1,9 @@ +AUX v8-arm-enable-hardfp.patch 472 RMD160 46bc1112d273b4869f2fbe2b687d882fc7f861e8 SHA1 22a4322237fb478bd5804801a9911a08e153f3bc SHA256 878ebaf2d2c6db822ecf23deff39b7974278ef723aa4e98709a857af550a61be +AUX v8-fix-arm-target.patch 231 RMD160 0381c520d02508de97360d690ca93c727805e3b4 SHA1 02e4964fa25a314e41ed2561c90b9cd882964228 SHA256 6c9cd385aae915896226cb34fd1bb477bcb7e8f24fbc3e03768fae1c546eed2f +AUX v8-no-O3-r0.patch 422 RMD160 37467564f5ea6ff519cf86b7209a534424abbba3 SHA1 edbf6d9afc5ea6fdd0e9c0bf06d65caa488914c6 SHA256 c38a393a23adff83a799cb137f8a8e5092f87a62db109d7ce41becd6dec781f5 +AUX v8-no-werror-r0.patch 573 RMD160 17791cdee16894b37e937f23146aff52bc3d4775 SHA1 fa814bfc6c64570e0e69a184f1c36c359b63eb2d SHA256 8968e9b4f362d3e059675c6bb9b6be0d104ac478a62c50a8f7304f47d514e782 +DIST v8-3.7.12.20.tar.bz2 9835664 RMD160 314f635bbb6d01499fe589c65e206249930df5bb SHA1 8dc81810a3fd2e79b9ed967314f76d76f0c1e4fc SHA256 af5a975e1afb6c3d0fa8e36324cc682553b692dd65e889508b1a1732929bdde1 +DIST v8-3.8.7.1.tar.bz2 9867655 RMD160 60fd2bf0a6ea73a02ee3d279de72e7b235d5d23f SHA1 e9218a5aadbb284dd91e93c71b5c2c1ab704eeea SHA256 3c6976f5f5d89790759fbf36c399e97bdf1c190a1af9bb2bfdae14579d003f83 +EBUILD v8-3.7.12.20.ebuild 3175 RMD160 2f592c6c05bc907bb3298a13f6d846a91b6eaa46 SHA1 5c09d1697e31f6971c81c5f1bd53e67d6689bebe SHA256 3d98e4c7f924f00195c24046beee728a349b478851cba9238fdb8829b318bbf4 +EBUILD v8-3.8.7.1.ebuild 3173 RMD160 4c9c7d68e8a1bf570af30c0322d827d2e15364a0 SHA1 ab3f769be67db0e2fcca746cea68b2cf3f999366 SHA256 453782e71aaecacc861f02c99e00a7ee43076e9c703155487c7e3493d146585e +MISC metadata.xml 162 RMD160 3485b95578a49782c3188a0f963f90c688287fe1 SHA1 46226eeaf4948209a093253f92010abea501daef SHA256 8a3ecdcf518f45ec4843398f9896c9b4d1c867ff2cf2851cf40b06f756f111e8 diff --git a/dev-lang/v8/files/v8-arm-enable-hardfp.patch b/dev-lang/v8/files/v8-arm-enable-hardfp.patch new file mode 100644 index 000000000..8521b779e --- /dev/null +++ b/dev-lang/v8/files/v8-arm-enable-hardfp.patch @@ -0,0 +1,11 @@ +--- v8-3.8.7.1.orig/build/common.gypi ++++ v8-3.8.7.1/build/common.gypi +@@ -57,7 +57,7 @@ + # EABI calling convention where double arguments are passed in VFP + # registers. Note that the GCC flag '-mfloat-abi=hard' should be used as + # well when compiling for the ARM target. +- 'v8_use_arm_eabi_hardfloat%': 'false', ++ 'v8_use_arm_eabi_hardfloat%': 'true', + + # Similar to the ARM hard float ABI but on MIPS. + 'v8_use_mips_abi_hardfloat%': 'true', diff --git a/dev-lang/v8/files/v8-fix-arm-target.patch b/dev-lang/v8/files/v8-fix-arm-target.patch new file mode 100644 index 000000000..0b91e4b79 --- /dev/null +++ b/dev-lang/v8/files/v8-fix-arm-target.patch @@ -0,0 +1,12 @@ +--- v8-3.8.7.1.orig/build/armu.gypi ++++ v8-3.8.7.1/build/armu.gypi +@@ -27,7 +27,7 @@ + + { + 'variables': { +- 'target_arch': 'ia32', ++ 'target_arch': 'arm', + 'v8_target_arch': 'arm', + 'armv7': 1, + 'arm_neon': 0, + diff --git a/dev-lang/v8/files/v8-no-O3-r0.patch b/dev-lang/v8/files/v8-no-O3-r0.patch new file mode 100644 index 000000000..aec4924cf --- /dev/null +++ b/dev-lang/v8/files/v8-no-O3-r0.patch @@ -0,0 +1,11 @@ +--- SConstruct.orig 2010-08-02 04:00:18.000000000 +0200 ++++ SConstruct 2010-08-02 04:00:28.000000000 +0200 +@@ -148,7 +148,7 @@ + } + }, + 'mode:release': { +- 'CCFLAGS': ['-O3', '-fomit-frame-pointer', '-fdata-sections', ++ 'CCFLAGS': ['-fomit-frame-pointer', '-fdata-sections', + '-ffunction-sections'], + 'os:android': { + 'CCFLAGS': ['-mthumb', '-Os'], diff --git a/dev-lang/v8/files/v8-no-werror-r0.patch b/dev-lang/v8/files/v8-no-werror-r0.patch new file mode 100644 index 000000000..5976ff4cd --- /dev/null +++ b/dev-lang/v8/files/v8-no-werror-r0.patch @@ -0,0 +1,19 @@ +--- SConstruct.orig 2010-07-25 01:45:25.000000000 +0200 ++++ SConstruct 2010-07-25 01:45:50.000000000 +0200 +@@ -300,7 +300,6 @@ + 'gcc': { + 'all': { + 'WARNINGFLAGS': ['-Wall', +- '-Werror', + '-W', + '-Wno-unused-parameter', + '-Wnon-virtual-dtor'] +@@ -381,7 +380,7 @@ + DTOA_EXTRA_FLAGS = { + 'gcc': { + 'all': { +- 'WARNINGFLAGS': ['-Werror', '-Wno-uninitialized'], ++ 'WARNINGFLAGS': ['-Wno-uninitialized'], + 'CCFLAGS': GCC_DTOA_EXTRA_CCFLAGS + } + }, diff --git a/dev-lang/v8/metadata.xml b/dev-lang/v8/metadata.xml new file mode 100644 index 000000000..fffcfc8b7 --- /dev/null +++ b/dev-lang/v8/metadata.xml @@ -0,0 +1,5 @@ + + + + chromium + diff --git a/dev-lang/v8/v8-3.7.12.20.ebuild b/dev-lang/v8/v8-3.7.12.20.ebuild new file mode 100644 index 000000000..6c29f47da --- /dev/null +++ b/dev-lang/v8/v8-3.7.12.20.ebuild @@ -0,0 +1,136 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/v8/v8-3.7.12.20.ebuild,v 1.1 2012/01/31 00:25:15 floppym Exp $ + +EAPI="4" + +PYTHON_DEPEND="2:2.6" + +inherit flag-o-matic eutils multilib pax-utils python toolchain-funcs + +DESCRIPTION="Google's open source JavaScript engine" +HOMEPAGE="http://code.google.com/p/v8" +SRC_URI="http://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.bz2" +LICENSE="BSD" + +SLOT="0" +KEYWORDS="~arm" +IUSE="" + +pkg_pretend() { + local gccver=$(gcc-fullversion) + if [[ ${gccver} = 4.5.2 ]]; then + eerror "The currently selected version of gcc is known to segfault when building this" + eerror "version of V8. Please use at least gcc-4.5.3." + die "gcc-${gccver} detected." + fi +} + +pkg_setup() { + python_set_active_version 2 + python_pkg_setup +} + +src_prepare() { + epatch "${FILESDIR}"/v8-fix-arm-target.patch + if is-flagq -mfloat-abi=hard; then + epatch "${FILESDIR}"/v8-arm-enable-hardfp.patch + fi +} + +src_compile() { + tc-export AR CC CXX RANLIB + export LINK="${CXX}" + + # Use target arch detection logic from bug #354601. + case ${CHOST} in + i?86-*) myarch=ia32 ;; + x86_64-*) + if [[ $ABI = x86 ]] ; then + myarch=ia32 + else + myarch=x64 + fi ;; + arm*-*) myarch=arm ;; + *) die "Unrecognized CHOST: ${CHOST}" + esac + mytarget=${myarch}.release + + soname_version="${PV}" + + local snapshot=on + host-is-pax && snapshot=off + + # TODO: Add console=readline option once implemented upstream + # http://code.google.com/p/v8/issues/detail?id=1781 + + emake V=1 \ + library=shared \ + werror=no \ + soname_version=${soname_version} \ + snapshot=${snapshot} \ + ${mytarget} || die + + pax-mark m out/${mytarget}/{cctest,d8,shell} || die +} + +src_test() { + local arg testjobs + for arg in ${MAKEOPTS}; do + case ${arg} in + -j*) testjobs=${arg#-j} ;; + --jobs=*) testjobs=${arg#--jobs=} ;; + esac + done + + tools/test-wrapper-gypbuild.py \ + -j${testjobs:-1} \ + --arch-and-mode=${mytarget} \ + --no-presubmit \ + --progress=dots || die +} + +src_install() { + insinto /usr + doins -r include || die + + dobin out/${mytarget}/d8 || die + + if [[ ${CHOST} == *-darwin* ]] ; then + install_name_tool \ + -id "${EPREFIX}"/usr/$(get_libdir)/libv8$(get_libname).${soname_version} \ + out/${mytarget}/lib.target/libv8$(get_libname).${soname_version} || die + fi + + dolib out/${mytarget}/lib.target/libv8$(get_libname).${soname_version} || die + dosym libv8$(get_libname).${soname_version} /usr/$(get_libdir)/libv8$(get_libname) || die + + dodoc AUTHORS ChangeLog || die +} + +pkg_preinst() { + preserved_libs=() + local baselib candidate + + eshopts_push -s nullglob + + for candidate in "${EROOT}usr/$(get_libdir)"/libv8-*$(get_libname) \ + "${EROOT}usr/$(get_libdir)"/libv8$(get_libname).*; do + baselib=${candidate##*/} + if [[ ! -e "${ED}usr/$(get_libdir)/${baselib}" ]]; then + preserved_libs+=( "${EPREFIX}/usr/$(get_libdir)/${baselib}" ) + fi + done + + eshopts_pop + + if [[ ${#preserved_libs[@]} -gt 0 ]]; then + preserve_old_lib "${preserved_libs[@]}" + fi +} + +pkg_postinst() { + if [[ ${#preserved_libs[@]} -gt 0 ]]; then + preserve_old_lib_notify "${preserved_libs[@]}" + fi +} diff --git a/dev-lang/v8/v8-3.8.7.1.ebuild b/dev-lang/v8/v8-3.8.7.1.ebuild new file mode 100644 index 000000000..8e25b04c6 --- /dev/null +++ b/dev-lang/v8/v8-3.8.7.1.ebuild @@ -0,0 +1,136 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/v8/v8-3.8.7.1.ebuild,v 1.1 2012/01/22 22:21:03 floppym Exp $ + +EAPI="4" + +PYTHON_DEPEND="2:2.6" + +inherit flag-o-matic eutils multilib pax-utils python toolchain-funcs + +DESCRIPTION="Google's open source JavaScript engine" +HOMEPAGE="http://code.google.com/p/v8" +SRC_URI="http://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.bz2" +LICENSE="BSD" + +SLOT="0" +KEYWORDS="~arm" +IUSE="" + +pkg_pretend() { + local gccver=$(gcc-fullversion) + if [[ ${gccver} = 4.5.2 ]]; then + eerror "The currently selected version of gcc is known to segfault when building this" + eerror "version of V8. Please use at least gcc-4.5.3." + die "gcc-${gccver} detected." + fi +} + +pkg_setup() { + python_set_active_version 2 + python_pkg_setup +} + +src_prepare() { + epatch "${FILESDIR}"/v8-fix-arm-target.patch + if is-flagq -mfloat-abi=hard; then + epatch "${FILESDIR}"/v8-arm-enable-hardfp.patch + fi +} + +src_compile() { + tc-export AR CC CXX RANLIB + export LINK="${CXX}" + + # Use target arch detection logic from bug #354601. + case ${CHOST} in + i?86-*) myarch=ia32 ;; + x86_64-*) + if [[ $ABI = x86 ]] ; then + myarch=ia32 + else + myarch=x64 + fi ;; + arm*-*) myarch=arm ;; + *) die "Unrecognized CHOST: ${CHOST}" + esac + mytarget=${myarch}.release + + soname_version="${PV}" + + local snapshot=on + host-is-pax && snapshot=off + + # TODO: Add console=readline option once implemented upstream + # http://code.google.com/p/v8/issues/detail?id=1781 + + emake V=1 \ + library=shared \ + werror=no \ + soname_version=${soname_version} \ + snapshot=${snapshot} \ + ${mytarget} || die + + pax-mark m out/${mytarget}/{cctest,d8,shell} || die +} + +src_test() { + local arg testjobs + for arg in ${MAKEOPTS}; do + case ${arg} in + -j*) testjobs=${arg#-j} ;; + --jobs=*) testjobs=${arg#--jobs=} ;; + esac + done + + tools/test-wrapper-gypbuild.py \ + -j${testjobs:-1} \ + --arch-and-mode=${mytarget} \ + --no-presubmit \ + --progress=dots || die +} + +src_install() { + insinto /usr + doins -r include || die + + dobin out/${mytarget}/d8 || die + + if [[ ${CHOST} == *-darwin* ]] ; then + install_name_tool \ + -id "${EPREFIX}"/usr/$(get_libdir)/libv8$(get_libname).${soname_version} \ + out/${mytarget}/lib.target/libv8$(get_libname).${soname_version} || die + fi + + dolib out/${mytarget}/lib.target/libv8$(get_libname).${soname_version} || die + dosym libv8$(get_libname).${soname_version} /usr/$(get_libdir)/libv8$(get_libname) || die + + dodoc AUTHORS ChangeLog || die +} + +pkg_preinst() { + preserved_libs=() + local baselib candidate + + eshopts_push -s nullglob + + for candidate in "${EROOT}usr/$(get_libdir)"/libv8-*$(get_libname) \ + "${EROOT}usr/$(get_libdir)"/libv8$(get_libname).*; do + baselib=${candidate##*/} + if [[ ! -e "${ED}usr/$(get_libdir)/${baselib}" ]]; then + preserved_libs+=( "${EPREFIX}/usr/$(get_libdir)/${baselib}" ) + fi + done + + eshopts_pop + + if [[ ${#preserved_libs[@]} -gt 0 ]]; then + preserve_old_lib "${preserved_libs[@]}" + fi +} + +pkg_postinst() { + if [[ ${#preserved_libs[@]} -gt 0 ]]; then + preserve_old_lib_notify "${preserved_libs[@]}" + fi +}