[dev-lang/v8] add arm hardfp patches, see Gentoo bug 401835 and 401827

This commit is contained in:
Fabio Erculiani
2012-02-01 19:27:29 +01:00
parent d4c2f915f9
commit 4e01038d3d
8 changed files with 339 additions and 0 deletions
+9
View File
@@ -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
@@ -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',
+12
View File
@@ -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,
+11
View File
@@ -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'],
+19
View File
@@ -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
}
},
+5
View File
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>chromium</herd>
</pkgmetadata>
+136
View File
@@ -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
}
+136
View File
@@ -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
}