lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 01 Jul 2011 07:00:33 +0200
From:	Jonas Bonn <jonas@...thpole.se>
To:	Linus Torvalds <torvalds@...ux-foundation.org>
Cc:	rusty@...tcorp.com.au, arnd@...db.de, geert@...ux-m68k.org,
	mingo@...e.hu, linux-kernel@...r.kernel.org,
	linux-arch@...r.kernel.org, monstr@...str.eu, cmetcalf@...era.com,
	akpm@...ux-foundation.org
Subject: Re: [PATCH 1/2] modules: add default loader hook implementations


On Thu, 2011-06-30 at 13:02 -0700, Linus Torvalds wrote:
> On Thu, Jun 30, 2011 at 12:22 PM, Jonas Bonn <jonas@...thpole.se> 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@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists