From 01c7e16c0ce66cfa745d49cd4f18d43c23dbe225 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 21 Feb 2024 19:26:22 +0900 Subject: [PATCH] Separate miniruby from dmyext.c --- common.mk | 4 ++-- dmyenc.c | 17 +++++++++++++---- dmyext.c | 17 +++++++++++++---- miniinit.c | 6 ++++++ 4 files changed, 34 insertions(+), 10 deletions(-) diff --git a/common.mk b/common.mk index 51a58c286e1b0e..460ede3854c76e 100644 --- a/common.mk +++ b/common.mk @@ -78,7 +78,7 @@ NORMALMAINOBJ = main.$(OBJEXT) MAINOBJ = $(NORMALMAINOBJ) DLDOBJS = $(INITOBJS) EXTSOLIBS = -MINIOBJS = $(ARCHMINIOBJS) miniinit.$(OBJEXT) dmyext.$(OBJEXT) +MINIOBJS = $(ARCHMINIOBJS) miniinit.$(OBJEXT) ENC_MK = enc.mk MAKE_ENC = -f $(ENC_MK) V="$(V)" UNICODE_HDR_DIR="$(UNICODE_HDR_DIR)" \ RUBY="$(BOOTSTRAPRUBY)" MINIRUBY="$(BOOTSTRAPRUBY)" $(mflags) @@ -412,7 +412,7 @@ programs: $(PROGRAM) $(WPROGRAM) $(arch)-fake.rb $(PREP): $(MKFILES) -miniruby$(EXEEXT): config.status $(ALLOBJS) $(ARCHFILE) +miniruby$(EXEEXT): config.status $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(ARCHFILE) objs: $(ALLOBJS) diff --git a/dmyenc.c b/dmyenc.c index d00ad80a6f8fdb..47718412814c6a 100644 --- a/dmyenc.c +++ b/dmyenc.c @@ -1,7 +1,16 @@ -// This file is used only by ruby. -// miniruby does not use this Init_enc. Instead, "miniinit.c" provides Init_enc, which defines only the builtin encodings. -// Dynamically-linked ruby uses this Init_enc, which requires "enc/encdb.so" to load the builtin encodings and set up the optional encodings. -// Statically-linked ruby does not use this Init_enc. Instead, "enc/encinit.c" (which is a generated file) defines Init_enc, which activates the encodings. +// This file is used by dynamically-linked ruby, which has no +// statically-linked encodings other than the builtin encodings. +// +// - miniruby does not use this Init_enc. Instead, "miniinit.c" +// provides Init_enc, which defines only the builtin encodings. +// +// - Dynamically-linked ruby uses this Init_enc, which requires +// "enc/encdb.so" to load the builtin encodings and set up the +// optional encodings. +// +// - Statically-linked ruby does not use this Init_enc. Instead, +// "enc/encinit.c" (which is a generated file) defines Init_enc, +// which activates the encodings. #define require(name) ruby_require_internal(name, (unsigned int)sizeof(name)-1) int ruby_require_internal(const char *, int); diff --git a/dmyext.c b/dmyext.c index 00202465296bf3..66be95ab4ef892 100644 --- a/dmyext.c +++ b/dmyext.c @@ -1,7 +1,16 @@ -// This file is used by dynamically-linked ruby and miniruby. -// miniruby uses this Init_ext, which does nothing. It does not support require'ing extension libraries. -// Dynamically-linked ruby uses this Init_ext, which does nothing. It loads extension libraries by dlopen, etc. -// Statically-linked ruby does not use this Init_ext. Instead, "ext/extinit.c" (which is a generated file) defines Init_ext, which activates the (statically-linked) extension libraries. +// This file is used by dynamically-linked ruby, which has no +// statically-linked extension libraries. +// +// - miniruby does not use this Init_ext. Instead, "miniinit.c" +// provides Init_enc, which does nothing too. It does not support +// require'ing extension libraries. +// +// - Dynamically-linked ruby uses this Init_ext, which does +// nothing. It loads extension libraries by dlopen, etc. +// +// - Statically-linked ruby does not use this Init_ext. Instead, +// "ext/extinit.c" (which is a generated file) defines Init_ext, +// which activates the (statically-linked) extension libraries. void Init_ext(void) diff --git a/miniinit.c b/miniinit.c index bb22d6d9f5bf33..09608c1113ef91 100644 --- a/miniinit.c +++ b/miniinit.c @@ -48,6 +48,12 @@ Init_enc(void) rb_encdb_alias("ASCII", "US-ASCII"); } +/* miniruby does not support dynamic loading. */ +void +Init_ext(void) +{ +} + #include "mini_builtin.c" void