From: Sam Ravnborg <sam@ravnborg.org>
To: Jeff Garzik <jeff@garzik.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
akpm@linux-foundation.org, torvalds@linux-foundation.org,
Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH] Permit silencing of __deprecated warnings.
Date: Thu, 25 Oct 2007 13:02:50 +0200 [thread overview]
Message-ID: <20071025110250.GC10536@uranus.ravnborg.org> (raw)
In-Reply-To: <41621d56a0a0e4e5f861e1725f18990df5e927ad.1193299380.git.jeff@garzik.org>
On Thu, Oct 25, 2007 at 04:06:13AM -0400, Jeff Garzik wrote:
> The __deprecated marker is quite useful in highlighting the remnants of
> old APIs that want removing.
>
> However, it is quite normal for one or more years to pass, before the
> (usually ancient, bitrotten) code in question is either updated or
> deleted.
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:
> 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
------------------------
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
next prev parent reply other threads:[~2007-10-25 11:01 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-25 8:06 [PATCH] sound/oss/sb_common.c: fix casting warning Jeff Garzik
2007-10-25 8:06 ` [PATCH] Permit silencing of __deprecated warnings Jeff Garzik
2007-10-25 8:15 ` Andrew Morton
2007-10-25 8:20 ` Jeff Garzik
2007-10-25 15:34 ` Linus Torvalds
2007-10-25 11:02 ` Sam Ravnborg [this message]
2007-10-26 3:07 ` Arjan van de Ven
2007-10-25 8:06 ` [PATCH] Remove #warnings for longstanding conditions Jeff Garzik
2007-10-25 9:52 ` Karsten Keil
2007-10-25 11:22 ` Matthew Wilcox
2007-10-26 2:07 ` Jeff Garzik
2007-10-26 2:14 ` Matthew Wilcox
2007-10-26 2:19 ` Jeff Garzik
2007-10-25 8:06 ` [PATCH] ISDN/capidrv: fix casting warning Jeff Garzik
2007-10-25 9:51 ` Karsten Keil
2007-10-26 0:53 ` Jeff Garzik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20071025110250.GC10536@uranus.ravnborg.org \
--to=sam@ravnborg.org \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=jeff@garzik.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox