Bug #21329
open`date_core.so` is broken with the recent MSYS2 update
Description
From https://github.com/ruby/psych/issues/730 and https://github.com/nobu/rdoc/actions/runs/14969443434/job/42046842539#step:5:35
Error: test_accept_blank_line(RDocMarkupToAnsiTest): LoadError: 127: The specified procedure could not be found. - D:/a/rdoc/rdoc/vendor/bundle/ruby/3.3.0/gems/date-3.4.1/lib/date_core.so
C:/hostedtoolcache/windows/Ruby/3.3.8/x64/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
@MSP-Greg investigate that at https://github.com/ruby/setup-msys2-gcc/pull/26#issuecomment-2874726461.
Updated by deivid (David Rodríguez) 2 days ago
Some debugging happening at https://github.com/ruby/date/pull/125 already! Should this be moved to the date repo, by the way?
Updated by hsbt (Hiroshi SHIBATA) 1 day ago
We need to backport fix if the problem is our side. This ticket is reminder for that.
Updated by ntkme (Natsuki Natsume) about 11 hours ago
· Edited
https://github.com/ruby/setup-msys2-gcc/pull/26#issuecomment-2877229861
The root cause is that the extension is compiled against a newer version of libwinpthread-1.dll
and headers from msys2, but at the runtime ruby always load $rubyPrefix\bin\ruby_builtin_dlls\libwinpthread-1.dll
which is an older version.
I don't think there is much we can do here.
As for ruby/setup-ruby, our plan is to downgrade msys2's libwinpthread-1.dll
for all old rubies that bundle the old version of it, so that the compile time version and runtime version would be compatible.