* if anyone wants to play with my kernel cleanup scripts ...
@ 2014-09-18 10:57 Robert P. J. Day
2014-09-18 11:13 ` Paul Bolle
0 siblings, 1 reply; 4+ messages in thread
From: Robert P. J. Day @ 2014-09-18 10:57 UTC (permalink / raw)
To: kernelnewbies
... i've been tidying them up a bit and rerunning them to get
up-to-date output as examples:
http://www.crashcourse.ca/wiki/index.php/Kernel_cleanup_scripts
and as i know greg kh follows this list, i thought the following
output from running the "badref" script on drivers/staging was
interesting (it's reproduced on the wiki page as sample output):
>>>>> B4860G100
drivers/staging/gs_fpgaboot/io.c:34:#ifdef CONFIG_B4860G100
drivers/staging/gs_fpgaboot/io.c:36:#endif /* CONFIG_B4860G100 */
drivers/staging/gs_fpgaboot/io.c:95:#ifdef CONFIG_B4860G100
drivers/staging/gs_fpgaboot/io.c:300:#endif /* CONFIG_B4860G100 */
>>>>> FORCE_HARD_FLOAT
drivers/staging/rtl8192u/r8192U_core.c:27:#ifndef CONFIG_FORCE_HARD_FLOAT
>>>>> MACH_EMGR
drivers/staging/emxx_udc/emxx_udc.h:440:#ifdef CONFIG_MACH_EMGR
what the above purportedly shows is that, under the entire
drivers/staging directory, there are three examples of CONFIG_*
variables that are referenced in some way in a source or header file
that are not defined in any Kconfig file in the entire source tree.
it's up to the authors to fix that any way they want, but the
second example ("CONFIG_FORCE_HARD_FLOAT") deserves more explanation.
here's the result of a tree-wide grep:
$ grep -r FORCE_HARD_FLOAT *
drivers/staging/rtl8192u/Makefile:ccflags-y += -DCONFIG_FORCE_HARD_FLOAT=y
drivers/staging/rtl8192u/r8192U_core.c:#ifndef CONFIG_FORCE_HARD_FLOAT
$
so while that variable is not defined in a Kconfig file, it *is*
actually defined as a flag in the associated Makefile, which is a
*no-no* -- the very established tradition is that the variable prefix
"CONFIG_" is reserved for Kconfig variables *only*. if that variable
*used* to be set in a Kconfig file, but was subsequently moved to a
Makefile, tradition suggests the "CONFIG_" prefix should have been
dropped.
anyway, you find all sorts of interesting things scanning the kernel
tree. feel free to play and suggest fixes to those scripts -- i'm sure
they have bugs in them.
rday
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
^ permalink raw reply [flat|nested] 4+ messages in thread
* if anyone wants to play with my kernel cleanup scripts ...
2014-09-18 10:57 if anyone wants to play with my kernel cleanup scripts Robert P. J. Day
@ 2014-09-18 11:13 ` Paul Bolle
2014-09-18 11:57 ` Robert P. J. Day
0 siblings, 1 reply; 4+ messages in thread
From: Paul Bolle @ 2014-09-18 11:13 UTC (permalink / raw)
To: kernelnewbies
On Thu, 2014-09-18 at 06:57 -0400, Robert P. J. Day wrote:
> ... i've been tidying them up a bit and rerunning them to get
> up-to-date output as examples:
>
> http://www.crashcourse.ca/wiki/index.php/Kernel_cleanup_scripts
>
> and as i know greg kh follows this list, i thought the following
> output from running the "badref" script on drivers/staging was
> interesting (it's reproduced on the wiki page as sample output):
>
> >>>>> B4860G100
> drivers/staging/gs_fpgaboot/io.c:34:#ifdef CONFIG_B4860G100
> drivers/staging/gs_fpgaboot/io.c:36:#endif /* CONFIG_B4860G100 */
> drivers/staging/gs_fpgaboot/io.c:95:#ifdef CONFIG_B4860G100
> drivers/staging/gs_fpgaboot/io.c:300:#endif /* CONFIG_B4860G100 */
See linux-next commit 06a3fab941da ("staging: gs_fpgaboot: remove checks
for CONFIG_B4860G100").
> >>>>> FORCE_HARD_FLOAT
> drivers/staging/rtl8192u/r8192U_core.c:27:#ifndef CONFIG_FORCE_HARD_FLOAT
> >>>>> MACH_EMGR
> drivers/staging/emxx_udc/emxx_udc.h:440:#ifdef CONFIG_MACH_EMGR
See linux-next commit 5e5d7443646d ("staging: emxx_udc: remove check for
CONFIG_MACH_EMGR").
> what the above purportedly shows is that, under the entire
> drivers/staging directory, there are three examples of CONFIG_*
> variables that are referenced in some way in a source or header file
> that are not defined in any Kconfig file in the entire source tree.
>
> it's up to the authors to fix that any way they want, but the
> second example ("CONFIG_FORCE_HARD_FLOAT") deserves more explanation.
> here's the result of a tree-wide grep:
>
> $ grep -r FORCE_HARD_FLOAT *
> drivers/staging/rtl8192u/Makefile:ccflags-y += -DCONFIG_FORCE_HARD_FLOAT=y
> drivers/staging/rtl8192u/r8192U_core.c:#ifndef CONFIG_FORCE_HARD_FLOAT
> $
>
> so while that variable is not defined in a Kconfig file, it *is*
> actually defined as a flag in the associated Makefile, which is a
> *no-no* -- the very established tradition is that the variable prefix
> "CONFIG_" is reserved for Kconfig variables *only*. if that variable
> *used* to be set in a Kconfig file, but was subsequently moved to a
> Makefile, tradition suggests the "CONFIG_" prefix should have been
> dropped.
I tend to agree. There are two dozen hits for this:
$ git grep -e -DCONFIG_ next-20140918 | wc -l
24
In total there are only a handful of Kconfig like macros defined like
this. Some of them might be hard to change now. I've never tried.
See also things like:
#define CONFIG_FOO
and:
enum foo {
CONFIG_FOO = 1,
};
I try to holler when a new one of these enters linux-next. Very few
people seems to share this pet peeve.
> anyway, you find all sorts of interesting things scanning the kernel
> tree. feel free to play and suggest fixes to those scripts -- i'm sure
> they have bugs in them.
Paul Bolle
^ permalink raw reply [flat|nested] 4+ messages in thread
* if anyone wants to play with my kernel cleanup scripts ...
2014-09-18 11:13 ` Paul Bolle
@ 2014-09-18 11:57 ` Robert P. J. Day
2014-09-18 12:13 ` Paul Bolle
0 siblings, 1 reply; 4+ messages in thread
From: Robert P. J. Day @ 2014-09-18 11:57 UTC (permalink / raw)
To: kernelnewbies
On Thu, 18 Sep 2014, Paul Bolle wrote:
> On Thu, 2014-09-18 at 06:57 -0400, Robert P. J. Day wrote:
> > ... i've been tidying them up a bit and rerunning them to get
> > up-to-date output as examples:
> >
> > http://www.crashcourse.ca/wiki/index.php/Kernel_cleanup_scripts
> >
> > and as i know greg kh follows this list, i thought the following
> > output from running the "badref" script on drivers/staging was
> > interesting (it's reproduced on the wiki page as sample output):
> >
> > >>>>> B4860G100
> > drivers/staging/gs_fpgaboot/io.c:34:#ifdef CONFIG_B4860G100
> > drivers/staging/gs_fpgaboot/io.c:36:#endif /* CONFIG_B4860G100 */
> > drivers/staging/gs_fpgaboot/io.c:95:#ifdef CONFIG_B4860G100
> > drivers/staging/gs_fpgaboot/io.c:300:#endif /* CONFIG_B4860G100 */
>
> See linux-next commit 06a3fab941da ("staging: gs_fpgaboot: remove checks
> for CONFIG_B4860G100").
>
> > >>>>> FORCE_HARD_FLOAT
> > drivers/staging/rtl8192u/r8192U_core.c:27:#ifndef CONFIG_FORCE_HARD_FLOAT
> > >>>>> MACH_EMGR
> > drivers/staging/emxx_udc/emxx_udc.h:440:#ifdef CONFIG_MACH_EMGR
>
> See linux-next commit 5e5d7443646d ("staging: emxx_udc: remove check for
> CONFIG_MACH_EMGR").
ah, cool ... i was just using random examples from linus' tree. used
to be, the tree was *full* of this sort of thing, now there's way less
of it. progress, baby.
> > it's up to the authors to fix that any way they want, but the
> > second example ("CONFIG_FORCE_HARD_FLOAT") deserves more explanation.
> > here's the result of a tree-wide grep:
> >
> > $ grep -r FORCE_HARD_FLOAT *
> > drivers/staging/rtl8192u/Makefile:ccflags-y += -DCONFIG_FORCE_HARD_FLOAT=y
> > drivers/staging/rtl8192u/r8192U_core.c:#ifndef CONFIG_FORCE_HARD_FLOAT
> > $
> >
> > so while that variable is not defined in a Kconfig file, it *is*
> > actually defined as a flag in the associated Makefile, which is a
> > *no-no* -- the very established tradition is that the variable prefix
> > "CONFIG_" is reserved for Kconfig variables *only*. if that variable
> > *used* to be set in a Kconfig file, but was subsequently moved to a
> > Makefile, tradition suggests the "CONFIG_" prefix should have been
> > dropped.
>
> I tend to agree. There are two dozen hits for this:
> $ git grep -e -DCONFIG_ next-20140918 | wc -l
> 24
>
> In total there are only a handful of Kconfig like macros defined like
> this. Some of them might be hard to change now. I've never tried.
>
> See also things like:
> #define CONFIG_FOO
>
> and:
> enum foo {
> CONFIG_FOO = 1,
> };
>
> I try to holler when a new one of these enters linux-next. Very few
> people seems to share this pet peeve.
i'm pretty sure i had this conversation once upon a time, possibly
on LKML, and the pretty firm consensus is that "CONFIG_" should be
reserved for Kconfig variables, but i don't have a link to it.
rday
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
^ permalink raw reply [flat|nested] 4+ messages in thread
* if anyone wants to play with my kernel cleanup scripts ...
2014-09-18 11:57 ` Robert P. J. Day
@ 2014-09-18 12:13 ` Paul Bolle
0 siblings, 0 replies; 4+ messages in thread
From: Paul Bolle @ 2014-09-18 12:13 UTC (permalink / raw)
To: kernelnewbies
On Thu, 2014-09-18 at 07:57 -0400, Robert P. J. Day wrote:
> On Thu, 18 Sep 2014, Paul Bolle wrote:
> > I try to holler when a new one of these enters linux-next. Very few
> > people seems to share this pet peeve.
>
> i'm pretty sure i had this conversation once upon a time, possibly
> on LKML, and the pretty firm consensus is that "CONFIG_" should be
> reserved for Kconfig variables, but i don't have a link to it.
That "pretty firm consensus" makes sense to me. But please post that
link, in this thread, if you ever stumble on it.
(Side note: I do think the CONFIG_ prefix is too generic.
And I think it would have been easier if the Kconfig symbols themselves
would have kept that prefix. They used to have it in 2.4 and earlier, I
seem to remember. I don't know why that was changed.
But there's little we can do about these two things now , anyhow.)
Paul Bolle
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-09-18 12:13 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-18 10:57 if anyone wants to play with my kernel cleanup scripts Robert P. J. Day
2014-09-18 11:13 ` Paul Bolle
2014-09-18 11:57 ` Robert P. J. Day
2014-09-18 12:13 ` Paul Bolle
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).