From: Rusty Russell <rusty@rustcorp.com.au>
To: "Randy.Dunlap" <rddunlap@osdl.org>
Cc: torvalds@transmeta.com, rth@twiddle.net,
linux-kernel@vger.kernel.org, kai@tp1.ruhr-uni-bochum.de,
"Milton D. Miller II" <miltonm@realtime.net>
Subject: Re: [PATCH] eliminate warnings in generated module files
Date: Wed, 26 Feb 2003 15:08:26 +1100 [thread overview]
Message-ID: <20030226041359.C92F52C05D@lists.samba.org> (raw)
In-Reply-To: Your message of "Tue, 25 Feb 2003 19:35:58 -0800." <1707.4.64.238.61.1046230558.squirrel@www.osdl.org>
In message <1707.4.64.238.61.1046230558.squirrel@www.osdl.org> you write:
> I have to agree with Kai and Milton Miller on this (bad) naming.
> __required and __optional don't generate the corrent connotations
> of what is being attempted here.
The problem with "used" is that you're saying "compiler, treat this as
used, so you don't discard it".
The level of indirection seems completely natural to compiler people,
but as a coder I just want to say "don't discard this", hence "__keep"
is good.
OTOH, __optional is fairly clearly "you can drop it". "Unused" is
clearly a lie for some configurations.
Here's Take III:
Name: __keep and __optional attributes
Author: Rusty Russell
Status: Trivial
D: Renames __attribute_used to __keep, and introduces __optional.
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .25651-linux-2.5.63/include/linux/compiler.h .25651-linux-2.5.63.updated/include/linux/compiler.h
--- .25651-linux-2.5.63/include/linux/compiler.h 2003-02-25 10:11:08.000000000 +1100
+++ .25651-linux-2.5.63.updated/include/linux/compiler.h 2003-02-25 22:34:49.000000000 +1100
@@ -37,10 +37,11 @@
* would be warned about except with attribute((unused)).
*/
#if __GNUC__ == 3 && __GNUC_MINOR__ >= 3 || __GNUC__ > 3
-#define __attribute_used__ __attribute__((__used__))
+#define __keep __attribute__((__used__))
#else
-#define __attribute_used__ __attribute__((__unused__))
+#define __keep __attribute__((__unused__))
#endif
+#define __optional __attribute__((__unused__))
/* This macro obfuscates arithmetic on a variable address so that gcc
shouldn't recognize the original var, and make assumptions about it */
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .25651-linux-2.5.63/scripts/modpost.c .25651-linux-2.5.63.updated/scripts/modpost.c
--- .25651-linux-2.5.63/scripts/modpost.c 2003-02-25 10:11:14.000000000 +1100
+++ .25651-linux-2.5.63.updated/scripts/modpost.c 2003-02-25 22:34:10.000000000 +1100
@@ -450,7 +450,7 @@ add_depends(struct buffer *b, struct mod
buf_printf(b, "\n");
buf_printf(b, "static const char __module_depends[]\n");
- buf_printf(b, "__attribute_used__\n");
+ buf_printf(b, "__keep\n");
buf_printf(b, "__attribute__((section(\".modinfo\"))) =\n");
buf_printf(b, "\"depends=");
for (s = mod->unres; s; s = s->next) {
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
next prev parent reply other threads:[~2003-02-26 4:03 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-19 2:43 [PATCH] eliminate warnings in generated module files Richard Henderson
2003-02-19 3:29 ` Linus Torvalds
2003-02-19 3:43 ` Richard Henderson
2003-02-19 5:16 ` Linus Torvalds
2003-02-19 6:16 ` Richard Henderson
2003-02-19 20:11 ` Kai Germaschewski
2003-02-19 21:05 ` Richard Henderson
2003-02-20 0:01 ` Rusty Russell
2003-02-19 23:41 ` Chris Wedgwood
2003-02-25 4:32 ` Rusty Russell
2003-02-25 7:58 ` Richard Henderson
2003-02-25 11:39 ` Rusty Russell
2003-02-25 23:47 ` Linus Torvalds
2003-02-26 1:22 ` Rusty Russell
2003-02-26 1:36 ` Kai Germaschewski
2003-02-26 4:13 ` Rusty Russell
2003-02-26 17:02 ` Horst von Brand
2003-02-26 17:04 ` Richard Henderson
2003-02-26 3:35 ` Randy.Dunlap
2003-02-26 4:08 ` Rusty Russell [this message]
2003-02-26 13:45 ` Werner Almesberger
2003-02-25 21:42 ` Chris Wedgwood
-- strict thread matches above, loose matches on Subject: below --
2003-02-26 2:23 Milton D. Miller II
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=20030226041359.C92F52C05D@lists.samba.org \
--to=rusty@rustcorp.com.au \
--cc=kai@tp1.ruhr-uni-bochum.de \
--cc=linux-kernel@vger.kernel.org \
--cc=miltonm@realtime.net \
--cc=rddunlap@osdl.org \
--cc=rth@twiddle.net \
--cc=torvalds@transmeta.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