• Ustyugov Roman's avatar
    kbuild: set correct KBUILD_MODNAME when using well known kernel symbols as module names · f83b5e32
    Ustyugov Roman authored
    This patch fixes a problem when we use well known kernel symbols as module
    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
    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: default avatarSam Ravnborg <sam@ravnborg.org>