From 7cb33b6a88beda081c9fd56302ee403333ba4427 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Tue, 24 Mar 2026 14:24:24 +0900 Subject: merge revision(s) bc2a8a002a6c41fc1b28e02e15e2fb2b72d1b66e, c26057ebafb23b063190d31d5b4d19a0e0a1306c: [Backport #21779] [Bug #21779] Uniquify `InitVM` functions as well as `Init` Avoid possible name conflict when `--with-static-linked-ext`. [Bug #21779] Do not export InitVM functions Fix ruby/io-console#105. --- configure.ac | 1 + ext/extmk.rb | 1 + template/Makefile.in | 3 ++- version.h | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 0f9553ee42..5720a474bb 100644 --- a/configure.ac +++ b/configure.ac @@ -3623,6 +3623,7 @@ AS_CASE("$enable_shared", [yes], [ LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-current_version $(RUBY_PROGRAM_VERSION)' AS_IF([test "$visibility_option" = ld], [ LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,_Init_*' + LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,_InitVM_*' LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,_ruby_static_id_*' LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,*_threadptr_*' ]) diff --git a/ext/extmk.rb b/ext/extmk.rb index da0b06aaa5..1f8e59f625 100755 --- a/ext/extmk.rb +++ b/ext/extmk.rb @@ -557,6 +557,7 @@ extend Module.new { if $static and (target = args.first).include?("/") base = File.basename(target) $defs << "-DInit_#{base}=Init_#{target.tr('/', '_')}" + $defs << "-DInitVM_#{base}=InitVM_#{target.tr('/', '_')}" end return super end diff --git a/template/Makefile.in b/template/Makefile.in index 332d390a84..c4d591d9ad 100644 --- a/template/Makefile.in +++ b/template/Makefile.in @@ -325,7 +325,8 @@ $(LIBRUBY_SO): @-[ -n "$(EXTSTATIC)" ] || $(PRE_LIBRUBY_UPDATE) $(ECHO) linking shared-library $@ $(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(EXTSOLIBS) $(OUTFLAG)$@ - -$(Q) $(OBJCOPY) -w -L '$(SYMBOL_PREFIX)Init_*' -L '$(SYMBOL_PREFIX)ruby_static_id_*' \ + -$(Q) $(OBJCOPY) -w -L '$(SYMBOL_PREFIX)Init_*' -L '$(SYMBOL_PREFIX)InitVM_*' \ + -L '$(SYMBOL_PREFIX)ruby_static_id_*' \ -L '$(SYMBOL_PREFIX)*_threadptr_*' -L '$(SYMBOL_PREFIX)*_ec_*' $@ $(Q) $(POSTLINK) @-$(MINIRUBY) -e 'so, *aliases = ARGV; aliases.uniq!; aliases.delete(File.basename(so)); \ diff --git a/version.h b/version.h index 31a4f79cb2..996107f338 100644 --- a/version.h +++ b/version.h @@ -11,7 +11,7 @@ # define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR #define RUBY_VERSION_TEENY 10 #define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR -#define RUBY_PATCHLEVEL 199 +#define RUBY_PATCHLEVEL 200 #include "ruby/version.h" #include "ruby/internal/abi.h" -- cgit v1.2.3