[PATCH 0/7] IcedTea: Build (efficiently) on aarch64-linux

DoneSubmitted by Simon South.
Details
3 participants
  • Efraim Flashner
  • Ricardo Wurmus
  • Simon South
Owner
unassigned
Severity
normal
S
S
Simon South wrote on 15 Jun 2020 17:18
(address . guix-patches@gnu.org)(name . Simon South)(address . simon@simonsouth.net)
20200615151856.12283-1-simon@simonsouth.net
This patch series applies a number of changes to the icedtea-6, -7 and -8
packages that allow them to build (efficiently) on aarch64-linux systems.

It assumes the patches in issues 41748 and 41648 have already been applied, in
that order.

With these three sets of patches I've been able to complete the entire Java
bootstrap process on both AArch64 and x86_64 and have successfully compiled
and run a Java application on AArch64 using OpenJDK 14.

The changes in this series

- Ensure the correct number of parallel build jobs is used. The
"--with-parallel-jobs" option to IcedTea's configure script enables a
parallel build but by default, the script uses its own heuristic to decide
how many jobs to run simultaneously. This can produce a poor result: On my
dual-core, hyperthreaded x86_64 machine, IcedTea 6 picks five jobs (anything
above two is inefficient); on my six-core AArch64 machine, IcedTea 7 picks
only two (on a machine where engaging every core is important!). In any
case, there is no guarantee the figure the script chooses will match the
number of jobs requested by the user.

These patches address this by ensuring the "--with-parallel-jobs" parameter
is passed to configure along with a parameter explicitly specifying the
correct number of jobs to use.

- Remove an obsolete and architecture-dependent patch. The "gcc-segfault"
patches yield a broken JIT on AArch64 because they embed a constant value,
11, that is architecture-dependent and apparently valid only for
x86_64. This number represents the length of an array whose size is
determined by the HotSpot build process and output in code it generates (at
src/share/vm/adlc/output_h.cpp:893).

Presumably the patches could be fixed, but I've been unable to reproduce the
problem they're meant to solve and I suspect it was only ever an issue with
gcc 5, meaning the patches are now obsolete. (The move to gcc 7 occurred
about three months after they were added.)

My changes remove these patches, including (for completeness and
consistency) the patch to IcedTea 6 which doesn't actually interfere with
the AArch64 build as it doesn't produce a JIT for that platform.

- Allow all three IcedTea packages to build on aarch64-linux. For IcedTea 6,
this means applying a backport of a patch to JDK 9 (see
http://openjdk.java.net/jeps/237)that extends the support for AArch64 in
HotSpot's shared code and allows the portable Zero VM to be built. For
IcedTea 7, it means removing an unneeded C++ template that causes the build
to fail when using gcc 7 and its default support for only the C++98
standard.

IcedTea 8 (and subsequent versions of OpenJDK) support AArch64 and gcc 7
out-of-the-box and require no specific changes.

--
Simon South
simon@simonsouth.net


Simon South (7):
gnu: icedtea-6: Build in parallel using correct number of jobs.
gnu: icedtea-6: Remove obsolete, architecture-dependent patch.
gnu: icedtea-6: Fix build on aarch64-linux.
gnu: icedtea-7: Build in parallel using correct number of jobs.
gnu: icedtea-7: Fix build on aarch64-linux.
gnu: icedtea-8: Build in parallel using correct number of jobs.
gnu: icedtea-8: Fix build on aarch64-linux.

gnu/local.mk | 4 +-
gnu/packages/java.scm | 32 +-
...tea-6-extend-hotspot-aarch64-support.patch | 1831 +++++++++++++++++
...ea-6-hotspot-gcc-segfault-workaround.patch | 42 -
.../icedtea-7-hotspot-aarch64-use-c++98.patch | 33 +
...ea-7-hotspot-gcc-segfault-workaround.patch | 45 -
6 files changed, 1879 insertions(+), 108 deletions(-)
create mode 100644 gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch
delete mode 100644 gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch
create mode 100644 gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch
delete mode 100644 gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch

--
2.26.2
S
S
Simon South wrote on 15 Jun 2020 17:22
[PATCH 1/7] gnu: icedtea-6: Build in parallel using correct number of jobs.
(address . 41871@debbugs.gnu.org)(name . Simon South)(address . simon@simonsouth.net)
20200615152257.12938-1-simon@simonsouth.net
* gnu/packages/java.scm (icedtea-6)[arguments]<#:configure-flags>: Supply
parameter to "--with-parallel-jobs".
---
gnu/packages/java.scm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Toggle diff (16 lines)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 0370d160a1..dbc0061a4e 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -795,7 +795,8 @@ machine.")))
        `("--enable-bootstrap"
          "--enable-nss"
          "--without-rhino"
-         "--with-parallel-jobs"
+         ,(string-append "--with-parallel-jobs="
+                         (number->string (parallel-job-count)))
          "--disable-downloading"
          "--disable-tests"
          ,(string-append "--with-ecj="
-- 
2.26.2
S
S
Simon South wrote on 15 Jun 2020 17:22
[PATCH 2/7] gnu: icedtea-6: Remove obsolete, architecture-dependent patch.
(address . 41871@debbugs.gnu.org)(name . Simon South)(address . simon@simonsouth.net)
20200615152257.12938-2-simon@simonsouth.net
* gnu/packages/java.scm (icedtea-6)[arguments]<#:phases>: Remove special
handling of "hotspot-src" input during "unpack" phase.
[native-inputs]: Remove patch to "hotspot-src".
* gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch: Delete
file.
* gnu/local.mk (dist_patch_DATA): Remove it.
---
gnu/local.mk | 1 -
gnu/packages/java.scm | 9 +---
...ea-6-hotspot-gcc-segfault-workaround.patch | 42 -------------------
3 files changed, 2 insertions(+), 50 deletions(-)
delete mode 100644 gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch

Toggle diff (90 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index e1e3247642..a39baa12f5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1093,7 +1093,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/icecat-use-older-reveal-hidden-html.patch	\
   %D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch	\
   %D%/packages/patches/icecat-use-system-media-libs.patch	\
-  %D%/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch  \
   %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch  \
   %D%/packages/patches/icu4c-CVE-2020-10531.patch  		\
   %D%/packages/patches/id3lib-CVE-2007-4460.patch			\
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index dbc0061a4e..87becb66e3 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -829,11 +829,8 @@ machine.")))
                             (assoc-ref inputs
                                        (string-append part "-src"))
                             part))
-                         '("jdk" "corba"
+                         '("jdk" "hotspot" "corba"
                            "langtools" "jaxp" "jaxws")))
-             (with-directory-excursion "openjdk"
-               (invoke "tar" "xvf" (assoc-ref inputs "hotspot-src"))
-               (rename-file "hg-checkout" "hotspot"))
              (substitute* "patches/freetypeversion.patch"
                (("REQUIRED_FREETYPE_VERSION = 2.2.1")
                 "REQUIRED_FREETYPE_VERSION = 2.10.1"))
@@ -1059,9 +1056,7 @@ machine.")))
                  (changeset "jdk6-b41")))
            (sha256
             (base32
-             "07lc1z4k5dj9nrc1wvwmpvxr3xgxrdkdh53xb95skk5ij49yagfd"))
-           (patches
-            (search-patches "icedtea-6-hotspot-gcc-segfault-workaround.patch"))))
+             "07lc1z4k5dj9nrc1wvwmpvxr3xgxrdkdh53xb95skk5ij49yagfd"))))
        ("corba-src"
         ,(origin
            (method hg-fetch)
diff --git a/gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch b/gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch
deleted file mode 100644
index ef090e0ec9..0000000000
--- a/gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-# HG changeset patch
-# User Gábor Boskovits <boskovits@gmail.com>
-# Date 1530519413 -7200
-#      Mon Jul 02 10:16:53 2018 +0200
-# Node ID 77e5bc9e238a28d17e097647badc04ed67a6a452
-# Parent  1ae05a34e052d1672b4a7894ddf5fc2f662eb861
-Fix gcc segfault.
-
-diff -r 1ae05a34e052 -r 77e5bc9e238a src/share/vm/opto/output.cpp
---- a/src/share/vm/opto/output.cpp	Sun Dec 25 23:52:13 2016 +0000
-+++ b/src/share/vm/opto/output.cpp	Mon Jul 02 10:16:53 2018 +0200
-@@ -1758,6 +1758,8 @@
- 
- // Initializer for class Scheduling
- 
-+volatile const void *eePointer = Pipeline_Use::elaborated_elements;
-+
- Scheduling::Scheduling(Arena *arena, Compile &compile)
-   : _arena(arena),
-     _cfg(compile.cfg()),
-@@ -1802,8 +1804,8 @@
- 
-   // Clear the bundling information
-   memcpy(_bundle_use_elements,
--    Pipeline_Use::elaborated_elements,
--    sizeof(Pipeline_Use::elaborated_elements));
-+	 (void *)eePointer,
-+    11*sizeof(Pipeline_Use_Element));
- 
-   // Get the last node
-   Block *bb = _cfg->_blocks[_cfg->_blocks.size()-1];
-@@ -1854,8 +1856,8 @@
-   _bundle_use.reset();
- 
-   memcpy(_bundle_use_elements,
--    Pipeline_Use::elaborated_elements,
--    sizeof(Pipeline_Use::elaborated_elements));
-+	 (void *)eePointer,
-+    11*sizeof(Pipeline_Use_Element));
- }
- 
- //------------------------------ScheduleAndBundle------------------------------
-- 
2.26.2
S
S
Simon South wrote on 15 Jun 2020 17:22
[PATCH 3/7] gnu: icedtea-6: Fix build on aarch64-linux.
(address . 41871@debbugs.gnu.org)(name . Simon South)(address . simon@simonsouth.net)
20200615152257.12938-3-simon@simonsouth.net
* gnu/packages/java.scm (icedtea-6)[source]: Add patch.
* gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
gnu/local.mk | 1 +
gnu/packages/java.scm | 2 +
...tea-6-extend-hotspot-aarch64-support.patch | 1831 +++++++++++++++++
3 files changed, 1834 insertions(+)
create mode 100644 gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch

Toggle diff (1864 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index a39baa12f5..36dbbd0968 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1093,6 +1093,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/icecat-use-older-reveal-hidden-html.patch	\
   %D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch	\
   %D%/packages/patches/icecat-use-system-media-libs.patch	\
+  %D%/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch	\
   %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch  \
   %D%/packages/patches/icu4c-CVE-2020-10531.patch  		\
   %D%/packages/patches/id3lib-CVE-2007-4460.patch			\
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 87becb66e3..3618b9ee3f 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -767,6 +767,8 @@ machine.")))
               (sha256
                (base32
                 "0bg9sb4f7qbq77c0zf9m17p47ga0kf0r9622g9p12ysg26jd1ksg"))
+              (patches (search-patches
+                        "icedtea-6-extend-hotspot-aarch64-support.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch b/gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch
new file mode 100644
index 0000000000..9dc112a344
--- /dev/null
+++ b/gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch
@@ -0,0 +1,1831 @@
+From d51cb8c0f7966ac0b870e90e421cc8a796d98abf Mon Sep 17 00:00:00 2001
+From: Simon South <simon@simonsouth.net>
+Date: Tue, 9 Jun 2020 13:48:42 -0400
+Subject: [PATCH] Extend AArch64 support
+
+This adds to IcedTea 6 a patch that extends the support for AArch64 in
+its version of HotSpot, allowing the portable Zero virtual machine to
+be built for that platform.
+
+The patch added is a backport of the one prepared for JDK 9 by the
+OpenJDK AArch64 Porting Project, available (as of 11 June 2020) for
+download from https://openjdk.java.net/jeps/237.
+---
+ Makefile.am                                   |    3 +-
+ Makefile.in                                   |   12 +-
+ .../hs23/aarch64-extended-support.patch       | 1766 +++++++++++++++++
+ 3 files changed, 1775 insertions(+), 6 deletions(-)
+ create mode 100644 patches/hotspot/hs23/aarch64-extended-support.patch
+
+diff --git a/Makefile.am b/Makefile.am
+index 97dac85..f5c917b 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -621,7 +621,8 @@ ICEDTEA_PATCHES = \
+ 	patches/openjdk/6260348-pr3068.patch \
+ 	patches/openjdk/6961123-pr2975.patch \
+ 	patches/pr2800-missing_resources.patch \
+-	patches/pr3213-conditional_arm32jit.patch
++	patches/pr3213-conditional_arm32jit.patch \
++	patches/hotspot/hs23/aarch64-extended-support.patch
+ 
+ if WITH_RHINO
+ ICEDTEA_PATCHES += \
+diff --git a/Makefile.in b/Makefile.in
+index aced7c2..e3545ee 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -1049,11 +1049,13 @@ ICEDTEA_PATCHES = $(DROP_PATCHES) $(SECURITY_PATCHES) \
+ 	patches/openjdk/6260348-pr3068.patch \
+ 	patches/openjdk/6961123-pr2975.patch \
+ 	patches/pr2800-missing_resources.patch \
+-	patches/pr3213-conditional_arm32jit.patch $(am__append_21) \
+-	$(am__append_22) $(am__append_23) $(am__append_24) \
+-	$(am__append_25) $(am__append_26) $(am__append_27) \
+-	$(am__append_28) $(am__append_29) $(am__append_30) \
+-	$(am__append_31) $(am__append_32) $(DISTRIBUTION_PATCHES)
++	patches/pr3213-conditional_arm32jit.patch \
++	patches/hotspot/hs23/aarch64-extended-support.patch \
++	$(am__append_21) $(am__append_22) $(am__append_23) \
++	$(am__append_24) $(am__append_25) $(am__append_26) \
++	$(am__append_27) $(am__append_28) $(am__append_29) \
++	$(am__append_30) $(am__append_31) $(am__append_32) \
++	$(DISTRIBUTION_PATCHES)
+ @ENABLE_NSS_FALSE@NSS_PATCHES = patches/nss-not-enabled-config.patch
+ @ENABLE_NSS_TRUE@NSS_PATCHES = patches/nss-config.patch
+ 
+diff --git a/patches/hotspot/hs23/aarch64-extended-support.patch b/patches/hotspot/hs23/aarch64-extended-support.patch
+new file mode 100644
+index 0000000..7817f4d
+--- /dev/null
++++ b/patches/hotspot/hs23/aarch64-extended-support.patch
+@@ -0,0 +1,1766 @@
++diff --git openjdk.orig/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c openjdk/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c
++index 5771fdd..b23cc17 100644
++--- openjdk.orig/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c
+++++ openjdk/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c
++@@ -304,6 +304,9 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo
++ #ifdef amd64
++ #define NPRGREG sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_NPRGREG
++ #endif
+++#ifdef aarch64
+++#define NPRGREG 32
+++#endif
++ #if defined(sparc) || defined(sparcv9)
++ #define NPRGREG sun_jvm_hotspot_debugger_sparc_SPARCThreadContext_NPRGREG
++ #endif
++@@ -406,6 +409,12 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo
++   regs[REG_INDEX(R_O7)]  = gregs.u_regs[14];
++ #endif /* sparc */
++ 
+++#if defined(aarch64)
+++
+++#define REG_INDEX(reg) sun_jvm_hotspot_debugger_aarch64_AARCH64ThreadContext_##reg
+++
+++#endif /* aarch64 */
+++
++ 
++   (*env)->ReleaseLongArrayElements(env, array, regs, JNI_COMMIT);
++   return array;
++diff --git openjdk.orig/hotspot/agent/src/os/linux/libproc.h openjdk/hotspot/agent/src/os/linux/libproc.h
++index e4d77f7..c02b841 100644
++--- openjdk.orig/hotspot/agent/src/os/linux/libproc.h
+++++ openjdk/hotspot/agent/src/os/linux/libproc.h
++@@ -54,6 +54,10 @@ struct pt_regs {
++ 
++ #endif //sparc or sparcv9
++ 
+++#if defined(aarch64)
+++#include "asm/ptrace.h"
+++#endif
+++
++ /************************************************************************************
++ 
++ 0. This is very minimal subset of Solaris libproc just enough for current application.
++@@ -97,6 +101,9 @@ unsigned long   regs[IA64_REG_COUNT];     /* integer and fp regs */
++ #if defined(sparc)  || defined(sparcv9)
++ #define user_regs_struct  pt_regs
++ #endif
+++#if defined(aarch64)
+++#define user_regs_struct user_pt_regs
+++#endif
++ 
++ // This C bool type must be int for compatibility with Linux calls and
++ // it would be a mistake to equivalence it to C++ bool on many platforms
++diff --git openjdk.orig/hotspot/make/defs.make openjdk/hotspot/make/defs.make
++index 44f21f8..4e8d00b 100644
++--- openjdk.orig/hotspot/make/defs.make
+++++ openjdk/hotspot/make/defs.make
++@@ -232,7 +232,7 @@ ifneq ($(OSNAME),windows)
++ 
++   # Use uname output for SRCARCH, but deal with platform differences. If ARCH
++   # is not explicitly listed below, it is treated as x86. 
++-  SRCARCH     = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 arm ppc zero,$(ARCH)))
+++  SRCARCH     = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 arm ppc aarch64 zero,$(ARCH)))
++   ARCH/       = x86
++   ARCH/sparc  = sparc
++   ARCH/sparc64= sparc
++@@ -242,6 +242,7 @@ ifneq ($(OSNAME),windows)
++   ARCH/ppc64  = ppc
++   ARCH/ppc    = ppc
++   ARCH/arm    = arm
+++  ARCH/aarch64= aarch64
++   ARCH/zero   = zero
++ 
++   # BUILDARCH is usually the same as SRCARCH, except for sparcv9
++@@ -267,11 +268,12 @@ ifneq ($(OSNAME),windows)
++   LIBARCH/sparcv9 = sparcv9
++   LIBARCH/ia64    = ia64
++   LIBARCH/ppc64   = ppc
+++  LIBARCH/aarch64 = aarch64
++   LIBARCH/ppc     = ppc
++   LIBARCH/arm     = arm
++   LIBARCH/zero    = $(ZERO_LIBARCH)
++ 
++-  LP64_ARCH = sparcv9 amd64 ia64 zero
+++  LP64_ARCH = sparcv9 amd64 ia64 aarch64 zero
++ endif
++ 
++ # Required make macro settings for all platforms
++diff --git openjdk.orig/hotspot/make/linux/makefiles/buildtree.make openjdk/hotspot/make/linux/makefiles/buildtree.make
++index 7c3d4f9..3bc7e8a 100644
++--- openjdk.orig/hotspot/make/linux/makefiles/buildtree.make
+++++ openjdk/hotspot/make/linux/makefiles/buildtree.make
++@@ -385,6 +385,7 @@ DATA_MODE/sparc   = 32
++ DATA_MODE/sparcv9 = 64
++ DATA_MODE/amd64   = 64
++ DATA_MODE/ia64    = 64
+++DATA_MODE/aarch64 = 64
++ DATA_MODE/zero    = $(ARCH_DATA_MODEL)
++ 
++ JAVA_FLAG/32 = -d32
++diff --git openjdk.orig/hotspot/make/linux/makefiles/defs.make openjdk/hotspot/make/linux/makefiles/defs.make
++index 7bb3149..39ffda4 100644
++--- openjdk.orig/hotspot/make/linux/makefiles/defs.make
+++++ openjdk/hotspot/make/linux/makefiles/defs.make
++@@ -118,6 +118,15 @@ ifeq ($(ARCH), ppc)
++   HS_ARCH          = ppc
++ endif
++ 
+++# AARCH64
+++ifeq ($(ARCH), aarch64)
+++  ARCH_DATA_MODEL  = 64
+++  MAKE_ARGS        += LP64=1
+++  PLATFORM         = linux-aarch64
+++  VM_PLATFORM      = linux_aarch64
+++  HS_ARCH          = aarch64
+++endif
+++
++ # determine if HotSpot is being built in JDK6 or earlier version
++ JDK6_OR_EARLIER=0
++ ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
++diff --git openjdk.orig/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make
++index 897e3a6..44f1673 100644
++--- openjdk.orig/hotspot/make/linux/makefiles/gcc.make
+++++ openjdk/hotspot/make/linux/makefiles/gcc.make
++@@ -104,6 +104,7 @@ endif
++ ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
++ ARCHFLAG/i486    = -m32 -march=i586
++ ARCHFLAG/amd64   = -m64
+++ARCHFLAG/aarch64 =
++ ARCHFLAG/ia64    =
++ ARCHFLAG/sparc   = -m32 -mcpu=v9
++ ARCHFLAG/sparcv9 = -m64 -mcpu=v9
++diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp
++index c1b0e5c..9f7cda0 100644
++--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
+++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
++@@ -296,6 +296,8 @@ static char cpu_arch[] = "sparcv9";
++ #  else
++ static char cpu_arch[] = "sparc";
++ #  endif
+++#elif defined(AARCH64)
+++static char cpu_arch[] = "aarch64";
++ #else
++ #error Add appropriate cpu_arch setting
++ #endif
++@@ -1442,7 +1444,7 @@ void os::Linux::clock_init() {
++ #ifndef SYS_clock_getres
++ 
++ #if defined(IA32) || defined(AMD64)
++-#define SYS_clock_getres IA32_ONLY(266)  AMD64_ONLY(229)
+++#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 +1932,7 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen)
++     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
++@@ -3056,7 +3058,7 @@ void os::large_page_init() {
++ 
++ #ifndef ZERO
++     _large_page_size = IA32_ONLY(4 * M) AMD64_ONLY(2 * M) IA64_ONLY(256 * M) SPARC_ONLY(4 * M)
++-                       ARM_ONLY(2 * M) PPC_ONLY(4 * M);
+++                       ARM_ONLY(2 * M) PPC_ONLY(4 * M) AARCH64_ONLY(2 * M);
++ #endif // ZERO
++ 
++     FILE *fp = fopen("/proc/meminfo", "r");
++@@ -5378,11 +5380,11 @@ void Parker::unpark() {
++ 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 --git openjdk.orig/hotspot/src/share/vm/adlc/main.cpp openjdk/hotspot/src/share/vm/adlc/main.cpp
++index 47e207a..b93504e 100644
++--- openjdk.orig/hotspot/src/share/vm/adlc/main.cpp
+++++ openjdk/hotspot/src/share/vm/adlc/main.cpp
++@@ -244,6 +244,11 @@ int main(int argc, char *argv[])
++   AD.addInclude(AD._CPP_file, "assembler_arm.inline.hpp");
++   AD.addInclude(AD._CPP_file, "nativeInst_arm.hpp");
++   AD.addInclude(AD._CPP_file, "vmreg_arm.inline.hpp");
+++#endif
+++#ifdef TARGET_ARCH_aarch64
+++  AD.addInclude(AD._CPP_file, "assembler_aarch64.inline.hpp");
+++  AD.addInclude(AD._CPP_file, "nativeInst_aarch64.hpp");
+++  AD.addInclude(AD._CPP_file, "vmreg_aarch64.inline.hpp");
++ #endif
++   AD.addInclude(AD._HPP_file, "memory/allocation.hpp");
++   AD.addInclude(AD._HPP_file, "opto/machnode.hpp");
++diff --git openjdk.orig/hotspot/src/share/vm/asm/assembler.cpp openjdk/hotspot/src/share/vm/asm/assembler.cpp
++index 2bcdcbc..57787ac 100644
++--- openjdk.orig/hotspot/src/share/vm/asm/assembler.cpp
+++++ openjdk/hotspot/src/share/vm/asm/assembler.cpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "assembler_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "assembler_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ // Implementation of AbstractAssembler
++diff --git openjdk.orig/hotspot/src/share/vm/asm/assembler.hpp openjdk/hotspot/src/share/vm/asm/assembler.hpp
++index c25aa3f..4f77825 100644
++--- openjdk.orig/hotspot/src/share/vm/asm/assembler.hpp
+++++ openjdk/hotspot/src/share/vm/asm/assembler.hpp
++@@ -51,6 +51,10 @@
++ # include "register_ppc.hpp"
++ # include "vm_version_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "register_aarch64.hpp"
+++# include "vm_version_aarch64.hpp"
+++#endif
++ 
++ // This file contains platform-independent assembler declarations.
++ 
++@@ -459,6 +463,9 @@ class AbstractAssembler : public ResourceObj  {
++ #ifdef TARGET_ARCH_ppc
++ # include "assembler_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "assembler_aarch64.hpp"
+++#endif
++ 
++ 
++ #endif // SHARE_VM_ASM_ASSEMBLER_HPP
++diff --git openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.hpp openjdk/hotspot/src/share/vm/asm/codeBuffer.hpp
++index 685297a..002faef 100644
++--- openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.hpp
+++++ openjdk/hotspot/src/share/vm/asm/codeBuffer.hpp
++@@ -573,6 +573,9 @@ class CodeBuffer: public StackObj {
++ #ifdef TARGET_ARCH_ppc
++ # include "codeBuffer_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "codeBuffer_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp openjdk/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp
++index c95a23c..2ec31e5 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp
++@@ -877,6 +877,13 @@ static bool match(UnsafeRawOp* x,
++     return false;
++   }
++ 
+++// AARCH64 cannot handle shifts which are not either 0, or log2 of the type size
+++#ifdef AARCH64
+++  if (*log2_scale != 0 &&
+++	(1 << *log2_scale) != type2aelembytes(x->basic_type(), true))
+++    return false;
+++#endif
+++
++   // If the value is pinned then it will be always be computed so
++   // there's no profit to reshaping the expression.
++   return !root->is_pinned();
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Defs.hpp openjdk/hotspot/src/share/vm/c1/c1_Defs.hpp
++index bebb3b0..ddaceb7 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_Defs.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_Defs.hpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "register_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "register_aarch64.hpp"
+++#endif
++ 
++ // set frame size and return address offset to these values in blobs
++ // (if the compiled frame uses ebp as link pointer on IA; otherwise,
++@@ -62,6 +65,9 @@ enum {
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_Defs_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_Defs_aarch64.hpp"
+++#endif
++ 
++ 
++ // native word offsets from memory address
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp openjdk/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp
++index a1e4c38..491b064 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp
++@@ -44,6 +44,9 @@ class FpuStackSim;
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_FpuStackSim_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_FpuStackSim_aarch64.hpp"
+++#endif
++ 
++ 
++ #endif // SHARE_VM_C1_C1_FPUSTACKSIM_HPP
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.cpp openjdk/hotspot/src/share/vm/c1/c1_FrameMap.cpp
++index ea50b27..6a3dc63 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.cpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_FrameMap.cpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.hpp openjdk/hotspot/src/share/vm/c1/c1_FrameMap.hpp
++index 288fc5c..e9a0250 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_FrameMap.hpp
++@@ -93,6 +93,9 @@ class FrameMap : public CompilationResourceObj {
++ #endif
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_FrameMap_ppc.hpp"
+++#endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_FrameMap_aarch64.hpp"
++ #endif
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.cpp openjdk/hotspot/src/share/vm/c1/c1_LIR.cpp
++index 776a6a3..6e1a362 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.cpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_LIR.cpp
++@@ -67,7 +67,7 @@ FloatRegister LIR_OprDesc::as_double_reg() const {
++ 
++ #endif
++ 
++-#ifdef ARM
+++#if defined(ARM) || defined (TARGET_ARCH_aarch64)
++ 
++ FloatRegister LIR_OprDesc::as_float_reg() const {
++   return as_FloatRegister(fpu_regnr());
++@@ -147,7 +147,11 @@ void LIR_Address::verify() const {
++ #endif
++ #ifdef _LP64
++   assert(base()->is_cpu_register(), "wrong base operand");
+++#ifndef TARGET_ARCH_aarch64
++   assert(index()->is_illegal() || index()->is_double_cpu(), "wrong index operand");
+++#else
+++  assert(index()->is_illegal() || index()->is_double_cpu() || index()->is_single_cpu(), "wrong index operand");
+++#endif
++   assert(base()->type() == T_OBJECT || base()->type() == T_LONG,
++          "wrong type for addresses");
++ #else
++@@ -545,7 +549,7 @@ void LIR_OpVisitState::visit(LIR_Op* op) {
++       assert(opConvert->_info == NULL, "must be");
++       if (opConvert->_opr->is_valid())       do_input(opConvert->_opr);
++       if (opConvert->_result->is_valid())    do_output(opConvert->_result);
++-#ifdef PPC
+++#if defined(PPC) || defined(TARGET_ARCH_aarch64)
++       if (opConvert->_tmp1->is_valid())      do_temp(opConvert->_tmp1);
++       if (opConvert->_tmp2->is_valid())      do_temp(opConvert->_tmp2);
++ #endif
++@@ -1468,6 +1472,11 @@ void LIR_OprDesc::print(outputStream* out) const {
++     out->print("fpu%d", fpu_regnr());
++   } else if (is_double_fpu()) {
++     out->print("fpu%d", fpu_regnrLo());
+++#elif defined(AARCH64)
+++  } else if (is_single_fpu()) {
+++    out->print("fpu%d", fpu_regnr());
+++  } else if (is_double_fpu()) {
+++    out->print("fpu%d", fpu_regnrLo());
++ #elif defined(ARM)
++   } else if (is_single_fpu()) {
++     out->print("s%d", fpu_regnr());
++@@ -1836,7 +1845,7 @@ void LIR_OpConvert::print_instr(outputStream* out) const {
++   print_bytecode(out, bytecode());
++   in_opr()->print(out);                  out->print(" ");
++   result_opr()->print(out);              out->print(" ");
++-#ifdef PPC
+++#if defined(PPC) || defined(TARGET_ARCH_aarch64)
++   if(tmp1()->is_valid()) {
++     tmp1()->print(out); out->print(" ");
++     tmp2()->print(out); out->print(" ");
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.hpp openjdk/hotspot/src/share/vm/c1/c1_LIR.hpp
++index f8589c3..eb3383f 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_LIR.hpp
++@@ -437,8 +437,8 @@ class LIR_OprDesc: public CompilationResourceObj {
++   XMMRegister as_xmm_double_reg() const;
++   // for compatibility with RInfo
++   int fpu () const                                  { return lo_reg_half(); }
++-#endif // X86
++-#if defined(SPARC) || defined(ARM) || defined(PPC)
+++#endif
+++#if defined(SPARC) || defined(ARM) || defined(PPC) || defined(AARCH64)
++   FloatRegister as_float_reg   () const;
++   FloatRegister as_double_reg  () const;
++ #endif
++@@ -526,7 +526,7 @@ class LIR_Address: public LIR_OprPtr {
++      , _type(type)
++      , _disp(0) { verify(); }
++ 
++-#if defined(X86) || defined(ARM)
+++#if defined(X86) || defined(ARM) || defined(AARCH64)
++   LIR_Address(LIR_Opr base, LIR_Opr index, Scale scale, intx disp, BasicType type):
++        _base(base)
++      , _index(index)
++@@ -601,7 +601,7 @@ class LIR_OprFact: public AllStatic {
++                                                                              LIR_OprDesc::fpu_register         |
++                                                                              LIR_OprDesc::double_size); }
++ #endif
++-#ifdef X86
+++#if defined(X86) || defined(AARCH64)
++   static LIR_Opr double_fpu(int reg)            { return (LIR_Opr)(intptr_t)((reg  << LIR_OprDesc::reg1_shift) |
++                                                                              (reg  << LIR_OprDesc::reg2_shift) |
++                                                                              LIR_OprDesc::double_type          |
++@@ -1398,7 +1398,7 @@ class LIR_OpConvert: public LIR_Op1 {
++  private:
++    Bytecodes::Code _bytecode;
++    ConversionStub* _stub;
++-#ifdef PPC
+++#if defined(PPC) || defined(TARGET_ARCH_aarch64)
++   LIR_Opr _tmp1;
++   LIR_Opr _tmp2;
++ #endif
++@@ -1413,7 +1413,7 @@ class LIR_OpConvert: public LIR_Op1 {
++ #endif
++      , _bytecode(code)                           {}
++ 
++-#ifdef PPC
+++#if defined(PPC) || defined(TARGET_ARCH_aarch64)
++    LIR_OpConvert(Bytecodes::Code code, LIR_Opr opr, LIR_Opr result, ConversionStub* stub
++                  ,LIR_Opr tmp1, LIR_Opr tmp2)
++      : LIR_Op1(lir_convert, opr, result)
++@@ -1425,7 +1425,7 @@ class LIR_OpConvert: public LIR_Op1 {
++ 
++   Bytecodes::Code bytecode() const               { return _bytecode; }
++   ConversionStub* stub() const                   { return _stub; }
++-#ifdef PPC
+++#if defined(PPC) || defined(TARGET_ARCH_aarch64)
++   LIR_Opr tmp1() const                           { return _tmp1; }
++   LIR_Opr tmp2() const                           { return _tmp2; }
++ #endif
++@@ -1973,7 +1973,14 @@ class LIR_List: public CompilationResourceObj {
++ #ifdef PPC
++   void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst, LIR_Opr tmp1, LIR_Opr tmp2) { append(new LIR_OpConvert(code, left, dst, NULL, tmp1, tmp2)); }
++ #endif
+++#if defined (TARGET_ARCH_aarch64)
+++  void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst,
+++	       ConversionStub* stub = NULL, LIR_Opr tmp1 = LIR_OprDesc::illegalOpr()) {
+++    append(new LIR_OpConvert(code, left, dst, stub, tmp1, LIR_OprDesc::illegalOpr()));
+++  }
+++#else
++   void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst, ConversionStub* stub = NULL/*, bool is_32bit = false*/) { append(new LIR_OpConvert(code, left, dst, stub)); }
+++#endif
++ 
++   void logical_and (LIR_Opr left, LIR_Opr right, LIR_Opr dst) { append(new LIR_Op2(lir_logic_and,  left, right, dst)); }
++   void logical_or  (LIR_Opr left, LIR_Opr right, LIR_Opr dst) { append(new LIR_Op2(lir_logic_or,   left, right, dst)); }
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp
++index 528f21e..4d83fca 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp
++@@ -50,6 +50,10 @@
++ # include "nativeInst_ppc.hpp"
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ void LIR_Assembler::patching_epilog(PatchingStub* patch, LIR_PatchCode patch_code, Register obj, CodeEmitInfo* info) {
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp
++index 58adf59..f4a49b3 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp
++@@ -261,6 +261,9 @@ class LIR_Assembler: public CompilationResourceObj {
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_LIRAssembler_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_LIRAssembler_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.cpp openjdk/hotspot/src/share/vm/c1/c1_LinearScan.cpp
++index aaae71d..93f9f5f 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.cpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_LinearScan.cpp
++@@ -47,6 +47,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ #ifndef PRODUCT
++@@ -2190,7 +2193,7 @@ LIR_Opr LinearScan::color_lir_opr(LIR_Opr opr, int op_id, LIR_OpVisitState::OprM
++ 
++   LIR_Opr res = operand_for_interval(interval);
++ 
++-#ifdef X86
+++#if defined(X86) || defined(AARCH64)
++   // new semantic for is_last_use: not only set on definite end of interval,
++   // but also before hole
++   // This may still miss some cases (e.g. for dead values), but it is not necessary that the
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.hpp openjdk/hotspot/src/share/vm/c1/c1_LinearScan.hpp
++index 0c06f1b..a152328 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_LinearScan.hpp
++@@ -985,6 +985,9 @@ class LinearScanTimers : public StackObj {
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_LinearScan_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_LinearScan_aarch64.hpp"
+++#endif
++ 
++ 
++ #endif // SHARE_VM_C1_C1_LINEARSCAN_HPP
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp openjdk/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp
++index 55d9803..eda2174 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "assembler_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "assembler_aarch64.inline.hpp"
+++#endif
++ 
++ class CodeEmitInfo;
++ 
++@@ -73,6 +76,9 @@ class C1_MacroAssembler: public MacroAssembler {
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_MacroAssembler_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_MacroAssembler_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.cpp openjdk/hotspot/src/share/vm/c1/c1_Runtime1.cpp
++index 765dec4..f0b3aae 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.cpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_Runtime1.cpp
++@@ -1103,6 +1103,7 @@ JRT_END
++ // completes we can check for deoptimization. This simplifies the
++ // assembly code in the cpu directories.
++ //
+++#ifndef TARGET_ARCH_aarch64
++ int Runtime1::move_klass_patching(JavaThread* thread) {
++ //
++ // NOTE: we are still in Java
++@@ -1150,6 +1151,7 @@ int Runtime1::access_field_patching(JavaThread* thread) {
++ 
++   return caller_is_deopted();
++ JRT_END
+++#endif
++ 
++ 
++ JRT_LEAF(void, Runtime1::trace_block_entry(jint block_id))
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.hpp openjdk/hotspot/src/share/vm/c1/c1_Runtime1.hpp
++index 2032564..19261be 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_Runtime1.hpp
++@@ -159,6 +159,9 @@ class Runtime1: public AllStatic {
++   static int move_klass_patching(JavaThread* thread);
++ 
++   static void patch_code(JavaThread* thread, StubID stub_id);
+++#ifdef TARGET_ARCH_aarch64
+++  static void patch_code_aarch64(JavaThread* thread, StubID stub_id);
+++#endif
++ 
++  public:
++   // initialization
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_globals.hpp openjdk/hotspot/src/share/vm/c1/c1_globals.hpp
++index 15f3cc1..4143a87 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_globals.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_globals.hpp
++@@ -38,6 +38,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_globals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_globals_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "c1_globals_linux.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/classfile/classFileStream.hpp openjdk/hotspot/src/share/vm/classfile/classFileStream.hpp
++index cf6f0e5..b128b3a 100644
++--- openjdk.orig/hotspot/src/share/vm/classfile/classFileStream.hpp
+++++ openjdk/hotspot/src/share/vm/classfile/classFileStream.hpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ // Input stream for reading .class file
++ //
++diff --git openjdk.orig/hotspot/src/share/vm/classfile/stackMapTable.hpp openjdk/hotspot/src/share/vm/classfile/stackMapTable.hpp
++index f876029..ac415b6 100644
++--- openjdk.orig/hotspot/src/share/vm/classfile/stackMapTable.hpp
+++++ openjdk/hotspot/src/share/vm/classfile/stackMapTable.hpp
++@@ -46,6 +46,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ class StackMapReader;
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/classfile/verifier.cpp openjdk/hotspot/src/share/vm/classfile/verifier.cpp
++index c5c5e11..9c22a21 100644
++--- openjdk.orig/hotspot/src/share/vm/classfile/verifier.cpp
+++++ openjdk/hotspot/src/share/vm/classfile/verifier.cpp
++@@ -60,6 +60,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ #define NOFAILOVER_MAJOR_VERSION 51
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/code/codeBlob.cpp openjdk/hotspot/src/share/vm/code/codeBlob.cpp
++index 244c320..429e0be 100644
++--- openjdk.orig/hotspot/src/share/vm/code/codeBlob.cpp
+++++ openjdk/hotspot/src/share/vm/code/codeBlob.cpp
++@@ -54,6 +54,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "nativeInst_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++#endif
++ #ifdef COMPILER1
++ #include "c1/c1_Runtime1.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/code/compiledIC.hpp openjdk/hotspot/src/share/vm/code/compiledIC.hpp
++index fe1cfb3..c9f6a2e 100644
++--- openjdk.orig/hotspot/src/share/vm/code/compiledIC.hpp
+++++ openjdk/hotspot/src/share/vm/code/compiledIC.hpp
++@@ -44,6 +44,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "nativeInst_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++#endif
++ 
++ //-----------------------------------------------------------------------------
++ // The CompiledIC represents a compiled inline cache.
++diff --git openjdk.orig/hotspot/src/share/vm/code/icBuffer.cpp openjdk/hotspot/src/share/vm/code/icBuffer.cpp
++index ed70457..d022482 100644
++--- openjdk.orig/hotspot/src/share/vm/code/icBuffer.cpp
+++++ openjdk/hotspot/src/share/vm/code/icBuffer.cpp
++@@ -52,6 +52,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "assembler_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "assembler_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ DEF_STUB_INTERFACE(ICStub);
++diff --git openjdk.orig/hotspot/src/share/vm/code/relocInfo.cpp openjdk/hotspot/src/share/vm/code/relocInfo.cpp
++index 4fd82df..78310e6 100644
++--- openjdk.orig/hotspot/src/share/vm/code/relocInfo.cpp
+++++ openjdk/hotspot/src/share/vm/code/relocInfo.cpp
++@@ -49,6 +49,10 @@
++ # include "assembler_ppc.inline.hpp"
++ # include "nativeInst_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "assembler_aarch64.inline.hpp"
+++# include "nativeInst_aarch64.hpp"
+++#endif
++ 
++ 
++ const RelocationHolder RelocationHolder::none; // its type is relocInfo::none
++diff --git openjdk.orig/hotspot/src/share/vm/code/relocInfo.hpp openjdk/hotspot/src/share/vm/code/relocInfo.hpp
++index 1d14b44..3823889 100644
++--- openjdk.orig/hotspot/src/share/vm/code/relocInfo.hpp
+++++ openjdk/hotspot/src/share/vm/code/relocInfo.hpp
++@@ -435,6 +435,9 @@ class relocInfo VALUE_OBJ_CLASS_SPEC {
++ #endif
++ #ifdef TARGET_ARCH_ppc
++ # include "relocInfo_ppc.hpp"
+++#endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "relocInfo_aarch64.hpp"
++ #endif
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/code/vmreg.hpp openjdk/hotspot/src/share/vm/code/vmreg.hpp
++index d57e6f8..1c18e47 100644
++--- openjdk.orig/hotspot/src/share/vm/code/vmreg.hpp
+++++ openjdk/hotspot/src/share/vm/code/vmreg.hpp
++@@ -42,6 +42,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "register_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "register_aarch64.hpp"
+++#endif
++ #ifdef COMPILER2
++ #include "opto/adlcVMDeps.hpp"
++ #include "utilities/ostream.hpp"
++@@ -63,6 +66,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/adGlobals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/adGlobals_aarch64.hpp"
+++#endif
++ #endif
++ 
++ //------------------------------VMReg------------------------------------------
++@@ -182,6 +188,9 @@ public:
++ #ifdef TARGET_ARCH_ppc
++ # include "vmreg_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vmreg_aarch64.hpp"
+++#endif
++ 
++ 
++ };
++diff --git openjdk.orig/hotspot/src/share/vm/compiler/disassembler.cpp openjdk/hotspot/src/share/vm/compiler/disassembler.cpp
++index 9603e86..3a67259 100644
++--- openjdk.orig/hotspot/src/share/vm/compiler/disassembler.cpp
+++++ openjdk/hotspot/src/share/vm/compiler/disassembler.cpp
++@@ -47,6 +47,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "depChecker_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "depChecker_aarch64.hpp"
+++#endif
++ #ifdef SHARK
++ #include "shark/sharkEntry.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/compiler/disassembler.hpp openjdk/hotspot/src/share/vm/compiler/disassembler.hpp
++index a70b8cc..4c90c9a 100644
++--- openjdk.orig/hotspot/src/share/vm/compiler/disassembler.hpp
+++++ openjdk/hotspot/src/share/vm/compiler/disassembler.hpp
++@@ -78,6 +78,9 @@ class Disassembler {
++ #endif
++ #ifdef TARGET_ARCH_ppc
++ # include "disassembler_ppc.hpp"
+++#endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "disassembler_aarch64.hpp"
++ #endif
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp
++index d23f37a..24ca30e 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp
++@@ -44,6 +44,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "interp_masm_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "interp_masm_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "thread_linux.inline.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecode.hpp openjdk/hotspot/src/share/vm/interpreter/bytecode.hpp
++index 107161a..205d0f7 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecode.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/bytecode.hpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ class ciBytecodeStream;
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp
++index e637414..308ad3b 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp
++@@ -47,6 +47,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ #ifdef CC_INTERP
++ 
++@@ -618,6 +621,9 @@ void print();
++ #ifdef TARGET_ARCH_ppc
++ # include "bytecodeInterpreter_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytecodeInterpreter_aarch64.hpp"
+++#endif
++ 
++ 
++ }; // BytecodeInterpreter
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp
++index 3715a52..0d6a8aa 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp
++@@ -58,6 +58,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytecodeInterpreter_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytecodeInterpreter_aarch64.inline.hpp"
+++#endif
++ 
++ #endif // CC_INTERP
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeStream.hpp openjdk/hotspot/src/share/vm/interpreter/bytecodeStream.hpp
++index 6106eac..f3dee0a 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeStream.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeStream.hpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ // A BytecodeStream is used for fast iteration over the bytecodes
++ // of a methodOop.
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodes.cpp openjdk/hotspot/src/share/vm/interpreter/bytecodes.cpp
++index 04f3f64..48ef30e 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodes.cpp
+++++ openjdk/hotspot/src/share/vm/interpreter/bytecodes.cpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ 
++ #if defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER < 1600))
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/cppInterpreter.hpp
++index e3a9f2e..8347473 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreter.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/cppInterpreter.hpp
++@@ -101,6 +101,9 @@ class CppInterpreter: public AbstractInterpreter {
++ #ifdef TARGET_ARCH_ppc
++ # include "cppInterpreter_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "cppInterpreter_aarch64.hpp"
+++#endif
++ 
++ 
++ };
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp openjdk/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp
++index c27805e..272f6e8 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp
++@@ -59,6 +59,9 @@ class CppInterpreterGenerator: public AbstractInterpreterGenerator {
++ #ifdef TARGET_ARCH_ppc
++ # include "cppInterpreterGenerator_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "cppInterpreterGenerator_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreter.hpp openjdk/hotspot/src/share/vm/interpreter/interpreter.hpp
++index 0ab0be7..6a6822f 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreter.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/interpreter.hpp
++@@ -158,6 +158,9 @@ class Interpreter: public CC_INTERP_ONLY(CppInterpreter) NOT_CC_INTERP(TemplateI
++ #ifdef TARGET_ARCH_ppc
++ # include "interpreter_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "interpreter_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp openjdk/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp
++index 7bc43ec..0434ca3 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp
++@@ -56,6 +56,9 @@ InterpreterGenerator(StubQueue* _code);
++ #ifdef TARGET_ARCH_ppc
++ # include "interpreterGenerator_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "interpreterGenerator_aarch64.hpp"
+++#endif
++ 
++ 
++ };
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp
++index e451c04..37700fb 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp
+++++ openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp
++@@ -71,6 +71,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vm_version_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vm_version_aarch64.hpp"
+++#endif
++ #ifdef COMPILER2
++ #include "opto/runtime.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp
++index 93c1a9e..425400e 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp
++@@ -164,6 +164,9 @@ class InterpreterRuntime: AllStatic {
++ #endif
++ #ifdef TARGET_ARCH_ppc
++ # include "interpreterRT_ppc.hpp"
+++#endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "interpreterRT_aarch64.hpp"
++ #endif
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/templateInterpreter.hpp
++index 25d74f7..f78a16e 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreter.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/templateInterpreter.hpp
++@@ -198,6 +198,9 @@ class TemplateInterpreter: public AbstractInterpreter {
++ #ifdef TARGET_ARCH_ppc
++ # include "templateInterpreter_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "templateInterpreter_aarch64.hpp"
+++#endif
++ 
++ 
++ };
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp openjdk/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp
++index fb7bdc5..6007630 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp
++@@ -101,6 +101,9 @@ class TemplateInterpreterGenerator: public AbstractInterpreterGenerator {
++ #ifdef TARGET_ARCH_ppc
++ # include "templateInterpreterGenerator_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "templateInterpreterGenerator_aarch64.hpp"
+++#endif
++ 
++ 
++ };
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/templateTable.hpp openjdk/hotspot/src/share/vm/interpreter/templateTable.hpp
++index 5d2a7e8..c5e0f0a 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/templateTable.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/templateTable.hpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "interp_masm_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "interp_masm_aarch64.hpp"
+++#endif
++ 
++ #ifndef CC_INTERP
++ // All the necessary definitions used for (bytecode) template generation. Instead of
++@@ -373,6 +376,9 @@ class TemplateTable: AllStatic {
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "templateTable_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "templateTable_aarch64.hpp"
+++#endif
++ 
++ };
++ #endif /* !CC_INTERP */
++diff --git openjdk.orig/hotspot/src/share/vm/oops/constantPoolOop.hpp openjdk/hotspot/src/share/vm/oops/constantPoolOop.hpp
++index c2f985d..3d0d0fc 100644
++--- openjdk.orig/hotspot/src/share/vm/oops/constantPoolOop.hpp
+++++ openjdk/hotspot/src/share/vm/oops/constantPoolOop.hpp
++@@ -45,6 +45,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ // A constantPool is an array containing class constants as described in the
++ // class file.
++diff --git openjdk.orig/hotspot/src/share/vm/oops/oop.inline.hpp openjdk/hotspot/src/share/vm/oops/oop.inline.hpp
++index db14b2e..c8b326f 100644
++--- openjdk.orig/hotspot/src/share/vm/oops/oop.inline.hpp
+++++ openjdk/hotspot/src/share/vm/oops/oop.inline.hpp
++@@ -58,6 +58,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ // Implementation of all inlined member functions defined in oop.hpp
++ // We need a separate file to avoid circular references
++diff --git openjdk.orig/hotspot/src/share/vm/opto/buildOopMap.cpp openjdk/hotspot/src/share/vm/opto/buildOopMap.cpp
++index fc73160..2c5ec41 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/buildOopMap.cpp
+++++ openjdk/hotspot/src/share/vm/opto/buildOopMap.cpp
++@@ -47,6 +47,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ 
++ // The functions in this file builds OopMaps after all scheduling is done.
++ //
++diff --git openjdk.orig/hotspot/src/share/vm/opto/c2_globals.hpp openjdk/hotspot/src/share/vm/opto/c2_globals.hpp
++index f73dcbd..462c875 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/c2_globals.hpp
+++++ openjdk/hotspot/src/share/vm/opto/c2_globals.hpp
++@@ -35,6 +35,9 @@
++ #ifdef TARGET_ARCH_arm
++ # include "c2_globals_arm.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c2_globals_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "c2_globals_linux.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/opto/c2compiler.cpp openjdk/hotspot/src/share/vm/opto/c2compiler.cpp
++index 713e3f1..948e447 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/c2compiler.cpp
+++++ openjdk/hotspot/src/share/vm/opto/c2compiler.cpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ 
++ volatile int C2Compiler::_runtimes = uninitialized;
++diff --git openjdk.orig/hotspot/src/share/vm/opto/compile.cpp openjdk/hotspot/src/share/vm/opto/compile.cpp
++index a7ee07a..91dc290 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/compile.cpp
+++++ openjdk/hotspot/src/share/vm/opto/compile.cpp
++@@ -80,6 +80,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ 
++ // -------------------- Compile::mach_constant_base_node -----------------------
++diff --git openjdk.orig/hotspot/src/share/vm/opto/gcm.cpp openjdk/hotspot/src/share/vm/opto/gcm.cpp
++index 8b8f311..4deb0b4 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/gcm.cpp
+++++ openjdk/hotspot/src/share/vm/opto/gcm.cpp
++@@ -53,6 +53,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ // Portions of code courtesy of Clifford Click
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/opto/lcm.cpp openjdk/hotspot/src/share/vm/opto/lcm.cpp
++index aee6123..4b9aaed 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/lcm.cpp
+++++ openjdk/hotspot/src/share/vm/opto/lcm.cpp
++@@ -48,6 +48,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ // Optimization - Graph Style
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/opto/locknode.hpp openjdk/hotspot/src/share/vm/opto/locknode.hpp
++index 91b99bc..665594f 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/locknode.hpp
+++++ openjdk/hotspot/src/share/vm/opto/locknode.hpp
++@@ -46,6 +46,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ //------------------------------BoxLockNode------------------------------------
++ class BoxLockNode : public Node {
++diff --git openjdk.orig/hotspot/src/share/vm/opto/matcher.cpp openjdk/hotspot/src/share/vm/opto/matcher.cpp
++index ca2d4e3..d0f55c5 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/matcher.cpp
+++++ openjdk/hotspot/src/share/vm/opto/matcher.cpp
++@@ -55,6 +55,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ OptoReg::Name OptoReg::c_frame_pointer;
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/opto/output.hpp openjdk/hotspot/src/share/vm/opto/output.hpp
++index 50b6e76..6a920b2 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/output.hpp
+++++ openjdk/hotspot/src/share/vm/opto/output.hpp
++@@ -45,6 +45,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ class Arena;
++ class Bundle;
++diff --git openjdk.orig/hotspot/src/share/vm/opto/regmask.cpp openjdk/hotspot/src/share/vm/opto/regmask.cpp
++index ce220f0..20c6028 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/regmask.cpp
+++++ openjdk/hotspot/src/share/vm/opto/regmask.cpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ #define RM_SIZE _RM_SIZE /* a constant private to the class RegMask */
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/opto/regmask.hpp openjdk/hotspot/src/share/vm/opto/regmask.hpp
++index e50ff84..26c6854 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/regmask.hpp
+++++ openjdk/hotspot/src/share/vm/opto/regmask.hpp
++@@ -46,6 +46,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/adGlobals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/adGlobals_aarch64.hpp"
+++#endif
++ 
++ // Some fun naming (textual) substitutions:
++ //
++diff --git openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp openjdk/hotspot/src/share/vm/opto/runtime.cpp
++index d315f10..11a58b1 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp
+++++ openjdk/hotspot/src/share/vm/opto/runtime.cpp
++@@ -86,6 +86,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ 
++ // For debugging purposes:
++diff --git openjdk.orig/hotspot/src/share/vm/prims/jniCheck.cpp openjdk/hotspot/src/share/vm/prims/jniCheck.cpp
++index 3bf4ecd..2ad9014 100644
++--- openjdk.orig/hotspot/src/share/vm/prims/jniCheck.cpp
+++++ openjdk/hotspot/src/share/vm/prims/jniCheck.cpp
++@@ -51,6 +51,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "jniTypes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "jniTypes_aarch64.hpp"
+++#endif
++ 
++ 
++ // Heap objects are allowed to be directly referenced only in VM code,
++diff --git openjdk.orig/hotspot/src/share/vm/prims/jni_md.h openjdk/hotspot/src/share/vm/prims/jni_md.h
++index 7fa5829..3bd4e31 100644
++--- openjdk.orig/hotspot/src/share/vm/prims/jni_md.h
+++++ openjdk/hotspot/src/share/vm/prims/jni_md.h
++@@ -39,6 +39,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "jni_ppc.h"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "jni_aarch64.h"
+++#endif
++ 
++ 
++ /*
++diff --git openjdk.orig/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp openjdk/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
++index 97dd154..fd1fa43 100644
++--- openjdk.orig/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
+++++ openjdk/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ // FIXME: add Deprecated, LVTT attributes
++ // FIXME: fix Synthetic attribute
++ // FIXME: per Serguei, add error return handling for constantPoolOopDesc::copy_cpool_bytes()
++diff --git openjdk.orig/hotspot/src/share/vm/prims/methodHandles.hpp openjdk/hotspot/src/share/vm/prims/methodHandles.hpp
++index 514ba6a..ea747d0 100644
++--- openjdk.orig/hotspot/src/share/vm/prims/methodHandles.hpp
+++++ openjdk/hotspot/src/share/vm/prims/methodHandles.hpp
++@@ -738,6 +738,9 @@ public:
++ #ifdef TARGET_ARCH_ppc
++ # include "methodHandles_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "methodHandles_aarch64.hpp"
+++#endif
++ };
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/atomic.cpp openjdk/hotspot/src/share/vm/runtime/atomic.cpp
++index 80780d7..5a34f15 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/atomic.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/atomic.cpp
++@@ -60,6 +60,9 @@
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "atomic_linux_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "atomic_linux_aarch64.inline.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_bsd_x86
++ # include "atomic_bsd_x86.inline.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp
++index 4735588..4e7958a 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp
++@@ -65,6 +65,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ #ifdef COMPILER2
++ #ifdef TARGET_ARCH_MODEL_x86_32
++ # include "adfiles/ad_x86_32.hpp"
++@@ -84,6 +87,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ #endif
++ 
++ bool DeoptimizationMarker::_is_active = false;
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/dtraceJSDT.hpp openjdk/hotspot/src/share/vm/runtime/dtraceJSDT.hpp
++index bff4310..1129cd6 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/dtraceJSDT.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/dtraceJSDT.hpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "nativeInst_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++#endif
++ 
++ class RegisteredProbes;
++ typedef jlong OpaqueProbes;
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/frame.cpp openjdk/hotspot/src/share/vm/runtime/frame.cpp
++index 7ae9aa8..6654714 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/frame.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/frame.cpp
++@@ -59,6 +59,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "nativeInst_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++#endif
++ 
++ RegisterMap::RegisterMap(JavaThread *thread, bool update_map) {
++   _thread         = thread;
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/frame.hpp openjdk/hotspot/src/share/vm/runtime/frame.hpp
++index c55380e..c13caae 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/frame.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/frame.hpp
++@@ -50,6 +50,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/adGlobals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/adGlobals_aarch64.hpp"
+++#endif
++ #endif
++ #ifdef ZERO
++ #ifdef TARGET_ARCH_zero
++@@ -491,6 +494,9 @@ class frame VALUE_OBJ_CLASS_SPEC {
++ #ifdef TARGET_ARCH_ppc
++ # include "frame_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "frame_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/frame.inline.hpp openjdk/hotspot/src/share/vm/runtime/frame.inline.hpp
++index b80b042..f6e1b0e 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/frame.inline.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/frame.inline.hpp
++@@ -46,6 +46,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "jniTypes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "jniTypes_aarch64.hpp"
+++#endif
++ #ifdef ZERO
++ #ifdef TARGET_ARCH_zero
++ # include "entryFrame_zero.hpp"
++@@ -100,6 +103,9 @@ inline bool frame::is_first_frame() const {
++ #ifdef TARGET_ARCH_ppc
++ # include "frame_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "frame_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ #endif // SHARE_VM_RUNTIME_FRAME_INLINE_HPP
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp openjdk/hotspot/src/share/vm/runtime/globals.hpp
++index 10d74cd..4cc5dfb 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp
++@@ -52,6 +52,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "globals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "globals_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "globals_linux.hpp"
++ #endif
++@@ -88,6 +91,9 @@
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "globals_linux_ppc.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "globals_linux_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_bsd_x86
++ # include "globals_bsd_x86.hpp"
++ #endif
++@@ -107,6 +113,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_globals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_globals_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "c1_globals_linux.hpp"
++ #endif
++@@ -130,6 +139,9 @@
++ #ifdef TARGET_ARCH_arm
++ # include "c2_globals_arm.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c2_globals_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "c2_globals_linux.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/icache.hpp openjdk/hotspot/src/share/vm/runtime/icache.hpp
++index d460a0f..9a3b9c8 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/icache.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/icache.hpp
++@@ -83,6 +83,9 @@ class AbstractICache : AllStatic {
++ #ifdef TARGET_ARCH_ppc
++ # include "icache_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "icache_aarch64.hpp"
+++#endif
++ 
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/java.cpp openjdk/hotspot/src/share/vm/runtime/java.cpp
++index fc3b67a..46794b0 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/java.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/java.cpp
++@@ -78,6 +78,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vm_version_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vm_version_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "thread_linux.inline.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/javaCalls.hpp openjdk/hotspot/src/share/vm/runtime/javaCalls.hpp
++index d4f8595..bc2ca9b 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/javaCalls.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/javaCalls.hpp
++@@ -45,6 +45,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "jniTypes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "jniTypes_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "thread_linux.inline.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp openjdk/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp
++index 8374aa2..6be5f79 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp
++@@ -47,6 +47,9 @@
++ #ifdef TARGET_OS_ARCH_linux_arm
++ # include "orderAccess_linux_arm.inline.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "orderAccess_linux_aarch64.inline.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "orderAccess_linux_ppc.inline.hpp"
++ #endif
++@@ -121,6 +124,9 @@ friend class JavaCallWrapper;
++ #ifdef TARGET_ARCH_ppc
++ # include "javaFrameAnchor_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "javaFrameAnchor_aarch64.hpp"
+++#endif
++ 
++ 
++ public:
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.hpp openjdk/hotspot/src/share/vm/runtime/os.hpp
++index 5867deb..0f1fbb4 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/os.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/os.hpp
++@@ -719,6 +719,9 @@ class os: AllStatic {
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "os_linux_ppc.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "os_linux_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_bsd_x86
++ # include "os_bsd_x86.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/registerMap.hpp openjdk/hotspot/src/share/vm/runtime/registerMap.hpp
++index 5dd677a..7bd425f 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/registerMap.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/registerMap.hpp
++@@ -42,6 +42,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "register_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "register_aarch64.hpp"
+++#endif
++ 
++ class JavaThread;
++ 
++@@ -150,6 +153,9 @@ class RegisterMap : public StackObj {
++ #ifdef TARGET_ARCH_ppc
++ # include "registerMap_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "registerMap_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/relocator.hpp openjdk/hotspot/src/share/vm/runtime/relocator.hpp
++index c34866f..790bd80 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/relocator.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/relocator.hpp
++@@ -42,6 +42,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ // This code has been converted from the 1.1E java virtual machine
++ // Thanks to the JavaTopics group for using the code
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/safepoint.cpp openjdk/hotspot/src/share/vm/runtime/safepoint.cpp
++index c29d257..a842bb3 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/safepoint.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/safepoint.cpp
++@@ -70,6 +70,10 @@
++ # include "nativeInst_ppc.hpp"
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "thread_linux.inline.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp
++index c25dcfe..aa7caff 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp
++@@ -76,6 +76,10 @@
++ # include "nativeInst_ppc.hpp"
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ #ifdef COMPILER1
++ #include "c1/c1_Runtime1.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/stackValueCollection.cpp openjdk/hotspot/src/share/vm/runtime/stackValueCollection.cpp
++index 110f712..779f994 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/stackValueCollection.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/stackValueCollection.cpp
++@@ -39,6 +39,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "jniTypes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "jniTypes_aarch64.hpp"
+++#endif
++ 
++ jint StackValueCollection::int_at(int slot) const {
++   intptr_t val =  at(slot)->get_int();
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/statSampler.cpp openjdk/hotspot/src/share/vm/runtime/statSampler.cpp
++index 0b24def..c82a214 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/statSampler.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/statSampler.cpp
++@@ -48,6 +48,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vm_version_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vm_version_aarch64.hpp"
+++#endif
++ 
++ // --------------------------------------------------------
++ // StatSamplerTask
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
++index b6068a5..4ef7e38 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
++@@ -42,6 +42,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "assembler_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "assembler_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ // Implementation of StubCodeDesc
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubRoutines.hpp openjdk/hotspot/src/share/vm/runtime/stubRoutines.hpp
++index 8481dce..f233b56 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/stubRoutines.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/stubRoutines.hpp
++@@ -46,6 +46,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "nativeInst_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++#endif
++ 
++ // StubRoutines provides entry points to assembly routines used by
++ // compiled code and the run-time system. Platform-specific entry
++@@ -116,6 +119,9 @@ class StubRoutines: AllStatic {
++ #endif
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "stubRoutines_ppc.hpp"
+++#endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "stubRoutines_aarch64.hpp"
++ #endif
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/thread.hpp openjdk/hotspot/src/share/vm/runtime/thread.hpp
++index 7846cc0..6964c22 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/thread.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/thread.hpp
++@@ -1651,6 +1651,9 @@ public:
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "thread_linux_ppc.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "thread_linux_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_bsd_x86
++ # include "thread_bsd_x86.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/threadLocalStorage.hpp openjdk/hotspot/src/share/vm/runtime/threadLocalStorage.hpp
++index c2f7a9e..26ef559 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/threadLocalStorage.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/threadLocalStorage.hpp
++@@ -68,6 +68,9 @@ class ThreadLocalStorage : AllStatic {
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "threadLS_linux_ppc.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "threadLS_linux_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_bsd_x86
++ # include "threadLS_bsd_x86.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/vmStructs.cpp openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp
++index 8afd933..359f9fc 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/vmStructs.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp
++@@ -125,6 +125,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vmStructs_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vmStructs_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "thread_linux.inline.hpp"
++ #endif
++@@ -161,6 +164,9 @@
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "vmStructs_linux_ppc.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "vmStructs_linux_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_bsd_x86
++ # include "vmStructs_bsd_x86.hpp"
++ #endif
++@@ -221,6 +227,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/adGlobals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/adGlobals_aarch64.hpp"
+++#endif
++ #endif
++ 
++ // Note: the cross-product of (c1, c2, product, nonproduct, ...),
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
++index 2d51b67..bba9b01 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vm_version_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vm_version_aarch64.hpp"
+++#endif
++ 
++ const char* Abstract_VM_Version::_s_vm_release = Abstract_VM_Version::vm_release();
++ const char* Abstract_VM_Version::_s_internal_vm_info_string = Abstract_VM_Version::internal_vm_info_string();
++@@ -185,6 +188,7 @@ const char* Abstract_VM_Version::jre_release_version() {
++                  AMD64_ONLY("amd64")             \
++                  ARM_ONLY("arm")                 \
++                  PPC_ONLY("ppc")                 \
+++                 AARCH64_ONLY("aarch64")         \
++                  SPARC_ONLY("sparc")
++ #endif // ZERO
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/utilities/copy.hpp openjdk/hotspot/src/share/vm/utilities/copy.hpp
++index 3dcbfee..198590f 100644
++--- openjdk.orig/hotspot/src/share/vm/utilities/copy.hpp
+++++ openjdk/hotspot/src/share/vm/utilities/copy.hpp
++@@ -337,6 +337,9 @@ class Copy : AllStatic {
++ #ifdef TARGET_ARCH_ppc
++ # include "copy_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "copy_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp
++index b55b0ac..5d11e26 100644
++--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp
+++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp
++@@ -346,6 +346,9 @@ extern int LogMinObjAlignmentInBytes;
++ #ifdef TARGET_ARCH_ppc
++ # include "globalDefinitions_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "globalDefinitions_aarch64.hpp"
+++#endif
++ 
++ 
++ // The byte alignment to be used by Arena::Amalloc.  See bugid 4169348.
++diff --git openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp openjdk/hotspot/src/share/vm/utilities/macros.hpp
++index 003f2af..2aa7f87 100644
++--- openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp
+++++ openjdk/hotspot/src/share/vm/utilities/macros.hpp
++@@ -261,6 +261,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)
+-- 
+2.26.2
+
-- 
2.26.2
S
S
Simon South wrote on 15 Jun 2020 17:22
[PATCH 4/7] gnu: icedtea-7: Build in parallel using correct number of jobs.
(address . 41871@debbugs.gnu.org)(name . Simon South)(address . simon@simonsouth.net)
20200615152257.12938-4-simon@simonsouth.net
* gnu/packages/java.scm (icedtea-7)[arguments]<#:configure-flags>: Add
"--with-parallel-jobs".
---
gnu/packages/java.scm | 2 ++
1 file changed, 2 insertions(+)

Toggle diff (15 lines)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 3618b9ee3f..5f46e883fc 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1169,6 +1169,8 @@ bootstrapping purposes.")
            "--enable-bootstrap"
            "--enable-nss"
            "--without-rhino"
+           ,(string-append "--with-parallel-jobs="
+                           (number->string (parallel-job-count)))
            "--disable-downloading"
            "--disable-tests"        ;they are run in the check phase instead
            "--with-openjdk-src-dir=./openjdk.src"
-- 
2.26.2
S
S
Simon South wrote on 15 Jun 2020 17:22
[PATCH 5/7] gnu: icedtea-7: Fix build on aarch64-linux.
(address . 41871@debbugs.gnu.org)(name . Simon South)(address . simon@simonsouth.net)
20200615152257.12938-5-simon@simonsouth.net
* gnu/packages/java.scm (icedtea-7)[native-inputs]: Remove obsolete,
architecture-dependent patch to "hotspot-drop"; replace with patch to fix
build on aarch64-linux.
* gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
gnu/local.mk | 1 +
gnu/packages/java.scm | 2 +-
.../icedtea-7-hotspot-aarch64-use-c++98.patch | 33 +++++++++++++++++++
3 files changed, 35 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch

Toggle diff (66 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 36dbbd0968..4c030a57db 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1094,6 +1094,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch	\
   %D%/packages/patches/icecat-use-system-media-libs.patch	\
   %D%/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch	\
+  %D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch	\
   %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch  \
   %D%/packages/patches/icu4c-CVE-2020-10531.patch  		\
   %D%/packages/patches/id3lib-CVE-2007-4460.patch			\
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 5f46e883fc..b86e9aab61 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1599,7 +1599,7 @@ bootstrapping purposes.")
               (base32
                "17bdv39n4lh8l5737c96f3xgamx4y305m067p01cywgp7zaddqws"))
              (patches (search-patches
-                       "icedtea-7-hotspot-gcc-segfault-workaround.patch"))))
+                       "icedtea-7-hotspot-aarch64-use-c++98.patch"))))
          ("ant" ,ant-bootstrap)
          ("attr" ,attr)
          ("coreutils" ,coreutils)
diff --git a/gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch b/gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch
new file mode 100644
index 0000000000..7ad215f975
--- /dev/null
+++ b/gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch
@@ -0,0 +1,33 @@
+From 919dd016be1abd213b3a7d0e9a3b79e3286ef6ad Mon Sep 17 00:00:00 2001
+From: Simon South <simon@simonsouth.net>
+Date: Wed, 10 Jun 2020 13:02:09 -0400
+Subject: [PATCH] aarch64: Use only C++98
+
+This patch removes an unneeded C++ template that causes the build to
+fail for aarch64 using gcc 7.5.0 and its default support for only the
+C++98 standard.
+
+It is based on original work by Severin Gehwolf <sgehwolf@redhat.com>.
+See: https://bugzilla.redhat.com/show_bug.cgi?id=1307224
+---
+ src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp b/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
+index 0bc0a2b..6f73ca0 100644
+--- a/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
++++ b/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
+@@ -194,10 +194,6 @@ static int reg2offset_out(VMReg r) {
+   return (r->reg2stack() + SharedRuntime::out_preserve_stack_slots()) * VMRegImpl::stack_slot_size;
+ }
+ 
+-template <class T> static const T& min (const T& a, const T& b) {
+-  return (a > b) ? b : a;
+-}
+-
+ // ---------------------------------------------------------------------------
+ // Read the array of BasicTypes from a signature, and compute where the
+ // arguments should go.  Values in the VMRegPair regs array refer to 4-byte
+-- 
+2.26.2
+
-- 
2.26.2
S
S
Simon South wrote on 15 Jun 2020 17:22
[PATCH 7/7] gnu: icedtea-8: Fix build on aarch64-linux.
(address . 41871@debbugs.gnu.org)(name . Simon South)(address . simon@simonsouth.net)
20200615152257.12938-7-simon@simonsouth.net
* gnu/packages/java.scm (icedtea-8)[native-inputs]: Remove obsolete,
architecture-dependent patch to "hotspot-drop".
* gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch: Delete
file.
* gnu/local.mk (dist_patch_DATA): Remove it.
---
gnu/local.mk | 1 -
gnu/packages/java.scm | 12 +----
...ea-7-hotspot-gcc-segfault-workaround.patch | 45 -------------------
3 files changed, 2 insertions(+), 56 deletions(-)
delete mode 100644 gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch

Toggle diff (88 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 4c030a57db..2af4c260d6 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1095,7 +1095,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/icecat-use-system-media-libs.patch	\
   %D%/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch	\
   %D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch	\
-  %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch  \
   %D%/packages/patches/icu4c-CVE-2020-10531.patch  		\
   %D%/packages/patches/id3lib-CVE-2007-4460.patch			\
   %D%/packages/patches/id3lib-UTF16-writing-bug.patch			\
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index d655f73101..38791b30f3 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1795,16 +1795,8 @@ new Date();"))
           ,(drop "langtools"
                  "15wizy123vhk40chl1b4p552jf2pw2hdww0myf11qab425axz4nw"))
          ("hotspot-drop"
-          ,(origin
-             (method url-fetch)
-             (uri (string-append
-                   "http://icedtea.classpath.org/download/drops"
-                   "/icedtea8/" version "/hotspot.tar.xz"))
-             (sha256
-              (base32
-               "1ciz1w9j0kz7s1dxdhyqq71nla9icyz6qvn0b9z2zgkklqa98qmm"))
-             (patches (search-patches
-                       "icedtea-7-hotspot-gcc-segfault-workaround.patch"))))
+          ,(drop "hotspot"
+                 "1ciz1w9j0kz7s1dxdhyqq71nla9icyz6qvn0b9z2zgkklqa98qmm"))
          ("nashorn-drop"
           ,(drop "nashorn"
                  "19pzl3ppaw8j6r5cnyp8qiw3hxijh3hdc46l39g5yfhdl4pr4hpa"))
diff --git a/gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch b/gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch
deleted file mode 100644
index 35cfe38152..0000000000
--- a/gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 2f0ef2c69e99e1096a2a72c7a29025a736b044b4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= <boskovits@gmail.com>
-Date: Mon, 2 Jul 2018 23:37:25 +0200
-Subject: [PATCH] Fix gcc segfault.
-
----
- src/share/vm/opto/output.cpp | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/src/share/vm/opto/output.cpp b/src/share/vm/opto/output.cpp
-index d46cb87..0eb9eda 100644
---- a/src/share/vm/opto/output.cpp
-+++ b/src/share/vm/opto/output.cpp
-@@ -1787,6 +1787,8 @@ uint Scheduling::_total_instructions_per_bundle[Pipeline::_max_instrs_per_cycle+
- 
- // Initializer for class Scheduling
- 
-+volatile const void *eePointer = Pipeline_Use::elaborated_elements;
-+
- Scheduling::Scheduling(Arena *arena, Compile &compile)
-   : _arena(arena),
-     _cfg(compile.cfg()),
-@@ -1829,7 +1831,7 @@ Scheduling::Scheduling(Arena *arena, Compile &compile)
-   memset(_current_latency,    0, node_max * sizeof(unsigned short));
- 
-   // Clear the bundling information
--  memcpy(_bundle_use_elements, Pipeline_Use::elaborated_elements, sizeof(Pipeline_Use::elaborated_elements));
-+  memcpy(_bundle_use_elements, (void *)eePointer, 11*sizeof(Pipeline_Use_Element));
- 
-   // Get the last node
-   Block* block = _cfg->get_block(_cfg->number_of_blocks() - 1);
-@@ -1880,8 +1882,8 @@ void Scheduling::step_and_clear() {
-   _bundle_use.reset();
- 
-   memcpy(_bundle_use_elements,
--    Pipeline_Use::elaborated_elements,
--    sizeof(Pipeline_Use::elaborated_elements));
-+	 (void *)eePointer,
-+    11*sizeof(Pipeline_Use_Element));
- }
- 
- // Perform instruction scheduling and bundling over the sequence of
--- 
-2.18.0
-
-- 
2.26.2
S
S
Simon South wrote on 15 Jun 2020 17:22
[PATCH 6/7] gnu: icedtea-8: Build in parallel using correct number of jobs.
(address . 41871@debbugs.gnu.org)(name . Simon South)(address . simon@simonsouth.net)
20200615152257.12938-6-simon@simonsouth.net
* gnu/packages/java.scm (icedtea-8)[arguments]<#:configure-flags>: Add
"--with-parallel-jobs".
---
gnu/packages/java.scm | 2 ++
1 file changed, 2 insertions(+)

Toggle diff (15 lines)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index b86e9aab61..d655f73101 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1702,6 +1702,8 @@ IcedTea build harness.")
                  `( ;;"--disable-bootstrap"
                    "--enable-bootstrap"
                    "--enable-nss"
+                   ,(string-append "--with-parallel-jobs="
+                                   (number->string (parallel-job-count)))
                    "--disable-downloading"
                    "--disable-system-pcsc"
                    "--disable-system-sctp"
-- 
2.26.2
R
R
Ricardo Wurmus wrote on 14 Sep 2020 15:24
Re: [bug#41871] [PATCH 0/7] IcedTea: Build (efficiently) on aarch64-linux
(name . Simon South)(address . simon@simonsouth.net)(address . 41871@debbugs.gnu.org)
87tuw0xzi8.fsf@elephly.net
Hi Simon,

my apologies for the very long delay!

Toggle quote (10 lines)
> This patch series applies a number of changes to the icedtea-6, -7 and -8
> packages that allow them to build (efficiently) on aarch64-linux systems.
>
> It assumes the patches in issues 41748 and 41648 have already been applied, in
> that order.
>
> With these three sets of patches I've been able to complete the entire Java
> bootstrap process on both AArch64 and x86_64 and have successfully compiled
> and run a Java application on AArch64 using OpenJDK 14.

This looks really great! I have yet to read the patches in 41748 and
41648, but these patches here look good to me.

Thank you very much for working on this!

--
Ricardo
E
E
Efraim Flashner wrote on 28 Oct 2020 09:51
(name . Ricardo Wurmus)(address . rekado@elephly.net)
20201028085103.GZ10124@E5400
On Mon, Sep 14, 2020 at 03:24:15PM +0200, Ricardo Wurmus wrote:
Toggle quote (24 lines)
>
> Hi Simon,
>
> my apologies for the very long delay!
>
> > This patch series applies a number of changes to the icedtea-6, -7 and -8
> > packages that allow them to build (efficiently) on aarch64-linux systems.
> >
> > It assumes the patches in issues 41748 and 41648 have already been applied, in
> > that order.
> >
> > With these three sets of patches I've been able to complete the entire Java
> > bootstrap process on both AArch64 and x86_64 and have successfully compiled
> > and run a Java application on AArch64 using OpenJDK 14.
>
> This looks really great! I have yet to read the patches in 41748 and
> 41648, but these patches here look good to me.
>
> Thank you very much for working on this!
>
> --
> Ricardo
>

I had this on my TODO list for a while and I seem to have forgotten
about it. Since at least one of the patches was applied to staging I'm
testing them on staging now. Assuming no problems on x86_64 and aarch64
I'll go ahead and push them.

--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl+ZMPYACgkQQarn3Mo9
g1HC/BAAtr+3/MRGe1jScmZuAqLmVIXtvN/C2T+ZOep2p/UTS7shJeD+rVYGBE0U
PIRyQBGQK/OFC56EhItCz7GMez5Xbeutvgs8KKz6ZuYIWaN9ZcLEuobJ8Kt7eId0
CKZoomEFQamQkF1ehQrEtWYHQKV/Z1J6xNC4QUJEGvXLzlqJ1GI8cNArYci8eaGR
NYaxuc4BZq9eAJV3O2AOZWjxdUW45z1TihS795pKireGoZCefTaujpMXikK4li6v
TsB+P7ojAMR+dxOgTOX4Q3DqG4RhCkg91upBZYlFrWP7PLhXVUrbqNpTFloACkhT
gFAan+ThJ+19b9yMjdW0Mvp+oR+CDkkmqTLacrHowvUMj4KE5e/KZH3XHBIIXlKK
nKwjw2J9/IV8AGWZMb9XfV3ezOJ7JTcy5l1BA1j6smgTEyfkfd+VHTwAgCcDSC7h
GfXAR5JiH6yh25pMIdTqAcZlyyoAJxrSHSYPvFEEM3em6hRwdw/ddZcni3r5SN2Q
1FG7HakEbF4dpRYG/XTPCvVfQNrQefwu82spevLK/4pJeop19NDF8quhJDTpkv+G
EPlJiK+WBzX3Q5LFG4vF7cZax7ZLkR2YxxEI8SScFRrwv4egXcQw6B2ysDa8bLZk
kAAiQ+hMZQmiROtT4j0ptEIT09vZt5oySy/iMhvOy/IhrRA4AP8=
=BtEY
-----END PGP SIGNATURE-----


S
S
Simon South wrote on 28 Oct 2020 15:35
(name . Efraim Flashner)(address . efraim@flashner.co.il)
871rhiv2oz.fsf@simonsouth.net
Efraim Flashner <efraim@flashner.co.il> writes:
Toggle quote (9 lines)
> On Mon, Sep 14, 2020 at 03:24:15PM +0200, Ricardo Wurmus wrote:
>> This looks really great! I have yet to read the patches in 41748 and
>> 41648, but these patches here look good to me...
>
> I had this on my TODO list for a while and I seem to have forgotten
> about it. Since at least one of the patches was applied to staging I'm
> testing them on staging now. Assuming no problems on x86_64 and aarch64
> I'll go ahead and push them.

Wonderful. Thank you both for looking at these changes.

If they're able to be applied in time, it'll be possible to list
"Support for Java applications on aarch64-linux" among the new features
in Guix 1.2.0.

--
Simon South
simon@simonsouth.net
E
E
Efraim Flashner wrote on 29 Oct 2020 14:15
(name . Simon South)(address . simon@simonsouth.net)
20201029131526.GE10124@E5400
On Wed, Oct 28, 2020 at 10:35:08AM -0400, Simon South wrote:
Toggle quote (17 lines)
> Efraim Flashner <efraim@flashner.co.il> writes:
> > On Mon, Sep 14, 2020 at 03:24:15PM +0200, Ricardo Wurmus wrote:
> >> This looks really great! I have yet to read the patches in 41748 and
> >> 41648, but these patches here look good to me...
> >
> > I had this on my TODO list for a while and I seem to have forgotten
> > about it. Since at least one of the patches was applied to staging I'm
> > testing them on staging now. Assuming no problems on x86_64 and aarch64
> > I'll go ahead and push them.
>
> Wonderful. Thank you both for looking at these changes.
>
> If they're able to be applied in time, it'll be possible to list
> "Support for Java applications on aarch64-linux" among the new features
> in Guix 1.2.0.
>

All three versions of icedtea built with no problems on x86_64.
icedtea-2 failed the first time through on aarch64. I'm sending it
through again.

<..snip..>
# org.w3c.dom.events
# org.w3c.dom.bootstrap
# org.w3c.dom.ls
# org.xml.sax
# org.xml.sax.ext
# org.xml.sax.helpers
/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/bootstrap/jdk1.6.0/bin/java -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -Xmx1536m -
Xms512m -XX:PermSize=32m -XX:MaxPermSize=160m "-Xbootclasspath/p:/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build/langtools/dist/bootstrap/lib/javadoc.jar:/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build/langtools/dist/bootstrap/lib/javac.jar:/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build/langtools/dist/bootstrap/lib/doclets.jar" -jar /tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build/langtools/dist/bootstrap/lib/javadoc.jar -bootclasspath "/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build/classes" -d /tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build/docs/api \
@/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build/tmp/docs/doctmp/coredocs.options @/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build/tmp/docs/doctmp/coredocs.packages
../../src/share/classes/java/awt/color/ICC_Profile.java:1073: warning - Tag @see: missing '#': "activateDeferredProfile()"
../../src/share/classes/java/text/NumberFormat.java:305: warning - @param argument "toAppendTo" is not a parameter name.
../../src/share/classes/java/text/NumberFormat.java:305: warning - @param argument "pos" is not a parameter name.
../../src/share/classes/java/util/Calendar.java:1720: warning - Tag @see: can't find setInternallySetState(int) in java.util.Calendar
../../src/share/classes/java/util/Currency.java:700: warning - @throws tag has no arguments.
../../src/share/classes/java/util/concurrent/ArrayBlockingQueue.java:867: warning - Tag @see: can't find floor(double) in java.util.concurrent.ArrayBlockingQueue
../../src/share/classes/javax/swing/plaf/nimbus/NimbusStyle.java:854: warning - @return tag has no arguments.
../../src/share/classes/javax/swing/plaf/nimbus/NimbusStyle.java:926: warning - @return tag has no arguments.
/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build/impsrc/javax/xml/bind/JAXBContext.java:262: warning - Tag @see: reference not found: S 7.4.1 "Named Packages" in Java Language Specification</a>
make[4]: *** [Makefile:325: /tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build/docs/api/index.html] Error 143
make[4]: Leaving directory '/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk/jdk/make/docs'
make[3]: *** [Makefile:263: docs] Error 1
make[3]: Leaving directory '/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk/jdk/make'
make[2]: *** [make/jdk-rules.gmk:93: jdk-build] Error 2
make[2]: Leaving directory '/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk'
make[1]: *** [Makefile:251: build_product_image] Error 2
make[1]: Leaving directory '/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk'
make: *** [Makefile:2463: stamps/icedtea.stamp] Error 2
command "make" "-j" "2" failed with status 2
builder for `/gnu/store/n9p75jv705bdf0983xrbw5142fw1fp7z-icedtea-2.6.13.drv' failed with exit code 1
@ build-failed /gnu/store/n9p75jv705bdf0983xrbw5142fw1fp7z-icedtea-2.6.13.drv - 1 builder for `/gnu/store/n9p75jv705bdf0983xrbw5142fw1fp7z-icedtea-2.6.13.drv' failed with exit code 1
derivation '/gnu/store/n9p75jv705bdf0983xrbw5142fw1fp7z-icedtea-2.6.13.drv' offloaded to 'pine64' failed: build of `/gnu/store/n9p75jv705bdf0983xrbw5142fw1fp7z-icedtea-2.6.13.drv' failed
build of /gnu/store/n9p75jv705bdf0983xrbw5142fw1fp7z-icedtea-2.6.13.drv failed
View build log at '/var/log/guix/drvs/n9/p75jv705bdf0983xrbw5142fw1fp7z-icedtea-2.6.13.drv.bz2'.
cannot build derivation `/gnu/store/ci079q2b5max3j0vvia94q0ccbqxwh0q-icedtea-3.7.0.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/ci079q2b5max3j0vvia94q0ccbqxwh0q-icedtea-3.7.0.drv' failed

real 1581m16.100s
user 2m9.646s
sys 0m16.733s

--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl+awGkACgkQQarn3Mo9
g1EXKBAAwo9SEdcOloKvASWCrQqhM/RXKDMEqR7WDc0iEGO5C1Nc2RhFAlvILqNQ
gaymOj89sEqvKWsGObnK1zxrCNSaQKoe0qPJYb0lImAcwGDTbL9i7/z4CDlFYJ72
Gps4nap4fflLQNNgCxylqL8ey6EDfMJilDQf67YXft0U/73dUqLNdqB4IqMXZNfF
4YSoKgYZP5GBawmCJGuRUWzp2RzgNFnVI6XKyEVdGCcfV0GMdDoE7kTQOo30kb00
+c+o/cij1bqR85b8+YGRclPOCvZcUESXlEOe7Pei8rae+mEKxZC81DmsAKXNpKM4
mL3FDV0ESeWCgb9/qbsZ/O9zosYUgluf0bTlUF31WTrpooYKKdGMc71Va1aDP+hk
JWgu6eEtToY+YX7b06cuD10xff3xLAOgG83YrzYggEu/0We8x6XxTq6T8H1vEzJl
O9egfKunAzSuxjgnJg7ajQMXKxPVg9K22GUbDHkPW2JBEvKsi70Kbd1JGcaWzPTw
Z1UHEZxeRIhBtDwtsD0gzjgQ0kf7ltDxMeTeNJAqlbNZ/VVA3C/HCsOgTyDGz3IV
bxFWQSvTh83zABxY2PpkkbY7BzwpsLuwdzLfCTdnoO84xhzF+yUXk2y5KTu7cU6q
l9mRv+w0xJT5fRyw+ytpJ2l6dd6ttQeF95RH8WIdCMOUf/ezYgU=
=tY/F
-----END PGP SIGNATURE-----


E
E
Efraim Flashner wrote on 2 Nov 2020 10:54
(name . Simon South)(address . simon@simonsouth.net)
20201102095405.GB984@E5400
On Wed, Oct 28, 2020 at 10:35:08AM -0400, Simon South wrote:
Toggle quote (17 lines)
> Efraim Flashner <efraim@flashner.co.il> writes:
> > On Mon, Sep 14, 2020 at 03:24:15PM +0200, Ricardo Wurmus wrote:
> >> This looks really great! I have yet to read the patches in 41748 and
> >> 41648, but these patches here look good to me...
> >
> > I had this on my TODO list for a while and I seem to have forgotten
> > about it. Since at least one of the patches was applied to staging I'm
> > testing them on staging now. Assuming no problems on x86_64 and aarch64
> > I'll go ahead and push them.
>
> Wonderful. Thank you both for looking at these changes.
>
> If they're able to be applied in time, it'll be possible to list
> "Support for Java applications on aarch64-linux" among the new features
> in Guix 1.2.0.
>

I'm still running into trouble building icedtea@2 on aarch64 on staging
so I've locally applied the patches on master and I'll test it out
there.


The error message, in case anyone wants to try to work at it
specifically:

/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/bootstrap/jdk1.6.0/bin/java -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -Xmx512m -Xms512m -XX:PermSize=32m -XX:MaxPermSize=160m -Xbootclasspath/p:/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build-boot/langtools/dist/bootstrap/lib/javac.jar -jar /tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build-boot/langtools/dist/bootstrap/lib/javac.jar -g -Xlint:-path -source 6 -target 6 -encoding ascii -Xbootclasspath:/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build-boot/classes -sourcepath /tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/generated.build:../../../src/solaris/classes:../../../src/share/classes -d /tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build-boot/classes @/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk.build-boot/tmp/java/java.lang/java/.classes.list.filtered
../../../src/share/classes/java/lang/invoke/MethodHandle.java:463: error: MethodHandle API building requires -target 7 runtimes or better; current is -target 1.6
public final native @PolymorphicSignature Object invokeExact(Object... args) throws Throwable;
^
../../../src/share/classes/java/lang/invoke/MethodHandle.java:498: error: MethodHandle API building requires -target 7 runtimes or better; current is -target 1.6
public final native @PolymorphicSignature Object invoke(Object... args) throws Throwable;
^
../../../src/share/classes/java/lang/invoke/MethodHandle.java:515: error: MethodHandle API building requires -target 7 runtimes or better; current is -target 1.6
/*non-public*/ final native @PolymorphicSignature Object invokeBasic(Object... args) throws Throwable;
^
../../../src/share/classes/java/lang/invoke/MethodHandle.java:517: error: MethodHandle API building requires -target 7 runtimes or better; current is -target 1.6
/*non-public*/ static native @PolymorphicSignature Object linkToVirtual(Object... args) throws Throwable;
^
../../../src/share/classes/java/lang/invoke/MethodHandle.java:524: error: MethodHandle API building requires -target 7 runtimes or better; current is -target 1.6
/*non-public*/ static native @PolymorphicSignature Object linkToStatic(Object... args) throws Throwable;
^
../../../src/share/classes/java/lang/invoke/MethodHandle.java:531: error: MethodHandle API building requires -target 7 runtimes or better; current is -target 1.6
/*non-public*/ static native @PolymorphicSignature Object linkToSpecial(Object... args) throws Throwable;
^
../../../src/share/classes/java/lang/invoke/MethodHandle.java:538: error: MethodHandle API building requires -target 7 runtimes or better; current is -target 1.6
/*non-public*/ static native @PolymorphicSignature Object linkToInterface(Object... args) throws Throwable;
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
7 errors
make[5]: *** [/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk-boot/jdk/make/common/Rules.gmk:254: .compile.classlist] Error 1
make[5]: Leaving directory '/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk-boot/jdk/make/java/java'
make[4]: *** [Makefile:63: all] Error 1
make[4]: Leaving directory '/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk-boot/jdk/make/java'
make[3]: *** [Makefile:253: all] Error 1
make[3]: Leaving directory '/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk-boot/jdk/make'
make[2]: *** [make/jdk-rules.gmk:93: jdk-build] Error 2
make[2]: Leaving directory '/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk-boot'
make[1]: *** [Makefile:251: build_product_image] Error 2
make[1]: Leaving directory '/tmp/guix-build-icedtea-2.6.13.drv-0/icedtea-2.6.13/openjdk-boot'
make: *** [Makefile:2741: stamps/icedtea-boot.stamp] Error 2
command "make" "-j" "2" failed with status 2
builder for `/gnu/store/n9p75jv705bdf0983xrbw5142fw1fp7z-icedtea-2.6.13.drv' failed with exit code 1
@ build-failed /gnu/store/n9p75jv705bdf0983xrbw5142fw1fp7z-icedtea-2.6.13.drv - 1 builder for `/gnu/store/n9p75jv705bdf0983xrbw5142fw1fp7z-icedtea-2.6.13.drv' failed with exit code 1
derivation '/gnu/store/n9p75jv705bdf0983xrbw5142fw1fp7z-icedtea-2.6.13.drv' offloaded to 'pine64' failed: build of `/gnu/store/n9p75jv705bdf0983xrbw5142fw1fp7z-icedtea-2.6.13.drv' failed
build of /gnu/store/n9p75jv705bdf0983xrbw5142fw1fp7z-icedtea-2.6.13.drv failed



--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl+f1z0ACgkQQarn3Mo9
g1GYVg//Q1h7czxijQuS4B5U0CAexl1UM69Y18IK7ErUwoTAwZXdk2w5iA2SqUiE
uCv9tbnjVpdVx5nJm4F0+2uxvSAQVxEGv/7FbGnmkq2YfUtF696pP9ciIG7LPT6W
pxt8MXYdyJn1QvUdhffZW5/rbYyTaDZx9f4Tn7eRPKsWDGQ/AN3SUXO4K2kvsXTs
vzO2W6nc0Pl8hXYBAabvIB1oBxwSdbxJ/nr1Upk2tlfIoEY8kavYxOySqEjGusGI
lHMLr74lS1kIE0j3ogHuTaM20IQgwOk+WOf8rSFD+9Etit7BDjhmCFn7KzsFaaU1
3THOgQaNL3dFtcq37YzpV13ck128z68yXCEB1aeLS4enQ3lVRyfcYdvoQ+VCklq9
o5fqpzsi2ADO8uEdZXxYL2Lm4yT8OEOt3iZdIvCtKrySiQlMqojBRNyEn/18DvIt
2rdqst+awk5O6gCCcbD1E6gxVVXVi1bFzsYJr0ajoy2CpvZzzfJGQYgF9UUpLTID
dxbTG7Dyy+qKVBzZvyjTdWO6u+CgvbXIOmb/irXp1NjgTcHRQhO9eGSHrrZ/NPmq
NlsWNvX0JsJ+H+u4BxS2OGICu96FVGnyaZqrSyBE1iNTdEfqMKSnp1+bey91AiBa
nx8YTwyyblCDx08oRzdXhVNyENzHbWHMbf5zICUJaQRQrh6woUA=
=fEsc
-----END PGP SIGNATURE-----


S
S
Simon South wrote on 2 Nov 2020 13:35
(name . Efraim Flashner)(address . efraim@flashner.co.il)
87ft5sx7g4.fsf@simonsouth.net
Efraim Flashner <efraim@flashner.co.il> writes:
Toggle quote (4 lines)
> I'm still running into trouble building icedtea@2 on aarch64 on staging
> so I've locally applied the patches on master and I'll test it out
> there.

I'll look into this today as well.

I certainly did not see these build errors earlier so I wonder what
could have changed.

--
Simon South
simon@simonsouth.net
S
S
Simon South wrote on 3 Nov 2020 13:59
(name . Efraim Flashner)(address . efraim@flashner.co.il)(address . 41871@debbugs.gnu.org)
87o8keppex.fsf@simonsouth.net
Efraim Flashner <efraim@flashner.co.il> writes:
Toggle quote (3 lines)
> I'm still running into trouble building icedtea@2 on aarch64 on
> staging...

This completed successfully overnight on my ROCK64. Efraim, would you be
willing to share with me (off-list) your log file from the failed build
so I can try to find what's different?

My build was from the staging branch (commit 353bdae32f72) with my seven
commits added.

--
Simon South
simon@simonsouth.net
E
E
Efraim Flashner wrote on 3 Nov 2020 14:24
(name . Simon South)(address . simon@simonsouth.net)(address . 41871@debbugs.gnu.org)
20201103132430.GA9755@E5400
On Tue, Nov 03, 2020 at 07:59:02AM -0500, Simon South wrote:
Toggle quote (12 lines)
> Efraim Flashner <efraim@flashner.co.il> writes:
> > I'm still running into trouble building icedtea@2 on aarch64 on
> > staging...
>
> This completed successfully overnight on my ROCK64. Efraim, would you be
> willing to share with me (off-list) your log file from the failed build
> so I can try to find what's different?
>
> My build was from the staging branch (commit 353bdae32f72) with my seven
> commits added.
>

It turns out my log file was truncated during the unpack phase (I
probably started and canceled the build) so I'm rebuilding it. I've also
gone and cloned guix on my odroid-c2 to see if it works there on
staging. It's possible that my pine64 is acting up.

--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl+hWg4ACgkQQarn3Mo9
g1EOkBAAhbjHu6oOUx1m1xouLn28crMkSNYXoiP4F6EnGy4579j59GNIQLWxq/g1
x/x1tadEkhorz9SZpqO0r2V01jK875ZVTh3O6lwXMTuSYaDMkYC4M9YU0fqVU6pi
LMeW0fOSTDVLN3U7CyXQkMAl2rVI8wVklD8oX0i+WGE6Ka8XfRbZjuzzoGHGcqTD
lJ3DYFQn0G3nOxwvII9XOyU399bjgQGsyWBohmKAnuu/pNm4aA8NamHb1OvuXqs9
GZObWrIS0ZJhghY6yg21aRIDYRo5se59A+ZCgi1puvwTi8mozIXQVdWE23rr+JAe
PWuntUNbMeTL9osMSvtqclI7mTTXIhBzQTAZ5zVgebt8Hiod6KXdCeUWcWmCApjo
mTPAhdZZiHsuXWtmwCRtc4EewkfnjYLwUn2aCXSB8mArLJw/kLtjMfy8tA8PYREt
xuFBh60Fe/uxJ8fcpwSf1dmBhRVFUvYd7JrDLXHjKA8/vLNFQQR43JibmiWZhlgF
Dx86eXIgekz6TAVjLQWUZapXaoX1uY7liZGipOLHl+GfKVLq2gG3Mom9JpDNZBNo
eRO0N7o1Evwh6djxi+Oads4k4ZZppVESC0ql0d8yq0XJ2nw3Frc8TDlvQBJ2/zWt
XLNCgrSLVsF7LtcYno27DQJPcR0PhOIiCIDr85i5dyl11XLGh7U=
=zDaI
-----END PGP SIGNATURE-----


S
S
Simon South wrote on 3 Nov 2020 14:41
(name . Efraim Flashner)(address . efraim@flashner.co.il)(address . 41871@debbugs.gnu.org)
87h7q6pnge.fsf@simonsouth.net
Efraim Flashner <efraim@flashner.co.il> writes:
Toggle quote (2 lines)
> It's possible that my pine64 is acting up.

I meant to mention in my original email: My build was using a derivation
with a hash prefix different from yours, and my build log doesn't show
"MethodHandle.java" being built at all. So I suspect there may be
something different in your machine's environment.

--
Simon South
simon@simonsouth.net
E
E
Efraim Flashner wrote on 4 Nov 2020 11:58
(name . Simon South)(address . simon@simonsouth.net)(address . 41871-done@debbugs.gnu.org)
20201104105805.GA1203@E5400
On Tue, Nov 03, 2020 at 08:41:21AM -0500, Simon South wrote:
Toggle quote (9 lines)
> Efraim Flashner <efraim@flashner.co.il> writes:
> > It's possible that my pine64 is acting up.
>
> I meant to mention in my original email: My build was using a derivation
> with a hash prefix different from yours, and my build log doesn't show
> "MethodHandle.java" being built at all. So I suspect there may be
> something different in your machine's environment.
>

Not sure what it is about my pine64, could be that I'm currently running
it without swap. In any event, all three versions of icedtea built just
fine on my odroid-c2 so I'm going to go ahead and push the commits to
staging.

I built icedtea@3 a second time, under 200 minutes with guix-daemon
limited to 2 cores.

--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl+iiT0ACgkQQarn3Mo9
g1GHNQ//eDk8mu/fSSmpqSUPXEHvfZ3l8srPEfXEPpnygmXyaJYc3RiAQLGPrfNQ
OaPeVCLdsBPOJlp6JtAPq0OJyVLTipwwG8Fz6U75wUMp6yT4drCmKVTSh6DlEywb
M0FT9dzSWnl9YwaCn2JzrciSxQwMJS5c88rnvQ04mTJG4U6llVTEftnsn2qGg1gr
cpwOCan+6DVhwKb7aky0uk6g9XUXeLDB7cLeXUAPfk8BZAA0JcMMmPxTWXcXiyGc
wm8QrW6CPJ8Axk+Ko/TFgDGzAeYW1ntyvztGjNTtsXPSRA9O2QUKnZgxeKjiTlQv
0Xcn1QI9EcbSfYY9e3i2O5fKC8/RX6Ua/nB+yPrdfAHucfYxQ2eGo+sGcTy08oJS
+YeOQg+hrcdkU9yTfk7FATjy8zDRa1JEAAoj3ygKWSeIv85YRlDLRvbEP3O7OsLW
G21RgkNB8amzRL7Yq9FSBbMRnmQ9Mx0dafecfTjQYUDQyMuxpWl3DL+ztciRwGE4
KC65FQtbwSGo0AXoP6SKf8W9Blec0aZBqQ6uWC8g1H2UpMdwUsSUCo58RjL3K857
6RP6S627azSgzX1uw/FT9HXnJJAizWeFXBIv35maVwBwEvwKZIco1xVLb+u6LDWx
yHJz/VdpP3R3CtBeln1nrga3VmghOfhbr+DG5rRI7Yc+q+z/MnY=
=2kZQ
-----END PGP SIGNATURE-----


Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 41871@debbugs.gnu.org