From e540547413a99967ac250f2dfd6550af82e78973 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 16 Oct 2025 19:00:06 +0900 Subject: [PATCH] mruby-task: use hal-win-task for mingw builds mingw provides posix compatibility for file i/o but not for signal handling. hal-posix-task relies on SIGALRM, setitimer(), and sigprocmask() which are not available on windows even through mingw. changed hal selection for mruby-task to use hal-win-task for mingw, while mruby-dir, mruby-io, and mruby-socket correctly use posix hals for mingw since those features are supported. Co-authored-by: Claude --- mrbgems/mruby-task/mrbgem.rake | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mrbgems/mruby-task/mrbgem.rake b/mrbgems/mruby-task/mrbgem.rake index e14a8c9d6..7f3adc66f 100644 --- a/mrbgems/mruby-task/mrbgem.rake +++ b/mrbgems/mruby-task/mrbgem.rake @@ -13,9 +13,12 @@ MRuby::Gem::Specification.new('mruby-task') do |spec| suggested_hal = if spec.build.primary_toolchain == 'visualcpp' # Visual C++ on Windows - use native Windows HAL 'hal-win-task' - elsif RUBY_PLATFORM =~ /linux|darwin|bsd|mingw/ || - (spec.build.kind_of?(MRuby::CrossBuild) && spec.build.host_target =~ /mingw/) || - spec.cc.command.to_s =~ /mingw/ + elsif (spec.build.kind_of?(MRuby::CrossBuild) && spec.build.host_target =~ /mingw/) || + spec.cc.command.to_s =~ /mingw/ || + RUBY_PLATFORM =~ /mingw/ + # MinGW provides POSIX I/O but NOT POSIX signals - use Windows HAL + 'hal-win-task' + elsif RUBY_PLATFORM =~ /linux|darwin|bsd/ 'hal-posix-task' elsif spec.for_windows? 'hal-win-task'