Unbreak ruby 1.9+ on sparc64 by disabling the peephole optimizer, which
was the cause of the previous occassional segfaults. Thanks to landry@ for access to a sparc64 box OK landry@, sthen@, naddy@
This commit is contained in:
parent
f345f882ed
commit
3c4d5c27f3
@ -1,6 +1,5 @@
|
||||
# $OpenBSD: Makefile,v 1.42 2014/01/06 02:25:33 jeremy Exp $
|
||||
# $OpenBSD: Makefile,v 1.43 2014/02/12 22:41:43 jeremy Exp $
|
||||
|
||||
BROKEN-sparc64 = doesnt reliably build, and depending ports randomly fail to build
|
||||
BROKEN-alpha = miniruby abort trap when generating rdoc
|
||||
|
||||
COMMENT-main = object oriented script language with threads
|
||||
|
16
lang/ruby/1.9/patches/patch-compile_c
Normal file
16
lang/ruby/1.9/patches/patch-compile_c
Normal file
@ -0,0 +1,16 @@
|
||||
$OpenBSD: patch-compile_c,v 1.1 2014/02/12 22:41:43 jeremy Exp $
|
||||
|
||||
Disable peephole optimizer on sparc64, since it occasionally segfaults.
|
||||
|
||||
--- compile.c.orig Fri Jan 11 09:13:17 2013
|
||||
+++ compile.c Thu Jan 9 22:31:36 2014
|
||||
@@ -1706,6 +1706,9 @@ static int
|
||||
iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcallopt)
|
||||
{
|
||||
INSN *iobj = (INSN *)list;
|
||||
+#ifdef __sparc64__
|
||||
+ return COMPILE_OK;
|
||||
+#endif
|
||||
again:
|
||||
if (iobj->insn_id == BIN(jump)) {
|
||||
INSN *niobj, *diobj, *piobj;
|
@ -1,6 +1,5 @@
|
||||
# $OpenBSD: Makefile,v 1.9 2013/11/25 14:16:23 sthen Exp $
|
||||
# $OpenBSD: Makefile,v 1.10 2014/02/12 22:41:43 jeremy Exp $
|
||||
|
||||
BROKEN-sparc64 = segfaults during build
|
||||
BROKEN-hppa = miniruby abort trap when generating rdoc
|
||||
BROKEN-alpha = miniruby abort trap when generating rdoc
|
||||
|
||||
|
16
lang/ruby/2.0/patches/patch-compile_c
Normal file
16
lang/ruby/2.0/patches/patch-compile_c
Normal file
@ -0,0 +1,16 @@
|
||||
$OpenBSD: patch-compile_c,v 1.1 2014/02/12 22:41:43 jeremy Exp $
|
||||
|
||||
Disable peephole optimizer on sparc64, since it occasionally segfaults.
|
||||
|
||||
--- compile.c.orig Fri Jan 11 09:13:17 2013
|
||||
+++ compile.c Thu Jan 9 22:31:36 2014
|
||||
@@ -1706,6 +1706,9 @@ static int
|
||||
iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcallopt)
|
||||
{
|
||||
INSN *iobj = (INSN *)list;
|
||||
+#ifdef __sparc64__
|
||||
+ return COMPILE_OK;
|
||||
+#endif
|
||||
again:
|
||||
if (iobj->insn_id == BIN(jump)) {
|
||||
INSN *niobj, *diobj, *piobj;
|
@ -1,6 +1,5 @@
|
||||
# $OpenBSD: Makefile,v 1.3 2014/01/11 22:29:31 jeremy Exp $
|
||||
# $OpenBSD: Makefile,v 1.4 2014/02/12 22:41:43 jeremy Exp $
|
||||
|
||||
BROKEN-sparc64 = segfaults during build
|
||||
BROKEN-hppa = miniruby abort trap when generating rdoc
|
||||
BROKEN-alpha = miniruby abort trap when generating rdoc
|
||||
|
||||
|
16
lang/ruby/2.1/patches/patch-compile_c
Normal file
16
lang/ruby/2.1/patches/patch-compile_c
Normal file
@ -0,0 +1,16 @@
|
||||
$OpenBSD: patch-compile_c,v 1.1 2014/02/12 22:41:43 jeremy Exp $
|
||||
|
||||
Disable peephole optimizer on sparc64, since it occasionally segfaults.
|
||||
|
||||
--- compile.c.orig Fri Jan 11 09:13:17 2013
|
||||
+++ compile.c Thu Jan 9 22:31:36 2014
|
||||
@@ -1706,6 +1706,9 @@ static int
|
||||
iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcallopt)
|
||||
{
|
||||
INSN *iobj = (INSN *)list;
|
||||
+#ifdef __sparc64__
|
||||
+ return COMPILE_OK;
|
||||
+#endif
|
||||
again:
|
||||
if (iobj->insn_id == BIN(jump)) {
|
||||
INSN *niobj, *diobj, *piobj;
|
Loading…
Reference in New Issue
Block a user