summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/java.scm12
1 files changed, 12 insertions, 0 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 30a59ec5a3..9445c37b67 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1463,6 +1463,18 @@ new Date();"))
     (substitute-keyword-arguments (package-arguments openjdk11)
       ((#:phases phases)
        #~(modify-phases #$phases
+           #$@(if (target-aarch64?)
+                #~((add-after 'unpack 'patch-for-aarch64
+                    (lambda _
+                      (substitute* "src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp"
+                        ;; This line is duplicated, so remove both occurrences,
+                        ;; then add back one occurrence by substituting a
+                        ;; comment that occurs once.
+                        (("using MacroAssembler::call_VM_leaf_base;") "")
+                        (("Interpreter specific version of call_VM_base")
+                         (string-append "Interpreter specific version of call_VM_base\n"
+                                        "  using MacroAssembler::call_VM_leaf_base;"))))))
+                #~())
            (replace 'fix-java-shebangs
              (lambda _
                ;; 'blocked' was renamed to 'blacklisted' in this version for