[#87847] undefined symbol: mjit_init_p — Leam Hall <leamhall@...>

I pulled Ruby trunk on 3 Jul and am now getting errors similar to the

10 messages 2018/07/07

[#88088] [Ruby trunk Misc#14937] [PATCH] thread_pthread: lazy-spawn timer-thread only on contention — normalperson@...

Issue #14937 has been reported by normalperson (Eric Wong).

9 messages 2018/07/24

[ruby-core:88211] [Ruby trunk Bug#14949] test_jit.rb test_unload_units fails on 32-bit

From: normalperson@...
Date: 2018-07-30 18:00:09 UTC
List: ruby-core #88211
Issue #14949 has been updated by normalperson (Eric Wong).

File rb_mjit_header.h added

Attached is rb_mjit_header.h from a 32-bit userspace on 64-bit kernel/HW
and mjit_header_i686_native.h from a 32-bit machine


----------------------------------------
Bug #14949: test_jit.rb test_unload_units fails on 32-bit
https://bugs.ruby-lang.org/issues/14949#change-73231

* Author: normalperson (Eric Wong)
* Status: Open
* Priority: Normal
* Assignee: k0kubun (Takashi Kokubun)
* Target version: 
* ruby -v: 
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
I get multiple definition warnings from this test.  It only
happens on my 32-bit systems (both VM and real HW) on Debian 9.
Attached log was made with below patch:

```
--- a/test/ruby/test_jit.rb
+++ b/test/ruby/test_jit.rb
@@ -541,32 +541,33 @@ def test_unload_units
     Dir.mktmpdir("jit_test_unload_units_") do |dir|
       # MIN_CACHE_SIZE is 10
       out, err = eval_with_jit({"TMPDIR"=>dir}, "#{<<~"begin;"}\n#{<<~'end;'}", verbose: 1, min_calls: 1, max_cache: 10)
       begin;
         10.times do |i|
           eval(<<-EOS)
             def mjit#{i}
               print #{i}
             end
             mjit#{i}
           EOS
         end
       end;
       assert_equal('0123456789', out)
       compactions, errs = err.lines.partition do |l|
         l.match?(/\AJIT compaction \(\d+\.\dms\): Compacted \d+ methods ->/)
       end
       assert_match(/\A#{JIT_SUCCESS_PREFIX}: block in <main>@-e:/, errs[0])
       9.times do |i|
         assert_match(/\A#{JIT_SUCCESS_PREFIX}: mjit#{i}@\(eval\):/, errs[i + 1])
       end
+      warn "errs: #{errs.join}"
       assert_equal("Too many JIT code -- 1 units unloaded\n", errs[10])
       assert_match(/\A#{JIT_SUCCESS_PREFIX}: mjit9@\(eval\):/, errs[11])
 
       # On --jit-wait, when the number of JIT-ed code reaches --jit-max-cache,
       # it should trigger compaction.
       assert_equal(2, compactions.size)
 
       # verify .o files are deleted on unload_units
       assert_send([Dir, :empty?, dir])
     end
   end
```


---Files--------------------------------
unload_units.txt (25.2 KB)
rb_mjit_header.h (811 KB)


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

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

In This Thread

Prev Next