[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#816077: ruby2.3: FTBFS on m68k - Segmentation fault at 0x5f583332



Control: tags -1 +patch
Control: forwarded -1 https://bugs.ruby-lang.org/issues/12118

Hi!

Andreas Schwab just provided an updated patch which actually fixes the
problem, I was now able to build ruby2.3 successfully on m68k. Attaching
the patch.

Upstream has also implemented some changes to address the issue [1] but
I haven't tested the upstream changes yet.

Adrian

> [1] https://bugs.ruby-lang.org/issues/12118

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
Index: ruby-2.3.0/localeinit.c
===================================================================
--- ruby-2.3.0.orig/localeinit.c
+++ ruby-2.3.0/localeinit.c
@@ -89,7 +89,7 @@ enc_find_index(const char *name)
 }
 
 int
-rb_locale_charmap_index(VALUE klass)
+rb_locale_charmap_index(void)
 {
     return (int)locale_charmap(enc_find_index);
 }
Index: ruby-2.3.0/thread_pthread.c
===================================================================
--- ruby-2.3.0.orig/thread_pthread.c
+++ ruby-2.3.0/thread_pthread.c
@@ -691,16 +691,15 @@ reserve_stack(volatile char *limit, size
 	limit += size;
 	if (limit > end) {
 	    size = limit - end;
-	    limit = alloca(size);
+	    limit = alloca(stack_check_margin+size);
 	    limit[stack_check_margin+size-1] = 0;
 	}
     }
     else {
 	limit -= size;
 	if (buf > limit) {
-	    limit = alloca(buf - limit);
+	    limit = alloca(buf - limit + stack_check_margin);
 	    limit[0] = 0; /* ensure alloca is called */
-	    limit -= stack_check_margin;
 	}
     }
 }


Reply to: