Author: stsp
Date: Thu Mar 12 16:22:29 2020
New Revision: 1875129
URL: http://svn.apache.org/viewvc?rev=1875129&view=rev
Log:
Follow up to r1875122: Actually fix (some of?) the crashes in Ruby.
* tools/dev/unix-build/Makefile.svn: Add more fixes I came up with while
debugging Ruby crashes. Patches still revelant to current versions of
Ruby (we're still on 2.4) have been submittes upstream.
Also, re-create the ruby patch properly instead of appending to an
existing patch file if already present.
Modified:
subversion/trunk/tools/dev/unix-build/Makefile.svn
Modified: subversion/trunk/tools/dev/unix-build/Makefile.svn
URL:
http://svn.apache.org/viewvc/subversion/trunk/tools/dev/unix-build/Makefile.svn?rev=1875129&r1=1875128&r2=1875129&view=diff
==============================================================================
--- subversion/trunk/tools/dev/unix-build/Makefile.svn (original)
+++ subversion/trunk/tools/dev/unix-build/Makefile.svn Thu Mar 12 16:22:29 2020
@@ -1208,7 +1208,7 @@ $(RUBY_OBJDIR)/openssl_missing.patch:
$(RUBY_OBJDIR)/sparc64_buserror.patch:
mkdir -p $(dir $@)
- echo >> [email protected] '--- iseq.h.orig Thu Mar 12 10:48:08 2020'
+ echo > [email protected] '--- iseq.h.orig Thu Mar 12 10:48:08 2020'
echo >> [email protected] '+++ iseq.h Thu Mar 12 10:49:00 2020'
echo >> [email protected] '@@ -181,12 +181,11 @@'
echo >> [email protected] ' struct iseq_compile_data_storage *next;'
@@ -1225,6 +1225,52 @@ $(RUBY_OBJDIR)/sparc64_buserror.patch:
echo >> [email protected] ' '
echo >> [email protected] ' struct iseq_compile_data {'
echo >> [email protected] ' /* GC is needed */'
+ echo >> [email protected] '--- compile.c.orig Thu Mar 12 12:58:26 2020'
+ echo >> [email protected] '+++ compile.c Thu Mar 12 16:36:55 2020'
+ echo >> [email protected] '@@ -751,6 +751,16 @@'
+ echo >> [email protected] ' #define STRICT_ALIGNMENT'
+ echo >> [email protected] ' #endif'
+ echo >> [email protected] ' '
+ echo >> [email protected] '+/*'
+ echo >> [email protected] '+ * Some OpenBSD platforms (including sparc64) require
strict alignment.'
+ echo >> [email protected] '+ */'
+ echo >> [email protected] '+#if defined(__OpenBSD__)'
+ echo >> [email protected] '+ #include <sys/endian.h>'
+ echo >> [email protected] '+ #ifdef __STRICT_ALIGNMENT'
+ echo >> [email protected] '+ #define STRICT_ALIGNMENT'
+ echo >> [email protected] '+ #endif'
+ echo >> [email protected] '+#endif'
+ echo >> [email protected] '+'
+ echo >> [email protected] ' #ifdef STRICT_ALIGNMENT'
+ echo >> [email protected] ' #if defined(HAVE_TRUE_LONG_LONG) && SIZEOF_LONG_LONG
> SIZEOF_VALUE'
+ echo >> [email protected] ' #define ALIGNMENT_SIZE SIZEOF_LONG_LONG'
+ echo >> [email protected] '@@ -2094,7 +2104,8 @@'
+ echo >> [email protected] ' unref_destination(iobj, 0);'
+ echo >> [email protected] ' REMOVE_ELEM(&iobj->link);'
+ echo >> [email protected] ' }'
+ echo >> [email protected] '- else if (iobj != diobj && IS_INSN_ID(diobj,
jump) &&'
+ echo >> [email protected] '+ else if (iobj != diobj && IS_INSN(&diobj->link)
&&'
+ echo >> [email protected] '+ IS_INSN_ID(diobj, jump) &&'
+ echo >> [email protected] ' OPERAND_AT(iobj, 0) !=
OPERAND_AT(diobj, 0)) {'
+ echo >> [email protected] ' replace_destination(iobj, diobj);'
+ echo >> [email protected] ' remove_unreachable_chunk(iseq,
iobj->link.next);'
+ echo >> [email protected] '@@ -2136,6 +2147,7 @@'
+ echo >> [email protected] ' * L2:'
+ echo >> [email protected] ' */'
+ echo >> [email protected] ' else if ((piobj = (INSN *)get_prev_insn(iobj))
!= 0 &&'
+ echo >> [email protected] '+ IS_INSN(&piobj->link) &&'
+ echo >> [email protected] ' (IS_INSN_ID(piobj, branchif) ||'
+ echo >> [email protected] ' IS_INSN_ID(piobj, branchunless))) {'
+ echo >> [email protected] ' if (niobj == (INSN
*)get_destination_insn(piobj)) {'
+ echo >> [email protected] '@@ -2176,7 +2188,7 @@'
+ echo >> [email protected] ' }'
+ echo >> [email protected] ' '
+ echo >> [email protected] ' for (;;) {'
+ echo >> [email protected] '- if (IS_INSN_ID(nobj, jump)) {'
+ echo >> [email protected] '+ if (IS_INSN(&nobj->link) &&
IS_INSN_ID(nobj, jump)) {'
+ echo >> [email protected] ' replace_destination(iobj, nobj);'
+ echo >> [email protected] ' }'
+ echo >> [email protected] ' else if (prev_dup && IS_INSN_ID(nobj, dup)
&&'
mv -f [email protected] $@
ifeq ($(UNAME),OpenBSD)