Date: Thu, 8 Dec 2016 02:57:06 +0000 (UTC) From: Steve Wills <swills@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r428094 - in head: Mk lang/ruby21/files Message-ID: <201612080257.uB82v61o011357@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: swills Date: Thu Dec 8 02:57:06 2016 New Revision: 428094 URL: https://svnweb.freebsd.org/changeset/ports/428094 Log: lang/ruby21: fix setjmp clobbered variables PR: 206108 Submitted by: dim Added: head/lang/ruby21/files/patch-eval.c (contents, props changed) head/lang/ruby21/files/patch-eval_error.c (contents, props changed) head/lang/ruby21/files/patch-thread.c (contents, props changed) head/lang/ruby21/files/patch-vm_eval.c (contents, props changed) head/lang/ruby21/files/patch-vm_trace.c (contents, props changed) Modified: head/Mk/bsd.ruby.mk Modified: head/Mk/bsd.ruby.mk ============================================================================== --- head/Mk/bsd.ruby.mk Thu Dec 8 02:34:44 2016 (r428093) +++ head/Mk/bsd.ruby.mk Thu Dec 8 02:57:06 2016 (r428094) @@ -155,7 +155,7 @@ RUBY?= ${LOCALBASE}/bin/${RUBY_NAME} # Ruby 2.1 # RUBY_RELVERSION= 2.1.10 -RUBY_PORTREVISION= 0 +RUBY_PORTREVISION= 1 RUBY_PORTEPOCH= 1 RUBY_PATCHLEVEL= 0 RUBY21= "" # PLIST_SUB helpers Added: head/lang/ruby21/files/patch-eval.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/ruby21/files/patch-eval.c Thu Dec 8 02:57:06 2016 (r428094) @@ -0,0 +1,20 @@ +--- eval.c.orig 2015-01-21 17:09:59.000000000 +0100 ++++ eval.c 2016-01-09 22:22:34.009232000 +0100 +@@ -743,7 +743,7 @@ rb_rescue2(VALUE (* b_proc) (ANYARGS), V + { + int state; + rb_thread_t *th = GET_THREAD(); +- rb_control_frame_t *cfp = th->cfp; ++ rb_control_frame_t *volatile cfp = th->cfp; + volatile VALUE result = Qfalse; + volatile VALUE e_info = th->errinfo; + va_list args; +@@ -809,7 +809,7 @@ rb_protect(VALUE (* proc) (VALUE), VALUE + volatile VALUE result = Qnil; + volatile int status; + rb_thread_t *th = GET_THREAD(); +- rb_control_frame_t *cfp = th->cfp; ++ rb_control_frame_t *volatile cfp = th->cfp; + struct rb_vm_protect_tag protect_tag; + rb_jmpbuf_t org_jmpbuf; + Added: head/lang/ruby21/files/patch-eval_error.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/ruby21/files/patch-eval_error.c Thu Dec 8 02:57:06 2016 (r428094) @@ -0,0 +1,15 @@ +--- eval_error.c.orig 2013-06-24 15:03:35.000000000 +0200 ++++ eval_error.c 2016-01-10 01:00:43.200335000 +0100 +@@ -80,9 +80,9 @@ static void + error_print(void) + { + volatile VALUE errat = Qundef; +- rb_thread_t *th = GET_THREAD(); +- VALUE errinfo = th->errinfo; +- int raised_flag = th->raised_flag; ++ rb_thread_t *volatile th = GET_THREAD(); ++ volatile VALUE errinfo = th->errinfo; ++ volatile int raised_flag = th->raised_flag; + volatile VALUE eclass = Qundef, e = Qundef; + const char *volatile einfo; + volatile long elen; Added: head/lang/ruby21/files/patch-thread.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/ruby21/files/patch-thread.c Thu Dec 8 02:57:06 2016 (r428094) @@ -0,0 +1,13 @@ +--- thread.c.orig 2015-03-09 18:40:36.000000000 +0100 ++++ thread.c 2016-01-10 18:50:57.451040000 +0100 +@@ -420,8 +420,8 @@ rb_threadptr_unlock_all_locking_mutexes( + void + rb_thread_terminate_all(void) + { +- rb_thread_t *th = GET_THREAD(); /* main thread */ +- rb_vm_t *vm = th->vm; ++ rb_thread_t *volatile th = GET_THREAD(); /* main thread */ ++ rb_vm_t *volatile vm = th->vm; + + if (vm->main_thread != th) { + rb_bug("rb_thread_terminate_all: called by child thread (%p, %p)", Added: head/lang/ruby21/files/patch-vm_eval.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/ruby21/files/patch-vm_eval.c Thu Dec 8 02:57:06 2016 (r428094) @@ -0,0 +1,31 @@ +--- vm_eval.c.orig 2015-07-03 10:55:40.000000000 +0200 ++++ vm_eval.c 2016-01-10 18:53:23.030473000 +0100 +@@ -1062,7 +1062,7 @@ rb_iterate(VALUE (* it_proc) (VALUE), VA + int state; + volatile VALUE retval = Qnil; + NODE *node = NEW_IFUNC(bl_proc, data2); +- rb_thread_t *th = GET_THREAD(); ++ rb_thread_t *volatile th = GET_THREAD(); + rb_control_frame_t *volatile cfp = th->cfp; + + node->nd_aid = rb_frame_this_func(); +@@ -1190,7 +1190,7 @@ eval_string_with_cref(VALUE self, VALUE + int state; + VALUE result = Qundef; + VALUE envval; +- rb_thread_t *th = GET_THREAD(); ++ rb_thread_t *volatile th = GET_THREAD(); + rb_env_t *env = NULL; + rb_block_t block, *base_block; + volatile int parse_in_eval; +@@ -1843,8 +1843,8 @@ rb_catch_protect(VALUE t, rb_block_call_ + { + int state; + volatile VALUE val = Qnil; /* OK */ +- rb_thread_t *th = GET_THREAD(); +- rb_control_frame_t *saved_cfp = th->cfp; ++ rb_thread_t *volatile th = GET_THREAD(); ++ rb_control_frame_t *volatile saved_cfp = th->cfp; + volatile VALUE tag = t; + + TH_PUSH_TAG(th); Added: head/lang/ruby21/files/patch-vm_trace.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/ruby21/files/patch-vm_trace.c Thu Dec 8 02:57:06 2016 (r428094) @@ -0,0 +1,11 @@ +--- vm_trace.c.orig 2015-11-18 12:26:40.000000000 +0100 ++++ vm_trace.c 2016-01-10 18:54:08.421021000 +0100 +@@ -392,7 +392,7 @@ rb_suppress_tracing(VALUE (*func)(VALUE) + volatile int raised; + volatile int outer_state; + VALUE result = Qnil; +- rb_thread_t *th = GET_THREAD(); ++ rb_thread_t *volatile th = GET_THREAD(); + int state; + const int tracing = th->trace_arg ? 1 : 0; + rb_trace_arg_t dummy_trace_arg;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201612080257.uB82v61o011357>