On Mon, 2018-12-17 at 11:49 -0600, Josh Poimboeuf wrote: > On Mon, Dec 17, 2018 at 12:13:59PM -0500, Qian Cai wrote: > > On Mon, 2018-12-17 at 11:03 -0600, Josh Poimboeuf wrote: > > > On Mon, Dec 17, 2018 at 11:17:28AM -0500, Qian Cai wrote: > > > > Since ifdef will be evaluated immediately in the first phrase of the > > > > Makefile read-in, there is no guarantee that the value for > > > > CONFIG_ORC_UNWINDER will be up-to-date until in the second phrase that > > > > this recipe is ran. > > > > > > > > include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd > > > > $(Q)$(MAKE) -f $(srctree)/Makefile syncconfig > > > > > > > > Hence, change error to warning as this is essentially a best guess. The > > > > original bug can be reproduced this way, > > > > > > But this still doesn't fix the root of the problem, that the check > > > relies on a stale auto.conf. > > > > > > > Yes, but it at least let people to be able to continue compiling kernel > > without > > prematurely being terminated incorrectly. The good thing is that that check > > will > > be triggered again to print out the right message once auto.conf has been > > synced > > up. > > > > # make > > Makefile:966: "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, > > please > > install libelf-dev, libelf-devel or elfutils-libelf-devel" > > HOSTCC scripts/kconfig/conf.o > > HOSTLD scripts/kconfig/conf > > scripts/kconfig/conf --syncconfig Kconfig > > Makefile:968: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf- > > dev, > > libelf-devel or elfutils-libelf-devel" > > Instead of giving false (or silent) warnings, why not just fix the real > problem? The purpose of this patch here is to fix or revert the regression introduced by 3dd40cb320f (objtool: Upgrade libelf-devel warning to error for CONFIG_ORC_UNWINDER). > > Also the error exists for a reason: if the user misses the warning then > the ORC unwinder is broken and oops stack dumps are much less useful. > This is a separate issue. I am all ears if anyone has a better ideal to fix both issues at the same time.