Re: [Regression 4.15] Can't kill CONFIG_UNWINDER_ORC with fire or plague.
From: Paul Gortmaker
Date: Sun Dec 16 2018 - 16:44:45 EST
[Re: [Regression 4.15] Can't kill CONFIG_UNWINDER_ORC with fire or plague.] On 29/12/2017 (Fri 13:18) Paul Gortmaker wrote:
> [Re: [Regression 4.15] Can't kill CONFIG_UNWINDER_ORC with fire or plague.] On 29/12/2017 (Fri 10:47) Josh Poimboeuf wrote:
> > This seems to be related to a kconfig quirk where only silentoldconfig
> > updates the include/config/auto.conf file. The other config targets
> > (oldconfig, defconfig, etc) don't touch it. It seems intentional, but I
> > have no idea why.
> > That causes the Makefile to get stale data for 'CONFIG_*' variables when
> > it includes auto.conf. So I don't think this is specific to the ORC
> > check. It seems like it could also cause bugs elsewhere.
> OK, good - you agree with my initial diagnosis of stale auto.conf then.
> Not sure what Randy was testing when he said he couldn't reproduce it.
> > The below (ugly) patch fixes it, though I'm not sure this is the best
> > way to do it. We probably need Masahiro or Michal to chime in here.
> Yep, that is why I intentionally put the kbuild folks on the To/Cc of
> the original report (and ran away screaming at the prospect of debugging
> Makefiles on xmas day). But with holidays and all, it might not be
> until early January before they have a chance to reply.
It is nearly a year later and we still have this false positive.
paul@sm:~/git/linux-head$ make -j12 > /dev/null
Makefile:966: *** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y,
please install libelf-dev, libelf-devel or elfutils-libelf-devel". Stop.
paul@sm:~/git/linux-head$ grep UNWINDER_ORC .config
# CONFIG_UNWINDER_ORC is not set
We do know a bit more now -- the auto.conf issue has been independently
confirmed and "fixed" for other subsystems/issues since, like RETPOLINE:
Author: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Date: Wed Dec 5 15:27:19 2018 +0900
x86/build: Fix compiler support check for CONFIG_RETPOLINE
It is troublesome to add a diagnostic like this to the Makefile
parse stage because the top-level Makefile could be parsed with
a stale include/config/auto.conf.
Once you are hit by the error about non-retpoline compiler, the
compilation still breaks even after disabling CONFIG_RETPOLINE.
I'm not sure if we want to treat this on a per config option each time
again and again, or undertake a more global kbuild approach, but it does
warrant a mention and a re-examination before we "solve" this again.