This patch stops "modpost" from issuing erroneous modpost warnings on ARM builds, which it's been doing since since maybe last summer. A canonical example would be driver method table entries: WARNING: <path> - Section mismatch: reference to .exit.text:<name>_remove from .data after '$d' (at offset 0x4) That "$d" symbol is generated by tools conformant with ARM ABI specs; in this case it's a symbol **in the middle of** a "<name>_driver" struct. The erroneous warnings appear to be issued because "modpost" whitelists references from "<name>_driver" data into init and exit sections ... but doesn't know should also include those "$d" mapping symbols, which are not otherwise associated with "<name>_driver" symbols. This patch prevents the modpost symbol lookup code from ever returning those mapping symbols, so it will return a whitelisted symbol instead. Then things work as expected. Now to revert various code-bloating "fixes" that got merged because of this modpost bug.... Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Acked-by: Rusty Russell <rusty@rustcorp.com.au> Cc: Roman Zippel <zippel@linux-m68k.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
.gitignore | ||
Makefile | ||
empty.c | ||
file2alias.c | ||
mk_elfconfig.c | ||
modpost.c | ||
modpost.h | ||
sumversion.c |