include/ruby/win32.h assumes that STRICT_ANSI isn’t set when it uses _controlfp() in rb_w32_pow(). This isn’t the case if you give, for example, -std=c99 to gcc. If STRICT_ANSI is set, float.h won’t define _controlfp(), leading to compilation issues.
This issue was solved with changeset r41834.
Nikolai, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
win32: for strict ANSI
thread_win32.c (w32_thread_start_func, thread_start_func_1),
(timer_thread_func): use __stdcall instead of _stdcall which is
unavailable in strict ANSI mode. [ruby-core:55312] [Bug #8495]
win32/win32.c (gettimeofday): use __cdecl instead of _cdecl.