From e332b8e26eafa2bf2b3e11f21a1279ef6b81ce6f Mon Sep 17 00:00:00 2001 From: dearblue Date: Sat, 25 Oct 2025 21:04:03 +0900 Subject: [PATCH 1/3] Define `_WIN32_WINNT` first Some toolchains may define different default values. --- mrbgems/hal-win-socket/src/socket_hal.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mrbgems/hal-win-socket/src/socket_hal.c b/mrbgems/hal-win-socket/src/socket_hal.c index cfd467b34..9b28d324a 100644 --- a/mrbgems/hal-win-socket/src/socket_hal.c +++ b/mrbgems/hal-win-socket/src/socket_hal.c @@ -7,16 +7,16 @@ ** Supported platforms: Windows, MinGW */ +#ifndef _WIN32_WINNT +#define _WIN32_WINNT 0x0501 // need Windows XP or later +#endif + #include #include #include #include #include #include "socket_hal.h" - -#ifndef _WIN32_WINNT -#define _WIN32_WINNT 0x0501 -#endif #include #include #include From 80e9105afbc0efc4054a50170e9f86642e475eae Mon Sep 17 00:00:00 2001 From: dearblue Date: Sat, 25 Oct 2025 21:05:39 +0900 Subject: [PATCH 2/3] Explicitly include `errno.h` This is required for `ENOSYS`. --- mrbgems/hal-win-socket/src/socket_hal.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mrbgems/hal-win-socket/src/socket_hal.c b/mrbgems/hal-win-socket/src/socket_hal.c index 9b28d324a..3acda0b5e 100644 --- a/mrbgems/hal-win-socket/src/socket_hal.c +++ b/mrbgems/hal-win-socket/src/socket_hal.c @@ -20,6 +20,7 @@ #include #include #include +#include #include /* From ea215bc19cf30d0e5e1ea9454249c035179427f5 Mon Sep 17 00:00:00 2001 From: dearblue Date: Sat, 25 Oct 2025 21:06:16 +0900 Subject: [PATCH 3/3] Fixed HAL auto-detection order Because MinGW was not recognized as Windows during cross-builds. --- mrbgems/mruby-dir/mrbgem.rake | 4 ++-- mrbgems/mruby-io/mrbgem.rake | 4 ++-- mrbgems/mruby-socket/mrbgem.rake | 4 ++-- mrbgems/mruby-task/mrbgem.rake | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mrbgems/mruby-dir/mrbgem.rake b/mrbgems/mruby-dir/mrbgem.rake index 08985cfc4..b31b7cdcc 100644 --- a/mrbgems/mruby-dir/mrbgem.rake +++ b/mrbgems/mruby-dir/mrbgem.rake @@ -11,10 +11,10 @@ MRuby::Gem::Specification.new('mruby-dir') do |spec| elsif spec.build.primary_toolchain == 'visualcpp' # Visual C++ on Windows - use native Windows HAL 'hal-win-dir' - elsif RUBY_PLATFORM =~ /linux|darwin|bsd/ - 'hal-posix-dir' elsif spec.for_windows? 'hal-win-dir' + elsif RUBY_PLATFORM =~ /linux|darwin|bsd/ + 'hal-posix-dir' else nil end diff --git a/mrbgems/mruby-io/mrbgem.rake b/mrbgems/mruby-io/mrbgem.rake index 74ae70520..6639b6bd0 100644 --- a/mrbgems/mruby-io/mrbgem.rake +++ b/mrbgems/mruby-io/mrbgem.rake @@ -13,10 +13,10 @@ MRuby::Gem::Specification.new('mruby-io') do |spec| suggested_hal = if spec.build.primary_toolchain == 'visualcpp' # Visual C++ on Windows - use native Windows HAL 'hal-win-io' - elsif RUBY_PLATFORM =~ /linux|darwin|bsd/ - 'hal-posix-io' elsif spec.for_windows? 'hal-win-io' + elsif RUBY_PLATFORM =~ /linux|darwin|bsd/ + 'hal-posix-io' else nil end diff --git a/mrbgems/mruby-socket/mrbgem.rake b/mrbgems/mruby-socket/mrbgem.rake index b99643c15..b077fcc8c 100644 --- a/mrbgems/mruby-socket/mrbgem.rake +++ b/mrbgems/mruby-socket/mrbgem.rake @@ -16,10 +16,10 @@ MRuby::Gem::Specification.new('mruby-socket') do |spec| suggested_hal = if spec.build.primary_toolchain == 'visualcpp' # Visual C++ on Windows - use native Windows HAL 'hal-win-socket' - elsif RUBY_PLATFORM =~ /linux|darwin|bsd/ - 'hal-posix-socket' elsif spec.for_windows? 'hal-win-socket' + elsif RUBY_PLATFORM =~ /linux|darwin|bsd/ + 'hal-posix-socket' else nil end diff --git a/mrbgems/mruby-task/mrbgem.rake b/mrbgems/mruby-task/mrbgem.rake index 7f3adc66f..ea5daea57 100644 --- a/mrbgems/mruby-task/mrbgem.rake +++ b/mrbgems/mruby-task/mrbgem.rake @@ -18,10 +18,10 @@ MRuby::Gem::Specification.new('mruby-task') do |spec| 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' + elsif RUBY_PLATFORM =~ /linux|darwin|bsd/ + 'hal-posix-task' else nil end