Hi, I've moved this discussion to kernel newbies as Robert suggested. On 2007-11-21 01:16:37 (-0800), Max <maxw_gcc@xxxxxxxxx> wrote: > Is it the same to comment out a variable in .config than assigning 'N' to it? No and yes. I guess that doesn't help, so I'll try the long answer: The .config file is generated by kconfig and parsed by Make. That means there's a difference between "CONFIG_TEST = N" and "#CONFIG_TEST is not set". However, the CONFIG_ variables are usually used as "obj-$(CONFIG_TEST)". The kernel makefiles don't add obj-n to the list of files to build, so nothing is done for those variables. > Also could somebody explain the big picture of how does the kernel > configuration/build process treats the commented out variables in > .config? They're ignored, just like all commented out lines are ignored in a Makefile. > Or even more general: > > Could anybody please help me in understanding the main picture of how a .config variable gets #define'd or #undefine'd in the kernel > header files? That's actually done by kconfig. It generates the .config file (based on user choices or defaults) but it also generates include/linux/autoconf.h. That header file does "#define CONFIG_TEST". It will also touch include/config/test so the build system can be clever when rebuilding. It allows the system to avoid rebuilding everything which includes autoconf.h when the configuration is updated. The system will replace the dependency on autoconf.h with a dependency on config/test. Kconfig will only touch (update) the config/test file if the value of CONFIG_TEST changed. That way only files which actually use CONFIG_TEST will be rebuilt. Kristof
Attachment:
pgpfbzRgrkYm2.pgp
Description: PGP signature