kconfig.h fix extraneous dependencies
RFC PATCH 1/1 kconfig.h fix extraneous dependencies
The introduction of kconfig.h caused fixdep to create three extraneous dependencies.include/config/.hinclude/config/h.hinclude/config/foo.h
Remove them by eliminating instances of CONFIG_
---
Suggestions for a better replacement for CONFIG_FOO would be appreciated.
include/linux/kconfig.h +8 -8
@@ -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 */
Hi,
Quoted 8 lines · Peter Foley
The introduction of
kconfig.hcaused fixdep to create three extraneous dependencies.include/config/.hinclude/config/h.hinclude/config/foo.hRemove them by eliminating instances of
CONFIG_
this seems ugly to me... I would rather try to fix fixdep, no ?
- Arnaud
Quoted 51 lines
Signed-off-by Peter Foley <[email protected]>---
Suggestions for a better replacement for
CONFIG_FOOwould be appreciated.include/linux/kconfig.h +8
-8@@ -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 */
Quoted 9 lines · Arnaud Lacombe
Hi,
Quoted 6 lines · Peter Foley
The introduction of
kconfig.hcaused fixdep to create three extraneous dependencies.include/config/.hinclude/config/h.hinclude/config/foo.h
Quoted 5 lines
Quoted 2 lines
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
Quoted 8 lines · Peter Foley
Quoted 7 lines · Arnaud Lacombe
Quoted 6 lines · Peter Foley
The introduction of
kconfig.hcaused fixdep to create three extraneous dependencies.include/config/.hinclude/config/h.hinclude/config/foo.h
Quoted 8 lines
Quoted 5 lines
Quoted 2 lines
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.cthis 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.
Quoted 3 lines
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
PATCH v2 1/1 kconfig.h fix extraneous dependencies
The introduction of include/linux/kconfig.h created 3 extraneous dependencies:include/config/.hinclude/config/h.hinclude/config/foo.h
Fix this by excluding kconfig.h from fixdep calculations.
---
scripts/basic/fixdep.c +1 -0
@@ -345,6 +345,7 @@ static void parse_dep_file(void *map, size_t len)memcpy (s, m, p-m); s[p-m] =0 ;if (strrcmp (s,"include/generated/autoconf.h" ) &&strrcmp (s,"arch/um/include/uml-config.h" ) && +strrcmp (s,"include/linux/kconfig.h" ) &&strrcmp (s,".ver" )) {/* * Do not list the source file as dependency, so that
Quoted 9 lines · Peter Foley
The introduction of
include/linux/kconfig.hcreated 3 extraneous dependencies:include/config/.hinclude/config/h.hinclude/config/foo.hFix this by excluding
kconfig.hfrom fixdep calculations.Signed-off-by Peter Foley <[email protected]>
Applied to kbuild-2.6.git#kbuild.
Michal