Subject: [bug#41648] [PATCH 0/2] JamVM: Add aarch64-linux support

From: Simon South <[email-masked]>
Date: Mon, 1 Jun 2020 13:12:11 -0400

These patches add aarch64-linux support to the two versions of JamVM, a
compact Java virtual machine, used during Guix's Java-bootstrap process (see
the comment near the top of gnu/packages/java.scm).

With them applied the process gets as far as starting to build the first
IcedTea package (version 1.13.13), though this eventually fails with an error
from gcc while compiling the Hotspot JVM (unrelated to my changes as far as I
can tell). I'm still working on this issue.

Note I have found it unnecessary to use older versions of gcc and glibc when
building JamVM 1.5.1 on AArch64; the CPU's instruction cache is flushed
explicitly on this platform so it shouldn't be possible for the "invalid
instruction" situation mentioned in a comment to develop, and I haven't seen
it myself.

The "opcode guard" patch is necessary for floating-point operations to work
correctly when JamVM is built with stack-caching enabled, as it is by default
on AArch64 and elsewhere.

Finally, I've renamed the existing "jamvm-arm.patch" file to
"jamvm-1.5.1-arm.patch" for clarity as there are now separate patchsets for
each JamVM release.

--
Simon South
[email-masked]

Simon South (2):
  gnu: jamvm-1-bootstrap: Add aarch64-linux support.
  gnu: jamvm: Add aarch64-linux support.

 gnu/packages/java.scm                         |  41 +-
 .../patches/jamvm-1.5.1-aarch64-support.patch | 572 ++++++++++++++++
 ...{jamvm-arm.patch => jamvm-1.5.1-arm.patch} |   0
 .../patches/jamvm-2.0.0-aarch64-support.patch | 645 ++++++++++++++++++
 .../patches/jamvm-2.0.0-opcode-guard.patch    |  35 +
 5 files changed, 1283 insertions(+), 10 deletions(-)
 create mode 100644 gnu/packages/patches/jamvm-1.5.1-aarch64-support.patch
 rename gnu/packages/patches/{jamvm-arm.patch => jamvm-1.5.1-arm.patch} (100%)
 create mode 100644 gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch
 create mode 100644 gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch

-- 
2.26.2