Make wrapper of main for wasm more generic

This commit is contained in:
Nobuyoshi Nakada 2025-03-14 16:21:59 +09:00 committed by Nobuyoshi Nakada
parent 453f88f7f1
commit 47d75b65bf
Notes: git 2025-03-16 08:34:23 +00:00
2 changed files with 8 additions and 6 deletions

View File

@ -434,6 +434,13 @@ __extension__({ \
RUBY__ASAN_DEFAULT_OPTIONS \
/* RUBY_GLOBAL_SETUP end */
#if defined(__wasm__) && !defined(__EMSCRIPTEN__)
int rb_wasm_rt_start(int (*)(int, char **), int, char **);
# define ruby_start_main rb_wasm_rt_start
#else
# define ruby_start_main(main, argc, argv) main(argc, argv)
#endif
RBIMPL_SYMBOL_EXPORT_END()
#endif /* RUBY_RUBY_H */

7
main.c
View File

@ -42,11 +42,6 @@ rb_main(int argc, char **argv)
return ruby_run_node(ruby_options(argc, argv));
}
#if defined(__wasm__) && !defined(__EMSCRIPTEN__)
int rb_wasm_rt_start(int (main)(int argc, char **argv), int argc, char **argv);
#define rb_main(argc, argv) rb_wasm_rt_start(rb_main, argc, argv)
#endif
#ifdef _WIN32
#define main(argc, argv) w32_main(argc, argv)
static int main(int argc, char **argv);
@ -64,5 +59,5 @@ main(int argc, char **argv)
#endif
ruby_sysinit(&argc, &argv);
return rb_main(argc, argv);
return ruby_start_main(rb_main, argc, argv);
}