diff options
-rw-r--r-- | libre/java8-openjdk/PKGBUILD | 21 | ||||
-rw-r--r-- | libre/java8-openjdk/rhbz1206656_fix_current_stack_pointer.patch | 14 |
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) { |