From: h.shirosaki@... Date: 2014-04-19T11:36:32+00:00 Subject: [ruby-core:62095] [ruby-trunk - Bug #8358] TestSprintf#test_float test failure 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/