summaryrefslogtreecommitdiff
path: root/libre/java8-openjdk
diff options
context:
space:
mode:
authorIsaac David <isacdaavid@isacdaavid.info>2016-01-07 20:23:49 -0600
committerIsaac David <isacdaavid@isacdaavid.info>2016-01-07 20:23:49 -0600
commitbc834d6132656b78dd8a9d5983b321b87a782d15 (patch)
tree82f9df16f5a4edbbdf701d090ff5e8830a76a449 /libre/java8-openjdk
parentb6709cdca5dd601b7ad28006d174ab5f28afbc0f (diff)
java8-openjdk: armv7h port
Diffstat (limited to 'libre/java8-openjdk')
-rw-r--r--libre/java8-openjdk/PKGBUILD21
-rw-r--r--libre/java8-openjdk/rhbz1206656_fix_current_stack_pointer.patch14
2 files changed, 32 insertions, 3 deletions
diff --git a/libre/java8-openjdk/PKGBUILD b/libre/java8-openjdk/PKGBUILD
index ed7c25dbe..493fd01f1 100644
--- a/libre/java8-openjdk/PKGBUILD
+++ b/libre/java8-openjdk/PKGBUILD
@@ -1,6 +1,7 @@
# Maintainer (Arch): Guillaume ALAUX <guillaume@archlinux.org>
# Contributor (Arch): Boyan Ding <stu_dby@126.com>
# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Isaac David <isacdaavid@isacdaavid.info>
# TODO
# once icedtea:
@@ -20,6 +21,7 @@ pkgrel=1.parabola1
arch=('i686' 'x86_64')
url='http://openjdk.java.net/'
license=('custom')
+[ "$CARCH" = "armv7h" ] && options=('!distcc')
makedepends=('jdk7-openjdk' 'ccache' 'cpio' 'unzip' 'zip'
'libxrender' 'libxtst' 'fontconfig' 'libcups' 'alsa-lib')
_url_src=http://hg.openjdk.java.net/jdk8u/jdk8u
@@ -30,7 +32,8 @@ source=(jdk8u-${_repo_ver}.tar.gz::${_url_src}/archive/${_repo_ver}.tar.gz
jaxws-${_repo_ver}.tar.gz::${_url_src}/jaxws/archive/${_repo_ver}.tar.gz
jaxp-${_repo_ver}.tar.gz::${_url_src}/jaxp/archive/${_repo_ver}.tar.gz
langtools-${_repo_ver}.tar.gz::${_url_src}/langtools/archive/${_repo_ver}.tar.gz
- nashorn-${_repo_ver}.tar.gz::${_url_src}/nashorn/archive/${_repo_ver}.tar.gz)
+ nashorn-${_repo_ver}.tar.gz::${_url_src}/nashorn/archive/${_repo_ver}.tar.gz
+ rhbz1206656_fix_current_stack_pointer.patch)
sha256sums=('7bd68bbe99094c46744dbaf5563e3e49b08adc8ed7a8e24d8f10520d42b1a63b'
'1dfa95d3e5747a48f2acf91b4c3f3b7233f65fd37078c096015ade80ceb5d93d'
@@ -39,11 +42,13 @@ sha256sums=('7bd68bbe99094c46744dbaf5563e3e49b08adc8ed7a8e24d8f10520d42b1a63b'
'317f85ae5af4d2be44b8b5a4318512d344895e978530cc87544bf9987860b0cb'
'e4a95401c4e45fc0471e42b2b62bdfad025eee57715583ce58b0da785159e2eb'
'b58d81b7e873c2ebd9f96a6bbd538f68c1f457e4dfea3b262e52973a33f2e6f7'
- 'ad5c17b67999179966175caa35684056a48eb74186191e8f1b8ff900b580b25a')
+ 'ad5c17b67999179966175caa35684056a48eb74186191e8f1b8ff900b580b25a'
+ '85d396e1663514390e73b0b072a5f93c51ca6e324ee0a08aa2ace599e3df83bf')
case "${CARCH}" in
'x86_64') _JARCH=amd64 ; _DOC_ARCH=x86_64 ;;
'i686' ) _JARCH=i386 ; _DOC_ARCH=x86 ;;
+ arm* ) _JARCH=arm ; _DOC_ARCH=arm ;;
esac
_jdkname=openjdk8
@@ -62,9 +67,18 @@ prepare() {
do
ln -s ../${subrepo}-${_repo_ver} ${subrepo}
done
+
+ # Patch Zero build for ARM
+ if [ "$CARCH" = "armv7h" ]; then
+ cd "${srcdir}/hotspot-${_repo_ver}"
+ patch -p2 -i ../rhbz1206656_fix_current_stack_pointer.patch
+ fi
}
build() {
+ # Zero makes OpenJDK build on processor families other than x86 and SPARC
+ [ "$CARCH" = "armv7h" ] && configure_extra="--with-jvm-variants=zero"
+
cd "${srcdir}/jdk8u-${_repo_ver}"
unset JAVA_HOME
@@ -78,7 +92,8 @@ build() {
--with-build-number="b${_jdk_build}" \
--with-milestone="fcs" \
--enable-unlimited-crypto \
- --with-zlib=system
+ --with-zlib=system \
+ ${configure_extra}
# TODO OpenJDK does not want last version of giflib (add 'giflib' as dependency once fixed)
#--with-giflib=system \
diff --git a/libre/java8-openjdk/rhbz1206656_fix_current_stack_pointer.patch b/libre/java8-openjdk/rhbz1206656_fix_current_stack_pointer.patch
new file mode 100644
index 000000000..dbefaefc4
--- /dev/null
+++ b/libre/java8-openjdk/rhbz1206656_fix_current_stack_pointer.patch
@@ -0,0 +1,14 @@
+diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+--- jdk8/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
++++ jdk8/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+@@ -55,8 +55,8 @@
+ #include "utilities/vmError.hpp"
+
+ address os::current_stack_pointer() {
+- address dummy = (address) &dummy;
+- return dummy;
++ // return the address of the current function
++ return (address)__builtin_frame_address(0);
+ }
+
+ frame os::get_sender_for_C_frame(frame* fr) {