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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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-arch" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux