diff options
author | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-02-08 13:54:37 +0000 |
---|---|---|
committer | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-02-08 13:54:37 +0000 |
commit | 288b44328dbd22429eaaed5243d7bea8a3116016 (patch) | |
tree | 28d8be72c8a700b124e81e63372558a970627d29 | |
parent | 7c3887408abefd58cabb7a28621e9fd66b41c7ac (diff) |
Export some missing symbols for MJIT
tool/ruby_vm/views/_insn_name_info.erb: on Linux, rb_vm_insn_name_offset
was needed to compile with --jit-debug (Usually --jit-debug requires
more symbols than the situation without --jit-debug because -O2 skips
some functions to compile).
vm.c: when running transform_mjit_header.rb with --jit-wait,
rb_source_location_cstr was repoted to be missing.
string.c: ditto, for rb_str_eql
numeric.c: ditto, for rb_float_eql
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | include/ruby/defines.h | 4 | ||||
-rw-r--r-- | numeric.c | 2 | ||||
-rw-r--r-- | string.c | 2 | ||||
-rw-r--r-- | tool/ruby_vm/views/_insn_name_info.erb | 2 | ||||
-rw-r--r-- | vm.c | 2 |
5 files changed, 8 insertions, 4 deletions
diff --git a/include/ruby/defines.h b/include/ruby/defines.h index b49fabe636..375e039d4b 100644 --- a/include/ruby/defines.h +++ b/include/ruby/defines.h @@ -270,9 +270,11 @@ void xfree(void*); #define RUBY_FUNC_EXPORTED #endif -/* MJIT_FUNC_EXPORTED is used for functions which are exported only for MJIT +/* These macros are used for functions which are exported only for MJIT and NOT ensured to be exported in future versions. */ #define MJIT_FUNC_EXPORTED RUBY_FUNC_EXPORTED +#define MJIT_SYMBOL_EXPORT_BEGIN RUBY_SYMBOL_EXPORT_BEGIN +#define MJIT_SYMBOL_EXPORT_END RUBY_SYMBOL_EXPORT_END #ifndef RUBY_EXTERN #define RUBY_EXTERN extern @@ -1603,7 +1603,7 @@ flo_le(VALUE x, VALUE y) * so an implementation-dependent value is returned. */ -VALUE +MJIT_FUNC_EXPORTED VALUE rb_float_eql(VALUE x, VALUE y) { if (RB_TYPE_P(y, T_FLOAT)) { @@ -3263,7 +3263,7 @@ rb_str_equal(VALUE str1, VALUE str2) * Two strings are equal if they have the same length and content. */ -VALUE +MJIT_FUNC_EXPORTED VALUE rb_str_eql(VALUE str1, VALUE str2) { if (str1 == str2) return Qtrue; diff --git a/tool/ruby_vm/views/_insn_name_info.erb b/tool/ruby_vm/views/_insn_name_info.erb index 79a48cd9cb..581869fca8 100644 --- a/tool/ruby_vm/views/_insn_name_info.erb +++ b/tool/ruby_vm/views/_insn_name_info.erb @@ -13,7 +13,9 @@ % CONSTFUNC(MAYBE_UNUSED(static const char *insn_name(VALUE insn))); extern const char *rb_vm_insn_name_info; +MJIT_SYMBOL_EXPORT_BEGIN extern const unsigned short rb_vm_insn_name_offset[]; +MJIT_SYMBOL_EXPORT_END #ifdef RUBY_VM_INSNS_INFO const unsigned short rb_vm_insn_name_offset[] = { @@ -1302,7 +1302,7 @@ rb_source_location(int *pline) } } -const char * +MJIT_FUNC_EXPORTED const char * rb_source_location_cstr(int *pline) { VALUE path = rb_source_location(pline); |