Re: [PATCH 1/2] modules: add default loader hook implementations

From: Jonas Bonn
Date: Fri Jul 01 2011 - 01:00:46 EST



On Thu, 2011-06-30 at 13:02 -0700, Linus Torvalds wrote:
> On Thu, Jun 30, 2011 at 12:22 PM, Jonas Bonn <jonas@xxxxxxxxxxxx> wrote:
> >
> > The module loader code allows architectures to hook into the code by
> > providing a small number of entry points that each arch must implement.
> > This patch provides __weakly linked generic implementations of these
> > entry points for architectures that don't need to do anything special.
>
> Hmm. I know we used to have problems with gcc versions (or maybe
> binutils) that had bugs wrt "weak" functions being declared in the
> same compilation unit they were used. They would either inline the
> weak function, or bind it early, and never let the linker see the
> weak/strong functions and do the right thing.
>
> I just don't remember if we disallowed those gcc/binutils versions and
> check for it, or whether we decided that __weak function smust be
> defined in a compilation unit separate from the user.
>
> Because you now added all the weak functions to the same file
> (module.c) that actually uses them.

There was precedent for this. The function arch_mod_section_prepend was
already defined as __weak in kernel/module.c.

And just looking around the kernel tree, there are lots of other files
that have their weak variants in the same file as the functions that
rely on them. 'git grep __weak' turns up a whole slew of them.

/Jonas


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/