changeset 3172:d6a1b5eb846b

Merge
author Andrew John Hughes <gnu.andrew@redhat.com>
date Wed, 24 Dec 2014 18:48:30 +0000
parents 3f63f5568e7f (current diff) 199332d3ed53 (diff)
children ccfb83ff9e78
files ChangeLog Makefile.am
diffstat 4 files changed, 99 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Oct 24 02:53:21 2014 +0100
+++ b/ChangeLog	Wed Dec 24 18:48:30 2014 +0000
@@ -1,3 +1,11 @@
+2014-11-12  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Add new patch.
+	* NEWS: Updated.
+	* patches/pr2083-aarch64_zero.patch:
+	Add HotSpot support for building Zero on AArch64.
+
 2014-10-24  Andrew John Hughes  <gnu.andrew@redhat.com>
 
 	* Makefile.am:
--- a/Makefile.am	Fri Oct 24 02:53:21 2014 +0100
+++ b/Makefile.am	Wed Dec 24 18:48:30 2014 +0000
@@ -627,7 +627,8 @@
 	patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch \
 	patches/openjdk/7122142-annotation_race_condition.patch \
 	patches/openjdk/7161796-wrong_fetch_in_fetch_static_field.patch \
-	patches/openjdk/8000897-use_corresponding_digest_length.patch
+	patches/openjdk/8000897-use_corresponding_digest_length.patch \
+	patches/pr2083-aarch64_zero.patch
 
 if WITH_RHINO
 ICEDTEA_PATCHES += \
--- a/NEWS	Fri Oct 24 02:53:21 2014 +0100
+++ b/NEWS	Wed Dec 24 18:48:30 2014 +0000
@@ -28,6 +28,7 @@
 * Bug fixes
   - PR1886: IcedTea does not checksum supplied tarballs
   - PR2033: patches/ecj/jaxws-getdtdtype.patch no longer applies since removal of JAXWS drop
+  - PR2083: Add support for building Zero on AArch64
 
 New in release 1.13.5 (2014-10-14):
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/pr2083-aarch64_zero.patch	Wed Dec 24 18:48:30 2014 +0000
@@ -0,0 +1,88 @@
+diff -Nru openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp	2014-11-12 22:34:55.098161588 +0000
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp	2014-11-12 22:52:15.524181428 +0000
+@@ -387,7 +387,7 @@
+  *        ...
+  *        7: The default directories, normally /lib and /usr/lib.
+  */
+-#if defined(AMD64) || defined(_LP64) && (defined(SPARC) || defined(PPC) || defined(S390))
++#if defined(AMD64) || defined(_LP64) && (defined(SPARC) || defined(PPC) || defined(S390) || defined(AARCH64))
+ #define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib"
+ #else
+ #define DEFAULT_LIBPATH "/lib:/usr/lib"
+@@ -1441,8 +1441,8 @@
+ 
+ #ifndef SYS_clock_getres
+ 
+-#if defined(IA32) || defined(AMD64)
+-#define SYS_clock_getres IA32_ONLY(266)  AMD64_ONLY(229)
++#if defined(IA32) || defined(AMD64) || defined(AARCH64)
++#define SYS_clock_getres IA32_ONLY(266)  AMD64_ONLY(229) AARCH64_ONLY(114)
+ #define sys_clock_getres(x,y)  ::syscall(SYS_clock_getres, x, y)
+ #else
+ #warning "SYS_clock_getres not defined for this platform, disabling fast_thread_cpu_time"
+@@ -1930,7 +1930,7 @@
+     static  Elf32_Half running_arch_code=EM_AARCH64;
+   #else
+     #error Method os::dll_load requires that one of following is defined:\
+-         IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH
++         IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH, AARCH64
+   #endif
+ 
+   // Identify compatability class for VM's architecture and library's architecture
+@@ -2725,9 +2725,9 @@
+   unsigned int cpu;
+   int retval = -1;
+ 
+-#if defined(IA32)
++#if defined(IA32) || defined(AARCH64)
+ # ifndef SYS_getcpu
+-# define SYS_getcpu 318
++# define SYS_getcpu AARCH64_ONLY(168) NOT_AARCH64(318);
+ # endif
+   retval = syscall(SYS_getcpu, &cpu, NULL, NULL);
+ #elif defined(AMD64)
+@@ -5484,11 +5484,11 @@
+ extern char** environ;
+ 
+ #ifndef __NR_fork
+-#define __NR_fork IA32_ONLY(2) IA64_ONLY(not defined) AMD64_ONLY(57)
++#define __NR_fork IA32_ONLY(2) IA64_ONLY(not defined) AMD64_ONLY(57) AARCH64_ONLY(1079)
+ #endif
+ 
+ #ifndef __NR_execve
+-#define __NR_execve IA32_ONLY(11) IA64_ONLY(1033) AMD64_ONLY(59)
++#define __NR_execve IA32_ONLY(11) IA64_ONLY(1033) AMD64_ONLY(59) AARCH64_ONLY(221)
+ #endif
+ 
+ // Run the specified command in a separate process. Return its exit value,
+diff -Nru openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp	2014-11-12 22:34:52.830131030 +0000
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp	2014-11-12 22:53:39.365312680 +0000
+@@ -35,7 +35,7 @@
+ #ifdef __powerpc64__
+ define_pd_global(intx,  ThreadStackSize,         2048);
+ #else
+-define_pd_global(intx,  ThreadStackSize,         1536);
++define_pd_global(intx,  ThreadStackSize,         AARCH64_ONLY(1664) NOT_AARCH64(1536));
+ #endif
+ #ifdef _LP64
+ define_pd_global(intx,  VMThreadStackSize,       1024);
+diff -Nru openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp openjdk/hotspot/src/share/vm/utilities/macros.hpp
+--- openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp	2014-11-12 22:34:54.810157708 +0000
++++ openjdk/hotspot/src/share/vm/utilities/macros.hpp	2014-11-12 22:49:51.182233142 +0000
+@@ -260,6 +260,14 @@
+ #define NOT_ARM(code) code
+ #endif
+ 
++#ifdef AARCH64
++#define AARCH64_ONLY(code) code
++#define NOT_AARCH64(code)
++#else
++#define AARCH64_ONLY(code)
++#define NOT_AARCH64(code) code
++#endif
++
+ #ifdef JAVASE_EMBEDDED
+ #define EMBEDDED_ONLY(code) code
+ #define NOT_EMBEDDED(code)