include/config/auto.conf not sync up with .config
From: Qian Cai
Date: Sun Dec 16 2018 - 22:56:48 EST
This bug can be reproduced this way on x86_64.
* make sure none of libelf-dev, libelf-devel or elfutils-libelf-devel installed.
# make distclean
* generate a default .config where CONFIG_UNWINDER_ORC is enabled by default.
# make menuconfig (exit -> save)
# grep CONFIG_UNWINDER_ORC .config
CONFIG_UNWINDER_ORC=y
# make menuconfig (unselect CONFIG_UNWINDER_ORC)
# grep CONFIG_UNWINDER_ORC .config
# CONFIG_UNWINDER_ORC is not set
# make
Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install
libelf-dev, libelf-devel or elfutils-libelf-devel
# grep CONFIG_UNWINDER_ORC include/config/auto.conf
CONFIG_UNWINDER_ORC=y
This is due to this receipe in Makefile had never been executed even though
.config has is more recent than auto.conf.
# The actual configuration files used during the build are
# stored in include/generated/ and include/config/. Update
# them if .config is newer than include/config/auto.conf
#(which mirrors .config).
include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
$(Q)$(MAKE) -f $(srctree)/Makefile syncconfig
Actually, replaced that rule with any rule would never executed the recipe
there, For example,
/tmp/noexist:
$(warning "never print anything")