Date: Wed, 26 Apr 2023 13:38:32 +0200 From: Hans Petter Selasky <hselasky@freebsd.org> To: Konstantin Belousov <kostikbel@gmail.com> Cc: Zhenlei Huang <zlei@freebsd.org>, FreeBSD CURRENT <freebsd-current@freebsd.org>, Gleb Smirnoff <glebius@freebsd.org> Subject: Re: Link modules to DYN type Message-ID: <f200bce7-add8-6aff-38cf-2ee15dc35411@freebsd.org> In-Reply-To: <ZEkHKJ_BRhV22gf_@kib.kiev.ua> References: <97390FE1-1DF5-43A1-A3F4-2B945D681437@FreeBSD.org> <2bb66cac-c7f1-e45b-693a-8afbda05cfa6@freebsd.org> <ZEkHKJ_BRhV22gf_@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On 4/26/23 13:12, Konstantin Belousov wrote: > No, in-kernel linker does not behave this way. > Modules need to contain explicit reference to all modules they depend upon, > using the MODULE_DEPEND() macro. Only symbols from the dependencies are > resolved. > > All modules get an implicit reference to kernel. Hi Konstantin, Maybe I wasn't so clear. Trying again: > diff --git a/sys/tests/ktest.c b/sys/tests/ktest.c > index 495fedf95dde..eb42cf062487 100644 > --- a/sys/tests/ktest.c > +++ b/sys/tests/ktest.c > @@ -409,6 +409,12 @@ static moduledata_t ktestmod = { > 0 > }; > > +int > +printf(const char *fmt, ...) > +{ > + return (0); > +} > + > DECLARE_MODULE(ktestmod, ktestmod, SI_SUB_PSEUDO, SI_ORDER_ANY); > MODULE_VERSION(ktestmod, 1); > MODULE_DEPEND(ktestmod, netlink, 1, 1, 1); Then kldload ktest.ko . Which printf() function will be used if ktest.c calls printf() ? I would expect a warning from the kernel at least ... --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f200bce7-add8-6aff-38cf-2ee15dc35411>