Issue #8358 has been updated by Hiroshi Shirosaki.


I found SSE2 is not enabled on mingw because of target='i386-pc-mingw32'.
Here is a patch.


~~~patch
diff --git a/configure.in b/configure.in
index 17ed3ed..cc684b5 100644
--- a/configure.in
+++ b/configure.in
@@ -860,7 +860,7 @@ if test "$GCC" = yes; then
        [*-darwin*], [
            # doesn't seem necessary on Mac OS X
        ],
-       [[i[4-6]86*]], [
+       [[i[4-6]86*|i386*mingw*]], [
            RUBY_TRY_CFLAGS(-msse2 -mfpmath=sse, [
                RUBY_APPEND_OPTION(XCFLAGS, -msse2 -mfpmath=sse)
            ])

~~~

----------------------------------------
Bug #8358: TestSprintf#test_float test failure
https://bugs.ruby-lang.org/issues/8358#change-46256

* Author: Heesob Park
* Status: Feedback
* Priority: Normal
* Assignee: Nobuyoshi Nakada
* Category: build
* Target version: current: 2.2.0
* ruby -v: ruby 2.1.0dev (2013-05-01) [i386-mingw32]
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN
----------------------------------------
I noticed TestSprintf#test_float
http://ci.rubyinstaller.org/job/ruby-trunk-x86-test-all/1287/console
  1) Failure:
TestSprintf#test_float [C:/Users/Worker/Jenkins/workspace/ruby-trunk-x86-build/test/ruby/test_sprintf.rb:193]:
[ruby-dev:42551].
<"0x1p+2"> expected but was
<"0x1p+1">.

This failure is due to r40404.

And Actually, this issue is almost same to bug #8299.
ruby_hdtoa function requires 53-bit precision 
but mingw32 compiler is 64-bit precision.

There are 2 possible workarounds.

1. adding  -msse2 -mfpmath=sse flag when compiling.
2. adding  _control87(_PC_53, _MCW_PC) when running.


---Files--------------------------------
0001-Properly-detect-platform-for-SSE2-instructions.patch (754 Bytes)


-- 
https://bugs.ruby-lang.org/