Re: [PATCH] kbuild: error for CONFIG_ORC_UNWINDER is too much

From: Josh Poimboeuf
Date: Mon Dec 17 2018 - 12:49:43 EST


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?

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.

--
Josh