Bugs: Browse | Submit New | Admin

[#29422] Cascade of errors when trying to build ruby_debug.so with Ruby 1.9.3-p0

Date:
2011-11-10 00:54
Priority:
3
Submitted By:
Eric Promislow (ericp)
Assigned To:
Nobody (None)
Category:
None
State:
Open
Summary:
Cascade of errors when trying to build ruby_debug.so with Ruby 1.9.3-p0

Detailed description
Problem #1 -- proc block knocks:

ruby_debug $ ruby extconf.rb 
checking for rb_method_entry_t.called_id in method.h... no
checking for rb_control_frame_t.method_id in method.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason ...
[reason follows here:]
extconf.rb:16:in `block in <main>': break from proc-closure (LocalJumpError)
	from /home/ericp/opt/ruby-1.9-3-p0/lib/ruby/gems/1.9.1/gems/ruby_core_source-0.1.5/lib/ruby_core_source.rb:18:in
`call'
	from /home/ericp/opt/ruby-1.9-3-p0/lib/ruby/gems/1.9.1/gems/ruby_core_source-0.1.5/lib/ruby_core_source.rb:18:in
`create_makefile_with_core'
	from extconf.rb:32:in `<main>'
ruby_debug $ 

I haven't checked with Ruby 1.9.2, but 1.9.3 doesn't like multiple break stmts in a top level Proc block (the one assigned
to hdrs)

Problem #2 -- why are those tests in extconf.rb failing anyway?

Look back at this:
checking for rb_method_entry_t.called_id in method.h... no

In method.h struct rb_method_entry_struct contains a "called_id" field, and is typedef'ed to rb_method_entry_t.
Maybe have_struct_member can't deal with typedefs.

Problem #3 -- I manually checked all those conditions, verified them, and ran extconf.rb.  Running Make generates the
following error messages:

ruby_debug $ make
compiling ruby_debug.c
ruby_debug.c: In function ‘create_exception_catchall’:
ruby_debug.c:512: error: ‘struct rb_iseq_struct’ has no member named ‘line_info_table’
ruby_debug.c:512: error: ‘debug_context_t’ has no member named ‘catch_info_entry’
ruby_debug.c:513: error: ‘struct rb_iseq_struct’ has no member named ‘line_info_size’
ruby_debug.c:524: error: ‘debug_context_t’ has no member named ‘catch_info_entry’
ruby_debug.c:525: error: ‘debug_context_t’ has no member named ‘catch_info_entry’
ruby_debug.c: In function ‘find_prev_line_start’:
ruby_debug.c:780: warning: comparison between signed and unsigned
ruby_debug.c: In function ‘context_jump’:
ruby_debug.c:2308: warning: comparison between signed and unsigned
ruby_debug.c:2316: error: ‘rb_iseq_t’ has no member named ‘line_info_size’
ruby_debug.c:2318: error: ‘rb_iseq_t’ has no member named ‘line_info_table’
ruby_debug.c:2329: error: ‘rb_iseq_t’ has no member named ‘line_info_table’
make: *** [ruby_debug.o] Error 1

- 30 -

Add A Comment: Notepad

Please login


Followup

No Followups Have Been Posted

Attached Files:

Name Description Download
No Files Currently Attached

Changes:

No Changes Have Been Made to This Item