[#78633] ruby/spec needs help from CRuby committers — Benoit Daloze <eregontp@...>
Currently, ruby/spec is maintained mostly by individuals and enjoys the
13 messages
2016/12/13
[#78963] Re: ruby/spec needs help from CRuby committers
— Urabe Shyouhei <shyouhei@...>
2017/01/04
I did ask attendees of last developer meeting to join this
[#78642] Re: ruby/spec needs help from CRuby committers
— Eric Wong <normalperson@...>
2016/12/14
Benoit Daloze <eregontp@gmail.com> wrote:
[ruby-core:78533] [Ruby trunk Bug#13014] Adding clang volatile fixes from FreeBSD and NetBSD
From:
dimitry@...
Date:
2016-12-07 22:03:24 UTC
List:
ruby-core #78533
Issue #13014 has been updated by Dimitry Andric. File ruby-trunk-add-setjmp-volatile-2.diff added Ok, I also tested this on x86_64-freebsd12, and there it still got a segfault in `cont_capture()`. This was caused by the `stat` parameter being a pointer to a volatile int, while it should have been a volatile pointer to an int. Here is a second revision of the patch, including that change. I also updated the `cont_capture()` prototype to match. ---------------------------------------- Bug #13014: Adding clang volatile fixes from FreeBSD and NetBSD https://bugs.ruby-lang.org/issues/13014#change-61916 * Author: Dimitry Andric * Status: Open * Priority: Normal * Assignee: * ruby -v: ruby 2.4.0dev (2016-12-08 trunk 57019) [i386-freebsd12.0] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Referring to bug #12893, where segfaults were observed when compiling with recent versions of clang. In particular in cont.c, about which Shugo Maeda noted that he could reproduce this on FreeBSD. These segfaults are most likely caused by missing volatile specifiers on certain variable declarations, in combination with the use of setjmp(). In https://bugs.freebsd.org/206111 (for ruby 2.3), we have applied a number of fixes for this, taken mostly from NetBSD's pkgsrc. These add a few volatile specifiers in critical places. I have also added one additional volatile specifier in cont_capture() in cont.c, and removed the special optnone handling for clang 3.8.0. For me, on FreeBSD 12 with clang 3.9.1, and optimizing at -O3 for -march=haswell, this successfully completes "gmake test-all": Finished tests in 461.890990s, 36.8312 tests/s, 4849.7937 assertions/s. 17012 tests, 2240076 assertions, 0 failures, 0 errors, 40 skips ---Files-------------------------------- ruby-trunk-add-setjmp-volatile-1.diff (4.61 KB) ruby-trunk-add-setjmp-volatile-2.diff (5 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>