diff mbox

[RFC] kconfig.h fix extraneous dependencies

Message ID alpine.LNX.2.00.1107311812460.62769@linux (mailing list archive)
State New, archived
Headers show

Commit Message

Peter Foley Aug. 1, 2011, 12:36 a.m. UTC
The introduction of kconfig.h caused fixdep to create three extraneous 
dependencies.
include/config/.h
include/config/h.h
include/config/foo.h

Remove them by eliminating instances of CONFIG_

Signed-off-by: Peter Foley <pefoley2@verizon.net>
---

Suggestions for a better replacement for CONFIG_FOO would be appreciated.

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Arnaud Lacombe Aug. 1, 2011, 12:53 a.m. UTC | #1
Hi,

On Sun, Jul 31, 2011 at 8:36 PM, Peter Foley <pefoley2@verizon.net> wrote:
> The introduction of kconfig.h caused fixdep to create three extraneous
> dependencies.
> include/config/.h
> include/config/h.h
> include/config/foo.h
>
> Remove them by eliminating instances of CONFIG_
>
this seems ugly to me... I would rather try to fix fixdep, no ?

 - Arnaud

> Signed-off-by: Peter Foley <pefoley2@verizon.net>
> ---
>
> Suggestions for a better replacement for CONFIG_FOO would be appreciated.
>
> diff --git a/include/linux/kconfig.h b/include/linux/kconfig.h
> index 067eda0..66a0659 100644
> --- a/include/linux/kconfig.h
> +++ b/include/linux/kconfig.h
> @@ -1,15 +1,15 @@
> -#ifndef __LINUX_KCONFIG_H
> -#define __LINUX_KCONFIG_H
> +#ifndef __LINUX_KCONFIG
> +#define __LINUX_KCONFIG
>
>  #include <generated/autoconf.h>
>
>  /*
> - * Helper macros to use CONFIG_ options in C expressions. Note that
> + * Helper macros to use CONFIG options in C expressions. Note that
>  * these only work with boolean and tristate options.
>  */
>
>  /*
> - * IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',
> + * IS_ENABLED(CONFIG _FOO) evaluates to 1 if CONFIG _FOO is set to 'y' or 'm',
>  * 0 otherwise.
>  *
>  */
> @@ -17,16 +17,16 @@
>        (__enabled_ ## option || __enabled_ ## option ## _MODULE)
>
>  /*
> - * IS_BUILTIN(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y', 0
> + * IS_BUILTIN(CONFIG _FOO) evaluates to 1 if CONFIG _FOO is set to 'y', 0
>  * otherwise. For boolean options, this is equivalent to
> - * IS_ENABLED(CONFIG_FOO).
> + * IS_ENABLED(CONFIG _FOO).
>  */
>  #define IS_BUILTIN(option) __enabled_ ## option
>
>  /*
> - * IS_MODULE(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'm', 0
> + * IS_MODULE(CONFIG _FOO) evaluates to 1 if CONFIG _FOO is set to 'm', 0
>  * otherwise.
>  */
>  #define IS_MODULE(option) __enabled_ ## option ## _MODULE
>
> -#endif /* __LINUX_KCONFIG_H */
> +#endif /* __LINUX_KCONFIG */
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Peter Foley Aug. 1, 2011, 1:16 a.m. UTC | #2
On Sun, 31 Jul 2011, Arnaud Lacombe wrote:

> Hi,
> 
> On Sun, Jul 31, 2011 at 8:36 PM, Peter Foley <pefoley2@verizon.net> wrote:
> > The introduction of kconfig.h caused fixdep to create three extraneous
> > dependencies.
> > include/config/.h
> > include/config/h.h
> > include/config/foo.h
> >
> > Remove them by eliminating instances of CONFIG_
> >
> this seems ugly to me... I would rather try to fix fixdep, no ?
> 
>  - Arnaud

I'd be the first to admit that this patch is a ugly hack.
However, judging by the comments in fixdep.c this is expected behavior.
I'm also afraid that changing fixdep to ignore comments would slow down 
the whole build for the sake of one file which IMHO dosen't seem to be a 
worthwhile tradeoff. 

Thanks,

Peter
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michal Marek Aug. 1, 2011, 9:24 a.m. UTC | #3
On 1.8.2011 03:16, Peter Foley wrote:
> On Sun, 31 Jul 2011, Arnaud Lacombe wrote:
>> On Sun, Jul 31, 2011 at 8:36 PM, Peter Foley<pefoley2@verizon.net>  wrote:
>>> The introduction of kconfig.h caused fixdep to create three extraneous
>>> dependencies.
>>> include/config/.h
>>> include/config/h.h
>>> include/config/foo.h
>>>
>>> Remove them by eliminating instances of CONFIG_
>>>
>> this seems ugly to me... I would rather try to fix fixdep, no ?
>>
>>   - Arnaud
>
> I'd be the first to admit that this patch is a ugly hack.
> However, judging by the comments in fixdep.c this is expected behavior.

And it's also harmless, the source contains thousands of false matches:
$ git grep '_CONFIG_' | wc -l
7989
e.g anything that includes include/linux/acpi.h gets a false dependency 
on include/config/support.h because of
include/linux/acpi.h:#define OSC_EXT_PCI_CONFIG_SUPPORT         1
but it doesn't matter.


> I'm also afraid that changing fixdep to ignore comments would slow down
> the whole build for the sake of one file which IMHO dosen't seem to be a
> worthwhile tradeoff.

I would take a patch that makes fixdep ignore include/linux/kconfig.h, 
like it ignores include/generated/kconfig.h. Anything more advanced 
isn't worth the effort, IMO.

Michal
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/linux/kconfig.h b/include/linux/kconfig.h
index 067eda0..66a0659 100644
--- a/include/linux/kconfig.h
+++ b/include/linux/kconfig.h
@@ -1,15 +1,15 @@ 
-#ifndef __LINUX_KCONFIG_H
-#define __LINUX_KCONFIG_H
+#ifndef __LINUX_KCONFIG
+#define __LINUX_KCONFIG
 
 #include <generated/autoconf.h>
 
 /*
- * Helper macros to use CONFIG_ options in C expressions. Note that
+ * Helper macros to use CONFIG options in C expressions. Note that
  * these only work with boolean and tristate options.
  */
 
 /*
- * IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',
+ * IS_ENABLED(CONFIG _FOO) evaluates to 1 if CONFIG _FOO is set to 'y' or 'm',
  * 0 otherwise.
  *
  */
@@ -17,16 +17,16 @@ 
 	(__enabled_ ## option || __enabled_ ## option ## _MODULE)
 
 /*
- * IS_BUILTIN(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y', 0
+ * IS_BUILTIN(CONFIG _FOO) evaluates to 1 if CONFIG _FOO is set to 'y', 0
  * otherwise. For boolean options, this is equivalent to
- * IS_ENABLED(CONFIG_FOO).
+ * IS_ENABLED(CONFIG _FOO).
  */
 #define IS_BUILTIN(option) __enabled_ ## option
 
 /*
- * IS_MODULE(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'm', 0
+ * IS_MODULE(CONFIG _FOO) evaluates to 1 if CONFIG _FOO is set to 'm', 0
  * otherwise.
  */
 #define IS_MODULE(option) __enabled_ ## option ## _MODULE
 
-#endif /* __LINUX_KCONFIG_H */
+#endif /* __LINUX_KCONFIG */