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)