Messages in this thread | | | Date | Thu, 01 Jan 2009 18:12:41 +1100 | From | Jeremy Fitzhardinge <> | Subject | Re: [PATCH] parisc: fix module loading failure of large kernel modules (take 4) |
| |
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
| |