kbuild: set correct KBUILD_MODNAME when using well known kernel symbols as module...
authorUstyugov Roman <dr_unique@ymg.ru>
Fri, 23 Sep 2005 04:42:11 +0000 (08:42 +0400)
committerSam Ravnborg <sam@mars.ravnborg.org>
Sun, 25 Dec 2005 23:33:41 +0000 (00:33 +0100)
commitf83b5e323f57d6e1f35a839d663e91cebe985e54
tree59e19500a8204abd8e77620b7e80138d5f7fda68
parent4d99f93bdaa1ab49188cac67b4aae9180f8e3960
kbuild: set correct KBUILD_MODNAME when using well known kernel symbols as module names

This patch fixes a problem when we use well known kernel symbols as module
names.

For example, if module source name is current.c, idle_stack.c or etc.,
we have a bad KBUILD_MODNAME value.
For example, KBUILD_MODNAME will be "get_current()" instead of "current", or
"(init_thread_union.stack)" instead of "idle_task".

The trick is to define a stringify macro on the commandline - named
KBUILD_STR for namespace reasons - and then to stringify the module
name.

There are a few uses of KBUILD_MODNAME throughout the tree but the usage
is for debug and will not be harmed by this change so left untouched for now.

While at it KBUILD_BASENAME was changed too. Any spinlock usage in the
unix module would have created wrong section names without it.
Usage in spinlock.h fixed so it no longer stringify KBUILD_BASENAME.

Original patch from Ustyogov Roman - all bugs introduced by me.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
include/linux/spinlock.h
scripts/Makefile.lib
scripts/mod/modpost.c