--- a/vm.c +++ b/vm.c @@ -71,7 +71,7 @@ VALUE rb_str_concat_literals(size_t, const VALUE*); -VALUE vm_exec(rb_execution_context_t *); +__attribute__((visibility("protected"))) VALUE vm_exec(rb_execution_context_t *); extern const char *const rb_debug_counter_names[]; @@ -726,7 +726,9 @@ bool ruby_vm_keep_script_lines; #ifdef RB_THREAD_LOCAL_SPECIFIER -RB_THREAD_LOCAL_SPECIFIER rb_execution_context_t *ruby_current_ec; +RUBY_SYMBOL_EXPORT_BEGIN +__attribute__((visibility("protected"))) RB_THREAD_LOCAL_SPECIFIER rb_execution_context_t *ruby_current_ec; +RUBY_SYMBOL_EXPORT_END #ifdef RUBY_NT_SERIAL RB_THREAD_LOCAL_SPECIFIER rb_atomic_t ruby_nt_serial; --- a/thread_pthread.h +++ b/thread_pthread.h @@ -33,7 +33,9 @@ # ifdef RB_THREAD_CURRENT_EC_NOINLINE NOINLINE(struct rb_execution_context_struct *rb_current_ec(void)); # else - RUBY_EXTERN RB_THREAD_LOCAL_SPECIFIER struct rb_execution_context_struct *ruby_current_ec; + RUBY_SYMBOL_EXPORT_BEGIN + RUBY_EXTERN __attribute__((visibility("protected"))) RB_THREAD_LOCAL_SPECIFIER struct rb_execution_context_struct *ruby_current_ec; + RUBY_SYMBOL_EXPORT_END // for RUBY_DEBUG_LOG() RUBY_EXTERN RB_THREAD_LOCAL_SPECIFIER rb_atomic_t ruby_nt_serial; --- a/symbol.c +++ b/symbol.c @@ -88,9 +88,11 @@ VALUE ids; } rb_symbols_t; -rb_symbols_t ruby_global_symbols = { +RUBY_SYMBOL_EXPORT_BEGIN +__attribute__((visibility("protected"))) rb_symbols_t ruby_global_symbols = { .next_id = tNEXT_ID, }; +RUBY_SYMBOL_EXPORT_END struct sym_set_static_sym_entry { VALUE sym;