unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Simon South <simon@simonsouth.net>
To: 41748@debbugs.gnu.org
Subject: [bug#41748] [PATCH 0/1] Fix JamVM to work with current gcc and glibc
Date: Wed, 10 Jun 2020 11:03:39 -0400	[thread overview]
Message-ID: <87a71botdg.fsf@simonsouth.net> (raw)
In-Reply-To: <20200607151709.21821-1-simon@simonsouth.net> (Simon South's message of "Sun, 7 Jun 2020 11:17:09 -0400")

[-- Attachment #1: Type: text/plain, Size: 237 bytes --]

Attached is an updated version of this patch that

- Adds a brief description to the patch it contains, indicating why it
  is necessary; and

- Updates gnu/local.mk, as is apparently now required.

-- 
Simon South
simon@simonsouth.net


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-jamvm-Fix-to-work-with-current-gcc-and-glibc.patch --]
[-- Type: text/x-patch, Size: 3741 bytes --]

From 3dbc081418737b0901982f89b8eb260b6c8bd3f0 Mon Sep 17 00:00:00 2001
From: Simon South <simon@simonsouth.net>
Date: Sat, 6 Jun 2020 19:53:39 -0400
Subject: [PATCH] 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.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         |  7 ++---
 .../jamvm-2.0.0-disable-branch-patching.patch | 31 +++++++++++++++++++
 3 files changed, 34 insertions(+), 5 deletions(-)
 create mode 100644 gnu/packages/patches/jamvm-2.0.0-disable-branch-patching.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 76d6b5deba..7d65fbb605 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1107,6 +1107,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/irrlicht-use-system-libs.patch		\
   %D%/packages/patches/isl-0.11.1-aarch64-support.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/java-apache-ivy-port-to-latest-bouncycastle.patch	\
   %D%/packages/patches/java-commons-collections-fix-java8.patch \
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 43f0f37b91..9a6f6fe0df 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -254,11 +254,6 @@ language.")
        ("libffi" ,libffi)
        ("zip" ,zip)
        ("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/")
     (synopsis "Small Java Virtual Machine")
     (description "JamVM is a Java Virtual Machine conforming to the JVM
@@ -708,6 +703,8 @@ machine.")))
               (sha256
                (base32
                 "1nl0zxz8y5x8gwsrm7n32bry4dx8x70p8z3s9jbdvs8avyb8whkn"))
+              (patches
+               (search-patches "jamvm-2.0.0-disable-branch-patching.patch"))
               (snippet
                '(begin
                   ;; Remove precompiled software.
diff --git a/gnu/packages/patches/jamvm-2.0.0-disable-branch-patching.patch b/gnu/packages/patches/jamvm-2.0.0-disable-branch-patching.patch
new file mode 100644
index 0000000000..1352ed7803
--- /dev/null
+++ b/gnu/packages/patches/jamvm-2.0.0-disable-branch-patching.patch
@@ -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
+
-- 
2.26.2


  parent reply	other threads:[~2020-06-10 15:29 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-07 15:17 [bug#41748] [PATCH 0/1] Fix JamVM to work with current gcc and glibc Simon South
2020-06-07 15:18 ` [bug#41748] [PATCH 1/1] gnu: jamvm: Fix " Simon South
2020-06-10 15:03 ` Simon South [this message]
2020-06-22 20:37 ` bug#41748: [PATCH 0/1] Fix JamVM " Marius Bakke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a71botdg.fsf@simonsouth.net \
    --to=simon@simonsouth.net \
    --cc=41748@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).