On Thu, Oct 25, 2007 at 04:06:13AM -0400, Jeff Garzik wrote:Reminded me of a patch I have had floating around for far too long time. Snippet from the mail: -------------------------- From: Arnd Bergmann <arnd@arndb.de> On Sünndag 07 August 2005 20:26, Martin J. Bligh wrote: 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 ------------------------ Obviously it does not apply today but it does not make sense to warn about the old API symbol being exported. Do you see something wrong in the approach Arnd used? I just never came around to look at it. Sam -
| Greg Kroah-Hartman | [PATCH 004/196] Chinese: add translation of SubmittingPatches |
| Jeff Garzik | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Paul E. McKenney | [PATCH RFC 3/9] RCU: Preemptible RCU |
| James Bottomley | Re: Integration of SCST in the mainstream Linux kernel |
git: | |
| Gerrit Renker | [PATCH 13/37] dccp: Deprecate Ack Ratio sysctl |
| Patrick McHardy | Re: [GIT]: Networking |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
