
At present it is hard to see the changes in CONFIG between different commits in a branch. The CONFIG options exist in multiple files and the interaction between Kconfig and the board config files makes it difficult to see exactly what is going on.
This series is an attempt to improve the situation. It is likely to be useful mostly to those who are converting things to Kconfig.
A new .cfg file is generated during a build which includes a list of all preprocessor symbols visible to the source code. This is created for U-Boot, SPL and TPL. Its value is that it shows all CONFIGs that affect the source code, regardless of whether they come from Kconfig or board config headers.
Buildman stores these files as well as the .config and autoconf files when doing a build.
A new -K option allows you to see changes in the contents of these files, for example:
14: dm: Move Raspberry Pi driver model CONFIGs to Kconfig + .config: CONFIG_CMD_DM=y CONFIG_DM=y CONFIG_DM_DEVICE_REMOVE=y CONFIG_DM_GPIO=y CONFIG_DM_SERIAL=y CONFIG_DM_STDIO=y CONFIG_DM_WARN=y - autoconf.mk: CONFIG_CMD_DM=y CONFIG_DM=y CONFIG_DM_DEVICE_REMOVE=y CONFIG_DM_GPIO=y CONFIG_DM_SERIAL=y CONFIG_DM_STDIO=y CONFIG_DM_WARN=y + autoconf.h: CONFIG_CMD_DM=1 CONFIG_DM=1 CONFIG_DM_DEVICE_REMOVE=1 CONFIG_DM_GPIO=1 CONFIG_DM_SERIAL=1 CONFIG_DM_STDIO=1 CONFIG_DM_WARN=1 15: dm: exynos: Move driver model CONFIGs to Kconfig
The above fragment shows that commit 14 added some options to Kconfig and removed them from autoconf. Everything looks fine. If there were any net change in the config, then it would show up in u-boot.cfg, as the following example shows:
23: dm: Kconfig: Move CONFIG_SYS_MALLOC_F_LEN to Kconfig + .config: CONFIG_SYS_MALLOC_F=y CONFIG_SYS_MALLOC_F_LEN=0x400 - autoconf.mk: CONFIG_SYS_MALLOC_F_LEN="(1 << 10)" + autoconf.h: CONFIG_SYS_MALLOC_F=1 CONFIG_SYS_MALLOC_F_LEN=0x400 + u-boot.cfg: CONFIG_SYS_MALLOC_F=1
Here we see (from u-boot.cfg) that a new CONFIG_SYS_MALLOC_F option was added that did not exist before.
The -K option is normally only useful when used with a single board, or a group of related boards.
Simon Glass (6): Create a .cfg file containing the CONFIG options used to build buildman: Add a space before the list of boards buildman: Show 'make' command line when -V is used buildman: Adjust the 'aborted' heuristic for writing output buildman: Store build config files buildman: Allow comparison of build configuration
Makefile | 10 ++- scripts/Makefile.spl | 9 +- tools/buildman/builder.py | 186 +++++++++++++++++++++++++++++++++++++--- tools/buildman/builderthread.py | 62 +++++++++++--- tools/buildman/cmdline.py | 4 +- tools/buildman/control.py | 3 +- tools/buildman/test.py | 2 +- 7 files changed, 244 insertions(+), 32 deletions(-)