Project

General

Profile

Bug #14192

rb_frame_method_id_and_class not exported, breaks ruby-prof and other gems

Added by drkaes (Stefan Kaes) almost 2 years ago. Updated almost 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.5.0dev (2017-12-16 trunk 61295) [x86_64-darwin16]
[ruby-core:84302]

Description

rb_frame_method_id_and_class is currently available in the header files as deprecated, but the corresponding symbol is not exported from the library.

Witness the following compile and execution log excerpts:

../../../../ext/ruby_prof/ruby_prof.c:209:9: warning: 'rb_frame_method_id_and_class' is deprecated [-Wdeprecated-declarations]
        rb_frame_method_id_and_class(&mid, &klass);
        ^
/Users/stefan.kaes/.rvm/rubies/ruby-head/include/ruby-2.5.0/ruby/backward.h:53:1: note: 'rb_frame_method_id_and_class' has been explicitly marked deprecated here
DEPRECATED(int rb_frame_method_id_and_class(ID *idp, VALUE *klassp));
^
/Users/stefan.kaes/.rvm/rubies/ruby-head/include/ruby-2.5.0/x86_64-darwin16/ruby/config.h:126:39: note: expanded from macro 'DEPRECATED'


....................


dyld: lazy symbol binding failed: Symbol not found: _rb_frame_method_id_and_class
  Referenced from: /Users/stefan.kaes/src/ruby-prof/lib/2.5.0/ruby_prof.bundle
  Expected in: flat namespace

dyld: Symbol not found: _rb_frame_method_id_and_class
  Referenced from: /Users/stefan.kaes/src/ruby-prof/lib/2.5.0/ruby_prof.bundle
  Expected in: flat namespace



Associated revisions

Revision 316f5807
Added by k0kubun (Takashi Kokubun) almost 2 years ago

vm.c: always export rb_frame_method_id_and_class

Functions declared in include/ruby/backward.h is exported only when
the condition !defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY
is met (i.e. included by include/ruby/ruby.h).

So if it is not the case when ruby is built, this will not be exported.
This was not intentional at r60994.

[Bug #14192]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 61296
Added by k0kubun (Takashi Kokubun) almost 2 years ago

vm.c: always export rb_frame_method_id_and_class

Functions declared in include/ruby/backward.h is exported only when
the condition !defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY
is met (i.e. included by include/ruby/ruby.h).

So if it is not the case when ruby is built, this will not be exported.
This was not intentional at r60994.

[Bug #14192]

Revision 61296
Added by k0kubun (Takashi Kokubun) almost 2 years ago

vm.c: always export rb_frame_method_id_and_class

Functions declared in include/ruby/backward.h is exported only when
the condition !defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY
is met (i.e. included by include/ruby/ruby.h).

So if it is not the case when ruby is built, this will not be exported.
This was not intentional at r60994.

[Bug #14192]

Revision 61296
Added by k0kubun (Takashi Kokubun) almost 2 years ago

vm.c: always export rb_frame_method_id_and_class

Functions declared in include/ruby/backward.h is exported only when
the condition !defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY
is met (i.e. included by include/ruby/ruby.h).

So if it is not the case when ruby is built, this will not be exported.
This was not intentional at r60994.

[Bug #14192]

History

#2

Updated by k0kubun (Takashi Kokubun) almost 2 years ago

  • Status changed from Open to Closed

Applied in changeset trunk|r61296.


vm.c: always export rb_frame_method_id_and_class

Functions declared in include/ruby/backward.h is exported only when
the condition !defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY
is met (i.e. included by include/ruby/ruby.h).

So if it is not the case when ruby is built, this will not be exported.
This was not intentional at r60994.

[Bug #14192]

#3

Updated by k0kubun (Takashi Kokubun) almost 2 years ago

  • Backport changed from 2.3: UNKNOWN, 2.4: UNKNOWN to 2.3: DONTNEED, 2.4: DONTNEED

Updated by drkaes (Stefan Kaes) almost 2 years ago

Assuming the method gets removed with 2.6, how should we replace it?

Can it be replaced now?

I haven't found a replacement for it.

Also available in: Atom PDF