Issue #6592 has been updated by vo.x (Vit Ondruch).


No I am not using Fiddle.

Better to say, it is not up to me what I use. The test is written in such way that it is using DL no matter if libffi is present and if Fiddle might be used.

This is the callstack using GitHub ;)

https://github.com/ruby/ruby/blob/trunk/ext/dl/cfunc.c#L340
https://github.com/ruby/ruby/blob/trunk/ext/dl/lib/dl/func.rb#L55
https://github.com/ruby/ruby/blob/trunk/test/dl/test_dl2.rb#L89

----------------------------------------
Bug #6592: test_call_double(DL::TestDL) fails on ARM HardFP
https://bugs.ruby-lang.org/issues/6592#change-27250

Author: vo.x (Vit Ondruch)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 2.0.0dev (2012-06-05 trunk 35922) [armv7hl-linux]


Hi,

I am observing following test suite error on armv7hl Fedora 17 [1] (but it seems that Debian suffers the same issues [3]):

  2) Failure:
test_call_double(DL::TestDL) [/builddir/build/BUILD/ruby-2.0.0-r35922/test/dl/test_dl2.rb:90]:
Expected |0.1 - 2.1638932342073e-311| (0.1) to be < 0.001.

I was digging a bit deeper and I identified issue in this part of code [2]. I tried a bit to unfold the macros and found, that the issue is because of variadic arguments. If the function prototype is declared without them (novar.disasm), the test passes, if they are in use (variadic.disasm), the test fails. The attached files shows the code with partially unfolded marcos and their disassembly. The atof.disasm contains the disassembly of the atof call if it might be of help.

I am not sure if it might be compiler bug (GCC 4.7) or if it should be fixed in Ruby. Any help appreciated


[1] http://arm.koji.fedoraproject.org/koji/getfile?taskID=904523&name=build.log
[2] https://github.com/ruby/ruby/blob/v1_9_3_195/ext/dl/cfunc.c#L464
[3] https://buildd.debian.org/status/fetch.php?pkg=ruby1.9.1&arch=armhf&ver=1.9.3.194-1&stamp=1338887114


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