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)


Reply via email to