gnu: jamvm: Fix to work with current gcc and glibc.
* gnu/packages/java.scm (jamvm)[source]: Add patch. (jamvm-1-bootstrap)[native-inputs]: Remove. * gnu/packages/patches/jamvm-2.0.0-disable-branch-patching.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Marius Bakke <marius@gnu.org>master
parent
cf66096d51
commit
a212006048
|
@ -1109,6 +1109,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/irrlicht-use-system-libs.patch \
|
%D%/packages/patches/irrlicht-use-system-libs.patch \
|
||||||
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
|
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
|
||||||
%D%/packages/patches/jacal-fix-texinfo.patch \
|
%D%/packages/patches/jacal-fix-texinfo.patch \
|
||||||
|
%D%/packages/patches/jamvm-2.0.0-disable-branch-patching.patch \
|
||||||
%D%/packages/patches/jamvm-arm.patch \
|
%D%/packages/patches/jamvm-arm.patch \
|
||||||
%D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \
|
%D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \
|
||||||
%D%/packages/patches/java-commons-collections-fix-java8.patch \
|
%D%/packages/patches/java-commons-collections-fix-java8.patch \
|
||||||
|
|
|
@ -54,7 +54,6 @@
|
||||||
#:use-module (gnu packages fontutils)
|
#:use-module (gnu packages fontutils)
|
||||||
#:use-module (gnu packages gawk)
|
#:use-module (gnu packages gawk)
|
||||||
#:use-module (gnu packages gettext)
|
#:use-module (gnu packages gettext)
|
||||||
#:use-module (gnu packages gcc)
|
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
#:use-module (gnu packages ghostscript) ;lcms
|
#:use-module (gnu packages ghostscript) ;lcms
|
||||||
#:use-module (gnu packages gnome)
|
#:use-module (gnu packages gnome)
|
||||||
|
@ -254,11 +253,6 @@ language.")
|
||||||
("libffi" ,libffi)
|
("libffi" ,libffi)
|
||||||
("zip" ,zip)
|
("zip" ,zip)
|
||||||
("zlib" ,zlib)))
|
("zlib" ,zlib)))
|
||||||
;; When built with a recent GCC and glibc the configure step of icedtea-6
|
|
||||||
;; fails with an invalid instruction error.
|
|
||||||
(native-inputs
|
|
||||||
`(("gcc" ,gcc-5)
|
|
||||||
("libc" ,glibc-2.28)))
|
|
||||||
(home-page "http://jamvm.sourceforge.net/")
|
(home-page "http://jamvm.sourceforge.net/")
|
||||||
(synopsis "Small Java Virtual Machine")
|
(synopsis "Small Java Virtual Machine")
|
||||||
(description "JamVM is a Java Virtual Machine conforming to the JVM
|
(description "JamVM is a Java Virtual Machine conforming to the JVM
|
||||||
|
@ -708,6 +702,8 @@ machine.")))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1nl0zxz8y5x8gwsrm7n32bry4dx8x70p8z3s9jbdvs8avyb8whkn"))
|
"1nl0zxz8y5x8gwsrm7n32bry4dx8x70p8z3s9jbdvs8avyb8whkn"))
|
||||||
|
(patches
|
||||||
|
(search-patches "jamvm-2.0.0-disable-branch-patching.patch"))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
;; Remove precompiled software.
|
;; Remove precompiled software.
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
From d80cfc83325f8e95d35ecd9f15b36b96fa9ed3ee Mon Sep 17 00:00:00 2001
|
||||||
|
From: Simon South <simon@simonsouth.net>
|
||||||
|
Date: Sat, 6 Jun 2020 18:56:56 -0400
|
||||||
|
Subject: [PATCH] Disable branch-patching
|
||||||
|
|
||||||
|
This patch disables JamVM's branch-patching optimization, which tends
|
||||||
|
to make JamVM fail with an "Illegal instruction" error on x86_64 (and
|
||||||
|
possibly other architectures that use variable-length instructions)
|
||||||
|
when built using modern versions of gcc and glibc.
|
||||||
|
---
|
||||||
|
src/init.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/init.c b/src/init.c
|
||||||
|
index 32539cf..38ad54b 100644
|
||||||
|
--- a/src/init.c
|
||||||
|
+++ b/src/init.c
|
||||||
|
@@ -72,8 +72,8 @@ void setDefaultInitArgs(InitArgs *args) {
|
||||||
|
#ifdef INLINING
|
||||||
|
args->replication_threshold = 10;
|
||||||
|
args->profile_threshold = 10;
|
||||||
|
- args->branch_patching_dup = TRUE;
|
||||||
|
- args->branch_patching = TRUE;
|
||||||
|
+ args->branch_patching_dup = FALSE;
|
||||||
|
+ args->branch_patching = FALSE;
|
||||||
|
args->print_codestats = FALSE;
|
||||||
|
args->join_blocks = TRUE;
|
||||||
|
args->profiling = TRUE;
|
||||||
|
--
|
||||||
|
2.25.2
|
||||||
|
|
Reference in New Issue