From 8d5d5b34cff237540f0b80e943b584d872745ec0 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Thu, 6 Feb 2025 11:23:31 -0500 Subject: [PATCH] Hook zjit_init --- ruby.c | 12 ++++++++++++ zjit/src/lib.rs | 7 ++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ruby.c b/ruby.c index ddfb1476d6..d76348bf93 100644 --- a/ruby.c +++ b/ruby.c @@ -1797,6 +1797,13 @@ ruby_opt_init(ruby_cmdline_options_t *opt) #if USE_YJIT rb_yjit_init(opt->yjit); #endif +#if USE_ZJIT + if (opt->zjit) { + fprintf(stderr, "test test\n"); + extern void rb_zjit_init(); + rb_zjit_init(); + } +#endif // Call yjit_hook.rb after rb_yjit_init() to use `RubyVM::YJIT.enabled?` void Init_builtin_yjit_hook(); @@ -2331,6 +2338,11 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt) opt->yjit = !rb_yjit_option_disable(); // set opt->yjit for Init_ruby_description() and calling rb_yjit_init() } #endif +#if USE_ZJIT + if (FEATURE_SET_P(opt->features, zjit)) { + opt->zjit = true; + } +#endif ruby_mn_threads_params(); Init_ruby_description(opt); diff --git a/zjit/src/lib.rs b/zjit/src/lib.rs index 99a6982c73..626a98731b 100644 --- a/zjit/src/lib.rs +++ b/zjit/src/lib.rs @@ -4,12 +4,13 @@ mod cruby; mod stats; mod ir; -extern "C" fn zjit_init() { - println!("zjit_init"); +#[no_mangle] +pub extern "C" fn rb_zjit_init() { + println!("zjit init"); } #[no_mangle] pub extern "C" fn rb_zjit_parse_option() -> bool { - println!("parsing zjit"); + println!("parsing zjit options"); false }