Author: stsp
Date: Thu Mar 12 10:04:25 2020
New Revision: 1875122

URL: http://svn.apache.org/viewvc?rev=1875122&view=rev
Log:
* tools/dev/unix-build/Makefile.svn: Add patch for Ruby which will hopefully
   fix the bus errors we have been seeing on the svn-bb-openbsd buildbot.
   I haven't yet confirmed that this really fixes the issue but since the
   crash happens sporadically there is only one way to find out.

   I have also found out that OpenBSD's port of Ruby disables the crashing
   code path on sparc64. Which is a bandaid, not a real fix since the problem
   could affect other platforms as well.

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=1875122&r1=1875121&r2=1875122&view=diff
==============================================================================
--- subversion/trunk/tools/dev/unix-build/Makefile.svn (original)
+++ subversion/trunk/tools/dev/unix-build/Makefile.svn Thu Mar 12 10:04:25 2020
@@ -1206,6 +1206,27 @@ $(RUBY_OBJDIR)/openssl_missing.patch:
        echo >> [email protected] ' #if defined(HAVE_AUTHENTICATED_ENCRYPTION) && 
!defined(EVP_CTRL_AEAD_GET_TAG)'
        mv -f [email protected] $@
 
+$(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      Thu Mar 12 10:49:00 2020'
+       echo >> [email protected] '@@ -181,12 +181,11 @@'
+       echo >> [email protected] '     struct iseq_compile_data_storage *next;'
+       echo >> [email protected] '     unsigned int pos;'
+       echo >> [email protected] '     unsigned int size;'
+       echo >> [email protected] '-    char buff[1]; /* flexible array */'
+       echo >> [email protected] '+    char buff[0]; /* flexible array */'
+       echo >> [email protected] ' };'
+       echo >> [email protected] ' '
+       echo >> [email protected] '-/* account for flexible array */'
+       echo >> [email protected] ' #define SIZEOF_ISEQ_COMPILE_DATA_STORAGE \'
+       echo >> [email protected] '-    (sizeof(struct iseq_compile_data_storage) - 1)'
+       echo >> [email protected] '+    (sizeof(struct iseq_compile_data_storage))'
+       echo >> [email protected] ' '
+       echo >> [email protected] ' struct iseq_compile_data {'
+       echo >> [email protected] '     /* GC is needed */'
+       mv -f [email protected] $@
+
 ifeq ($(UNAME),OpenBSD)
 RUBY_SSL_EX_NEW_DATA_PATCH = sed -i -e 
'/^have_func("X509_STORE_set_ex_data")$$/ { p; 
s/^.*$$/\have_func("X509_STORE_get_ex_new_index")/; }'
 else
@@ -1214,13 +1235,14 @@ endif
 
 # retrieve ruby
 #
-$(RUBY_OBJDIR)/.retrieved: $(DISTDIR)/$(RUBY_DIST) 
$(RUBY_OBJDIR)/openssl_missing.patch
+$(RUBY_OBJDIR)/.retrieved: $(DISTDIR)/$(RUBY_DIST) 
$(RUBY_OBJDIR)/openssl_missing.patch $(RUBY_OBJDIR)/sparc64_buserror.patch
        $(call do_check_sha256,$(RUBY_DIST))
        [ -d $(RUBY_OBJDIR) ] || mkdir -p $(RUBY_OBJDIR)
        tar -C $(SRCDIR) -zxf $(DISTDIR)/$(RUBY_DIST)
        -which ghead && sed -i -e "s/head -c/ghead -c/" $(RUBY_SRCDIR)/configure
        $(RUBY_SSL_EX_NEW_DATA_PATCH) $(RUBY_SRCDIR)/ext/openssl/extconf.rb
        cd $(RUBY_SRCDIR) && patch -p0 < $(RUBY_OBJDIR)/openssl_missing.patch
+       cd $(RUBY_SRCDIR) && patch -p0 < $(RUBY_OBJDIR)/sparc64_buserror.patch
        touch $@
 
 ifeq ($(THREADING),yes)


Reply via email to