diff options
author | Yuta Saito <kateinoigakukun@gmail.com> | 2021-12-06 11:25:44 +0900 |
---|---|---|
committer | Yuta Saito <kateinoigakukun@gmail.com> | 2022-01-19 11:19:06 +0900 |
commit | be1382b498e05a806f1db52629a54046a2e558d0 (patch) | |
tree | 7ccac879111eab9f740f818a6b8d39b2438c2328 | |
parent | 9033ac3e2ce5735c11e99f7f4ecf63d5c258ac1e (diff) |
ruby.c: initialize extra optional extensions linked statically
Add a hook point to initialize extra extension libraries. The default
hook function is replaced when linking a strong `Init_extra_exts`
symbol. A builder can insert an object file that defines Init_extra_exts
by XLDFLAGS.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/5407
-rw-r--r-- | ruby.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -1524,6 +1524,15 @@ ruby_init_prelude(void) void rb_call_builtin_inits(void); +// Initialize extra optional exts linked statically. +// This empty definition will be replaced with the actual strong symbol by linker. +#if RBIMPL_HAS_ATTRIBUTE(weak) +__attribute__((weak)) +#endif +void Init_extra_exts(void) +{ +} + static void ruby_opt_init(ruby_cmdline_options_t *opt) { @@ -1542,6 +1551,7 @@ ruby_opt_init(ruby_cmdline_options_t *opt) rb_warning_category_update(opt->warn.mask, opt->warn.set); Init_ext(); /* load statically linked extensions before rubygems */ + Init_extra_exts(); rb_call_builtin_inits(); ruby_init_prelude(); |