lkml.org 
[lkml]   [2005]   [Aug]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRe: EXPORT_SYMBOL generates "is deprecated" noise
    Date
    On Sünndag 07 August 2005 20:26, Martin J. Bligh wrote:
    > Oh, I'm being an idiot and looking at the wrong tree. It's __deprecated,
    > but I still can't think of a clean way to locally undefine that for
    > just EXPORT_SYMBOL.

    We could in theory create a new EXPORT_SYMBOL variant that does not
    reference the symbol directly. This does a little less compile-time
    checks but helps reduce the noise. The big advantage of this
    would be that we could once again build kernels with -Werror on
    developer machines.

    Signed-off-by: Arnd Bergmann <arnd@arndb.de>

    diff --git a/include/linux/module.h b/include/linux/module.h
    --- a/include/linux/module.h
    +++ b/include/linux/module.h
    @@ -182,21 +182,26 @@ void *__symbol_get_gpl(const char *symbo
    #endif

    /* For every exported symbol, place a struct in the __ksymtab section */
    -#define __EXPORT_SYMBOL(sym, sec) \
    - __CRC_SYMBOL(sym, sec) \
    - static const char __kstrtab_##sym[] \
    +#define __EXPORT_SYMBOL(name, sym, sec) \
    + __CRC_SYMBOL(name, sec) \
    + static const char __kstrtab_##name[] \
    __attribute__((section("__ksymtab_strings"))) \
    - = MODULE_SYMBOL_PREFIX #sym; \
    - static const struct kernel_symbol __ksymtab_##sym \
    + = MODULE_SYMBOL_PREFIX #name; \
    + static const struct kernel_symbol __ksymtab_##name \
    __attribute_used__ \
    __attribute__((section("__ksymtab" sec), unused)) \
    - = { (unsigned long)&sym, __kstrtab_##sym }
    + = { (unsigned long)&sym, __kstrtab_##name }

    #define EXPORT_SYMBOL(sym) \
    - __EXPORT_SYMBOL(sym, "")
    + __EXPORT_SYMBOL(sym, sym, "")

    #define EXPORT_SYMBOL_GPL(sym) \
    - __EXPORT_SYMBOL(sym, "_gpl")
    + __EXPORT_SYMBOL(sym, sym, "_gpl")
    +
    +#define EXPORT_DEPRECATED_SYMBOL(sym) \
    + extern void __deprecated_ ## sym \
    + __attribute__((alias(#sym))); \
    + __EXPORT_SYMBOL(sym, __deprecated_ ## sym, "_gpl")

    #endif

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2005-08-08 15:54    [W:0.023 / U:212.772 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site