From: Johannes Berg <johannes@sipsolutions.net>
To: Josh Triplett <josh@joshtriplett.org>
Cc: Andi Kleen <ak@linux.intel.com>, Wei Yongjun <weiyj.lk@gmail.com>,
linux-sparse@vger.kernel.org
Subject: Re: [BUG] sparse warning EXPORT_SYMBOL()'d symbol non-static
Date: Sun, 24 Nov 2013 21:52:50 +0100 [thread overview]
Message-ID: <1385326370.23961.9.camel@jlt4.sipsolutions.net> (raw)
In-Reply-To: <1385326137.23961.8.camel@jlt4.sipsolutions.net> (sfid-20131124_214905_361728_F87A65B7)
On Sun, 2013-11-24 at 21:48 +0100, Johannes Berg wrote:
> On Sun, 2013-11-24 at 12:45 -0800, Josh Triplett wrote:
> > On Sun, Nov 24, 2013 at 12:28:51PM -0800, Andi Kleen wrote:
> > > > Well, sparse is clearly "right", for all it cares it might very well be
> > > > static, but it seems this is necessary for something in the kernel and
> > > > we clearly can't forward-declare it in a header file. Perhaps we can add
> > > > some annotation to say
> > > > "__attribute__((yes_I_know_but_really_dont_want_this_to_be_static))" to
> > > > suppress this warning? This is getting annoying to me as well :-)
> > >
> > > We could do something like
> > >
> > > typeof(foo);
> > >
> > > in the macro. Not sure if that would make sparse happy.
> >
> > If you're just looking to mollify sparse,
>
> I am, pretty much, since now I get a ton of output and have to either
> grep it or dig through it... :)
>
> > the easiest way is to
> > put a prototype of the symbol right before the symbol itself.
>
> Oh, right, good point, thanks Josh. Andi, do you want to do that?
> Otherwise I can post a patch.
The below seems to mollify sparse, but all the attributes make my head
spin so I'm not sure it's really what we need.
--- a/include/linux/export.h
+++ b/include/linux/export.h
@@ -59,6 +59,7 @@ extern struct module __this_module;
static const char __kstrtab_##sym[] \
__attribute__((section("__ksymtab_strings"), aligned(1))) \
= VMLINUX_SYMBOL_STR(sym); \
+ extern const struct kernel_symbol __ksymtab_##sym; \
__visible const struct kernel_symbol __ksymtab_##sym \
__used \
__attribute__((section("___ksymtab" sec "+" #sym), unused)) \
johannes
next prev parent reply other threads:[~2013-11-24 20:52 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-15 6:46 [BUG] sparse warning EXPORT_SYMBOL()'d symbol non-static Wei Yongjun
2013-11-24 19:49 ` Johannes Berg
2013-11-24 20:28 ` Andi Kleen
2013-11-24 20:36 ` Johannes Berg
2013-11-24 20:45 ` Josh Triplett
2013-11-24 20:48 ` Johannes Berg
2013-11-24 20:52 ` Johannes Berg [this message]
2013-11-24 22:34 ` Josh Triplett
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=1385326370.23961.9.camel@jlt4.sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=ak@linux.intel.com \
--cc=josh@joshtriplett.org \
--cc=linux-sparse@vger.kernel.org \
--cc=weiyj.lk@gmail.com \
/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;
as well as URLs for NNTP newsgroup(s).