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

Subject changed from `TestJIT#test_block_handler_with_possible_frame_omitted_inlining` fails on s390x and aarch64 to `TestJIT#test_block_handler_with_possible_frame_omitted_inlining` fails on s390x and armv7hl
File build-x86_64.log added
File build-armv7hl.log added
File build-s390x.log added

So this is my hacked up test case:

~~~
$ git diff
diff --git a/test/ruby/test_jit.rb b/test/ruby/test_jit.rb
index 08494cbbbb..9ace7754d4 100644
--- a/test/ruby/test_jit.rb
+++ b/test/ruby/test_jit.rb
@@ -944,9 +944,15 @@ def assert_compile_once(script, result_inspect:, insns: [])
   end
 
   # Shorthand for normal test cases
-  def assert_eval_with_jit(script, stdout: nil, success_count:, min_calls: 1, insns: [], uplevel: 3)
-    out, err = eval_with_jit(script, verbose: 1, min_calls: min_calls)
+  def assert_eval_with_jit(script, stdout: nil, success_count:, min_calls: 2, insns: [], uplevel: 3)
+    out, err = eval_with_jit(script, verbose: 2, min_calls: min_calls, save_temps: true)
     actual = err.scan(/^#{JIT_SUCCESS_PREFIX}:/).size
+    puts "", "**********", "* rb_mjit_min_header-2.7.0.h", "---", ""
+    $stdout.flush
+    puts File.read(".ext/include/x86_64-linux/rb_mjit_min_header-2.7.0.h")
+    # puts File.read(".ext/include/armv7hl-linux/rb_mjit_min_header-2.7.0.h")
+    # puts File.read(".ext/include/s390x-linux/rb_mjit_min_header-2.7.0.h")
+    Dir.glob('/tmp/*.c').each {|f| puts '**********', "* #{f}", "", File.read(f), "---"; $stdout.flush}
     # Add --jit-verbose=2 logs for cl.exe because compiler's error message is suppressed
     # for cl.exe with --jit-verbose=1. See `start_process` in mjit_worker.c.
     if RUBY_PLATFORM.match?(/mswin/) && success_count != actual
~~~

And I run just the single test:

~~~
make test-all TESTS="test/ruby/test_jit.rb -n /test_block_handler_with_possible_frame_omitted_inlining/"
~~~

See the attached logs from s390x, armv7hl and x86_64 (apologies, some of the lines might be slightly intermingled but the build system, but I hope you can handle that).

BTW I was wrong saying that it fails on AArch64, because it actually fails on armv7hl

----------------------------------------
Bug #15986: `TestJIT#test_block_handler_with_possible_frame_omitted_inlining` fails on s390x and armv7hl
https://bugs.ruby-lang.org/issues/15986#change-79265

* Author: vo.x (Vit Ondruch)
* Status: Feedback
* Priority: Normal
* Assignee: k0kubun (Takashi Kokubun)
* Target version: 
* ruby -v: ruby -v: ruby 2.7.0dev (2019-07-04T10:34:08Z master d9f8b88b47) [s390x-linux]
* Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
I am trying to build the Ruby 2.7 snapshot for Fedora Rawhide [1], but I observe the following test failure on s390x and aarch64 platforms:

~~~
  1) Failure:
TestJIT#test_block_handler_with_possible_frame_omitted_inlining [/builddir/build/BUILD/ruby-2.7.0-d9f8b88b47/test/ruby/test_jit.rb:846]:
Expected 2 times of JIT success, but succeeded 1 times.
script:
"""
def multiply(a, b)
  a *= b
end
3.times do
  p multiply(7.0, 10.0)
end
"""
stderr:
"""
JIT success (65.9ms): block in <main>@-e:6 -> /tmp/_ruby_mjit_p54157u0.c
gcc: fatal error: output filename may not be empty
compilation terminated.
Successful MJIT finish
"""
..
<2> expected but was
<1>.
Finished tests in 440.892116s, 47.2746 tests/s, 6150.4071 assertions/s.
~~~


[1]: https://koji.fedoraproject.org/koji/taskinfo?taskID=36030301

---Files--------------------------------
build-s390x.log (1.29 MB)
build-armv7hl.log (1.26 MB)
build-x86_64.log (1.28 MB)


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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>