.config files in Linux kernel directory

In the Linux kernel directory of the openWRT build, what is the difference between .config, .config.old, .config.override, .config.prev, config.target, .config.set?
Am I correct in assuming that .config is the one that gets baked in by the top-level make? The reason I'm asking is that after a top level make, the .config file in the kernel directory has CONFIG_KALLSYMS and CONFIG_DEBUG_INFO disabled despite me enabling those options using 'make kernel_menuconfig'.

This is probably because they're being overriden by the build system as these two symbols are explicitly set or unset by the build system since they have options in the normal menuconfig.

In normal menuconfig, under Global build settings, the option "Collection kernel debug information" sets the kernel symbol CONFIG_DEBUG_INFO.

Then just underneath it is a menu "Kernel build options" and an option labelled "Compile the kernel with symbol table information" which will set CONFIG_KALLSYMS

EDIT: you can look in config/Config-kernel.in to find all these symbols, how they're defined, what their default is and what they depend on.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.