TestSprintf#test_float still an issue
The fix for #8358 is build time solution. Unfortunately it turns out that this does not work so well for for distributions such as Fedora:
The issues is that the SSE2 support is determined during build time, i.e. if builder supports SSE2, then the instructions are enabled. However, later when the packaged Ruby is executed on platform which does not support SSE2, it may result in issues as described in the above mentioned ticket.
Is there some way, how to resolve this issue in runtime rather than build time?
Updated by vo.x (Vit Ondruch) about 6 years ago
The #8358 was always issue on our builders and reproducible locally using mock . E.g. I typically run the i686 build on my x86_64 OS inside the mock environment for i686.
These are approximately steps you should follow to reproduce:
- Run x86_64 Fedora
- yum install mock
- usermod -a -G mock [User name] && newgrp mock
- mock -r fedora-rawhide-i386 --init
- mock -r fedora-rawhide-i386 --install subversion bison 5.1 you can similarly install whatever else you might find handy in the buildroot
- mock -r fedora-rawhide-i386 shell
- checkout the ruby repository and configure & make & make check
To be honest, I have never tried to reproduce the issue in pure i686 Fedora. Not sure if that might be of any difference.
Updated by luislavena (Luis Lavena) almost 6 years ago
- Assignee set to nobu (Nobuyoshi Nakada)
Now after r47129, mingw-w64 is failing again, so we are back to the beginning.
ruby -v: ruby 2.2.0dev (2014-08-24 trunk 47266) [i386-mingw32] TestSprintf#test_float [C:/Users/Luis/Code/ruby/ruby/test/ruby/test_sprintf.rb:208]: [ruby-dev:42551]. <"0x1p+2"> expected but was <"0x1p+1">.
I'm out of ideas on how to solve this without: force SSE or change the pow/float implementation for MinGW.
Open to suggestions.