Re: [PATCH] parisc: fix module loading failure of large kernel modules(take 4)

From: Jeremy Fitzhardinge
Date: Thu Jan 01 2009 - 02:13:21 EST


Linus Torvalds wrote:
Some gcc versions will inline weak functions if they are in scope - even if there is a non-weak function somewhere else. So you MUST NOT have the weak definition in the same file (or indirectly called through some inline functions in a header file) as the call. Because if you do, then any user with the wrong version of gcc will get the weak function semantics, even if it was meant to be overridden by something else.

Yes. I think this behaviour is considered to be desperately broken by the gcc developers and has been fixed in all recent gccs. There are a couple of broken versions, and there have been patches floating around to just refuse to use them; otherwise __weak is effectively unusable. (Ah, I see Adrian has posted it again and everyone agrees with it.)

On the other hand, I have seen a couple of instances of "inline __weak" which is insane, but I don't know if gcc does anything crazy with it, or if its common enough to bother warning about.

J
--
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/