On Thu, Jul 15, 2010 at 10:36:04PM +0400, Andrey V. Elsukov wrote:
> On 15.07.2010 18:32, Kostik Belousov wrote:
> > The kernel linker ignores weak attribute of the symbol, as you see.
> > There is more bugs in this department, in regard of the list of
> > exported symbols from the modules.
> > 
> > I have a patch that fixes the issues, but I am leery to commit it, since
> > the fix effectively breaks significant set of the modules.
> 
> Hi, Kostik
> 
> i want to remind that some time ago there was a report about another
> bug.
> 
> #include <sys/param.h>
> #include <sys/kernel.h>
> #include <sys/module.h>
> #include <sys/systm.h>
> 
> static int
> tst_modevent(module_t mod, int type, void *unused)
> {
>       switch (type) {
>       case MOD_LOAD:
>               return (EINVAL);
>       case MOD_UNLOAD:
>               break;
>       };
>       return (0);
> }
> static moduledata_t tstmod = {
>       "tst",
>       tst_modevent,
>       0
> };
> 
> DECLARE_MODULE(tst, tstmod, SI_SUB_ROOT_CONF, SI_ORDER_ANY);
> 
> # kldload -v ./tst.ko
> Loaded ./tst.ko, id=16
> 
> I think loading of this module should be rejected on MOD_LOAD,
> but it doesn't.
Did you tried this ? It works for me.

There was a thread about the issue where apparently submitter used
binutils 2.20.1. The solution of reverting r103230 was
mentioned by peter.

Attachment: pgpBxOqSAy3sw.pgp
Description: PGP signature

Reply via email to