On Fri, Apr 16, 2021 at 2:36 AM Alexey Dobriyan <adobriyan@xxxxxxxxx> wrote: > > Make include/config/foo/bar.h fake deps files generation simpler. > > * delete .h suffix > those aren't header files, shorten filenames, > > * delete tolower() > Linux filesystems can deal with both upper and lowercase > filenames very well, > > * put everything in 1 directory > Presumably 'mkdir -p' split is from dark times when filesystems > handled huge directories badly, disks were round adding to > seek times. > > x86_64 allmodconfig lists 12364 files in include/config. > > ../obj/include/config/ > ├── 104_QUAD_8 > ├── 60XX_WDT > ├── 64BIT > ... > ├── ZSWAP_DEFAULT_ON > ├── ZSWAP_ZPOOL_DEFAULT > └── ZSWAP_ZPOOL_DEFAULT_ZBUD > > 0 directories, 12364 files > > Signed-off-by: Alexey Dobriyan <adobriyan@xxxxxxxxx> > --- > > include/linux/compiler-version.h | 2 +- > init/Kconfig | 2 +- > kernel/gen_kheaders.sh | 2 +- > scripts/Makefile.build | 4 ++-- > scripts/basic/fixdep.c | 39 ++++----------------------------------- > scripts/kconfig/confdata.c | 15 +++++---------- > 6 files changed, 14 insertions(+), 50 deletions(-) > > --- a/include/linux/compiler-version.h > +++ b/include/linux/compiler-version.h > @@ -9,6 +9,6 @@ > * This header exists to force full rebuild when the compiler is upgraded. > * > * When fixdep scans this, it will find this string "CONFIG_CC_VERSION_TEXT" > - * and add dependency on include/config/cc/version/text.h, which is touched > + * and add dependency on include/config/CC_VERSION_TEXT, which is touched > * by Kconfig when the version string from the compiler changes. > */ > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -21,7 +21,7 @@ config CC_VERSION_TEXT > > - Ensure full rebuild when the compiler is updated > include/linux/compiler-version.h contains this option in the comment > - line so fixdep adds include/config/cc/version/text.h into the > + line so fixdep adds include/config/CC_VERSION_TEXT into the > auto-generated dependency. When the compiler is updated, syncconfig > will touch it and then every file will be rebuilt. > > --- a/kernel/gen_kheaders.sh > +++ b/kernel/gen_kheaders.sh > @@ -36,7 +36,7 @@ all_dirs="$all_dirs $dir_list" > # > # When Kconfig regenerates include/generated/autoconf.h, its timestamp is > # updated, but the contents might be still the same. When any CONFIG option is > -# changed, Kconfig touches the corresponding timestamp file include/config/*.h. > +# changed, Kconfig touches the corresponding timestamp file include/config/*. > # Hence, the md5sum detects the configuration change anyway. We do not need to > # check include/generated/autoconf.h explicitly. > # > --- a/scripts/Makefile.build > +++ b/scripts/Makefile.build > @@ -238,8 +238,8 @@ endif # CONFIG_STACK_VALIDATION > > # Rebuild all objects when objtool changes, or is enabled/disabled. > objtool_dep = $(objtool_obj) \ > - $(wildcard include/config/orc/unwinder.h \ > - include/config/stack/validation.h) > + $(wildcard include/config/ORC_UNWINDER \ > + include/config/STACK_VALIDATION) > > ifdef CONFIG_TRIM_UNUSED_KSYMS > cmd_gen_ksymdeps = \ > --- a/scripts/basic/fixdep.c > +++ b/scripts/basic/fixdep.c > @@ -34,7 +34,7 @@ > * the config symbols are rebuilt. > * > * So if the user changes his CONFIG_HIS_DRIVER option, only the objects > - * which depend on "include/config/his/driver.h" will be rebuilt, > + * which depend on "include/config/HIS_DRIVER" will be rebuilt, > * so most likely only his driver ;-) > * > * The idea above dates, by the way, back to Michael E Chastain, AFAIK. > @@ -74,7 +74,7 @@ > * > * and then basically copies the .<target>.d file to stdout, in the > * process filtering out the dependency on autoconf.h and adding > - * dependencies on include/config/my/option.h for every > + * dependencies on include/config/MY_OPTION for every > * CONFIG_MY_OPTION encountered in any of the prerequisites. > * > * We don't even try to really parse the header files, but > @@ -124,38 +124,6 @@ static void xprintf(const char *format, ...) > va_end(ap); > } > > -static void xputchar(int c) > -{ > - int ret; > - > - ret = putchar(c); > - if (ret == EOF) { > - perror("fixdep"); > - exit(1); > - } > -} > - Applied to linux-kbuild. I just found one more minor thing to fix up. fixdep no longer calls putchar(), so I squashed the following: diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c index 5bee6a80992f..44e887cff49b 100644 --- a/scripts/basic/fixdep.c +++ b/scripts/basic/fixdep.c @@ -107,8 +107,8 @@ static void usage(void) /* * In the intended usage of this program, the stdout is redirected to .*.cmd - * files. The return value of printf() and putchar() must be checked to catch - * any error, e.g. "No space left on device". + * files. The return value of printf() must be checked to catch any error, + * e.g. "No space left on device". */ static void xprintf(const char *format, ...) { -- Best Regards Masahiro Yamada