[ruby-core:96083] [Ruby master Bug#16265] Test (spec) failure using current MSYS2 tools, related to -fstack-protector and possibly D_FORTIFY_SOURCE=2

[email protected]
Newsgroups gmane.comp.lang.ruby.core
Message-ID <redmine.journal-82932.20191203150919.d169e7f714adfa41@ruby-lang.org>
Issue #16265 has been updated by MSP-Greg (Greg L).


PR https://github.com/ruby/ruby/pull/2718 shows this issue, and also properly updates MSYS/MinGW gcc.

----------------------------------------
Bug #16265: Test (spec) failure using current MSYS2 tools, related to -fstack-protector and possibly D_FORTIFY_SOURCE=2
https://bugs.ruby-lang.org/issues/16265#change-82932

* Author: MSP-Greg (Greg L)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.7.0dev (2019-10-19T08:19:27Z master 1d435bd51a) [x64-mingw32]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
GH PR https://github.com/ruby/ruby/pull/2573 was a work-around that forced using some non-current MSYS2 packages libraries for building.  These libraries are only available on Appveyor because their images are out-of-date, a new MSYS2 install would not have them.

Using current MSYS2 libraries requires adding '-fstack-protector' to LDFLAGS.  I also experimented with adding 'D_FORTIFY_SOURCE=2' to CFLAGS.

Ruby build/compiles with those flags added.  test-all passes.  But spec tests always lock up when running:
```
C-API Thread function rb_thread_call_without_gvl
- runs a C function with the global lock unlocked
- runs a C function with the global lock unlocked amd unlocks IO with the generic RUBY_UBF_IO
```

The tests are in spec/ruby/optional/capi/thread_spec.rb, as shown:

https://github.com/ruby/ruby/blob/1d435bd51aeca75f6e437bc92de2271a716a1ced/spec/ruby/optional/capi/thread_spec.rb#L124-L141

and the freeze occurs on line 137.

I've run this once in ruby-loco, twice in my ruby fork, and several times locally.  In all runs, test-all passed, and spec stopped at the test above.  This uses gcc 9.2.0, and the problem would occur with anyone doing a 'fresh' install of MSYS2.

Not being a c type, this is way beyond what I can fix.  Happy to try patches, etc.  Thanks, Greg




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.