
Issue #20666 has been updated by ErezGeva2@gmail.com (Erez Geva). # Testing with `mkmf` It is worse. I build the extension in `Test` using `mkmf`. Now both Ruby issue a Segmentation fault. Ruby 3.1.6 and Ruby 3.2.5. See: https://github.com/erezgeva/swig/actions/runs/10300870708 Using `-L<Ruby lib dir> -l<Ruby lib> <RbConfig::CONFIG["LIBS"]>` Works with the older Ruby 3.1.6 See: https://github.com/swig/swig/actions/runs/10263993827/job/28397046211?pr=298... In `Test` `checking ruby testcase import_fragments (with run test)` Pass without any error. # Build with `mkmf` I already send the code. To build with `mkmf` The name of the extension is `import_fragments` An `extconf.rb` would look like:
require 'mkmf' create_header create_makefile 'import_fragments'
The source code `import_fragments_wrap.cxx` have the initialising function `void Init_import_fragments(void)`. Just for clarification: I test with MinGW-w64 with ucrt64.
/ucrt64/bin/gcc gcc.exe (Rev1, Built by MSYS2 project) 14.2.0 /ucrt64/bin/g++ g++.exe (Rev1, Built by MSYS2 project) 14.2.0
I install it with MSYS2, with the `mingw-w64-ucrt-x86_64-gcc` package. ---------------------------------------- Bug #20666: Segmentation fault instead of LoadError exception https://bugs.ruby-lang.org/issues/20666#change-109370 * Author: ErezGeva2@gmail.com (Erez Geva) * Status: Open * ruby -v: ruby 3.2.5 (2024-07-26 revision 31d0f1a2e7) [x64-mingw-ucrt] * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- Using ruby -v ruby 3.2.5 (2024-07-26 revision 31d0f1a2e7) [x64-mingw-ucrt] From [GitHub windows 2022](https://github.com/actions/runner-images/blob/main/images/windows/Windows202... ) We run the SWIG test: [import_fragments](https://github.com/swig/swig/blob/master/Examples/test-suite/ruby/import_fra...) The test try to load a broken library, which should rise a `LoadError`. begin require 'import_fragments' rescue LoadError => e # due to missing import_fragments_a exception_file = e.respond_to?(:path) ? e.path : e.to_s.sub(/.* -- /, '') end Instead `LoadError` exception we get `Segmentation fault`: <internal:C:/hostedtoolcache/windows/Ruby/3.2.5/x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:151: [BUG] Segmentation fault ruby 3.2.5 (2024-07-26 revision 31d0f1a2e7) [x64-mingw-ucrt] -- Control frame information ----------------------------------------------- c:0004 p:0018 s:0028 e:000025 RESCUE <internal:C:/hostedtoolcache/windows/Ruby/3.2.5/x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:151 c:0003 p:0275 s:0022 e:000021 METHOD <internal:C:/hostedtoolcache/windows/Ruby/3.2.5/x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:40 c:0002 p:0011 s:0007 E:0004e8 EVAL ./import_fragments_runme.rb:13 [FINISH] c:0001 p:0000 s:0003 E:0006e0 DUMMY [FINISH] ---Files-------------------------------- source.zip (20.2 KB) -- https://bugs.ruby-lang.org/