Re: Link modules to DYN type
- Reply: Konstantin Belousov : "Re: Link modules to DYN type"
- Reply: Jan Martin Mikkelsen : "Re: Link modules to DYN type"
- In reply to: Konstantin Belousov : "Re: Link modules to DYN type"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 26 Apr 2023 11:38:32 UTC
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