aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/jamvm-2.0.0-disable-branch-patching.patch
diff options
context:
space:
mode:
authorJakub Kądziołka <kuba@kadziolka.net>2020-07-23 21:43:06 +0200
committerJakub Kądziołka <kuba@kadziolka.net>2020-07-23 21:43:06 +0200
commitd726b954baaeff876ce9728e00920fa45f529f9a (patch)
tree4b767b7586a1082dd2691bc33c3e45ace044e6e5 /gnu/packages/patches/jamvm-2.0.0-disable-branch-patching.patch
parent9a74a7db8626bc139307d115f5cec2648f5273ad (diff)
parente165a2492d73d37c8b95d6970d453b9d88911ee6 (diff)
downloadguix-d726b954baaeff876ce9728e00920fa45f529f9a.tar.gz
guix-d726b954baaeff876ce9728e00920fa45f529f9a.zip
Merge branch 'master' into core-updates
Conflicts: gnu/packages/ruby.scm
Diffstat (limited to 'gnu/packages/patches/jamvm-2.0.0-disable-branch-patching.patch')
-rw-r--r--gnu/packages/patches/jamvm-2.0.0-disable-branch-patching.patch31
1 files changed, 31 insertions, 0 deletions
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
+