public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Paul Gortmaker <paul.gortmaker@windriver.com>
To: Randy Dunlap <rdunlap@infradead.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>,
	Ingo Molnar <mingo@kernel.org>,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	Michal Marek <michal.lkml@markovi.net>,
	<linux-kbuild@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [Regression 4.15] Can't kill CONFIG_UNWINDER_ORC with fire or plague.
Date: Thu, 28 Dec 2017 21:13:24 -0500	[thread overview]
Message-ID: <20171229021323.GF10431@windriver.com> (raw)
In-Reply-To: <d053e6df-ed00-2a02-eb27-4287b7549276@infradead.org>

[Re: [Regression 4.15] Can't kill CONFIG_UNWINDER_ORC with fire or plague.] On 28/12/2017 (Thu 11:29) Randy Dunlap wrote:

> On 12/25/2017 08:30 PM, Paul Gortmaker wrote:
> > There is a regression new to 4.15 that happens in a rather common
> > workflow which results in the frustrating situation where the user has
> > clearly disabled UNWINDER_ORC in their ".config" file, and yet they
> > still get the immediate false error saying they need libelf-dev since
> > "CONFIG_UNWINDER_ORC=y" is still set, and hence they can not build.
> > 
> > The regression requires UNWINDER_ORC=y (now the default in commit
> > fc72ae40e303) followed by the user subsequently disabling it, which is
> > common if the user doesn't have libelf-dev and doesn't care about ORC.
> > 
> > This happens because the recently added test in the top level Makefile
> > assumes that ,config data will be mapped into include/config/auto.conf
> > either by the end user running "make oldconfig" or the Makefile itself
> > detecting that "silentoldconfig" should be run.  As the simple
> > reproducer below shows, this clearly does not happen as expected.
> > 
> > Note that the test for CONFIG_STACK_VALIDATION and libelf-dev in the
> > same place in the Makefile is broken in the same way, but since it is a
> > warning and not an error, nobody cared about the bogus false positives.
> 
> Yeah, that's odd.
> 
> > Since there is no way I'm going to debug Makefile stuff on Christmas
> > Day, I figured that I should at least report it intstead.  The work
> > around is to save your .config and run a "make distclean" or manually
> > clobber the stale include/config/auto.conf or similar.  But a frustrated
> > user wouldn't know that w/o the root cause...
> > 
> 
> I have tried to reproduce this multiple times but cannot do so.
> It remains with:
> 
> > grep UNWINDER .config
> # CONFIG_UNWINDER_ORC is not set
> CONFIG_UNWINDER_FRAME_POINTER=y

As it should.  Please re-read the reproducer and the above.  The data in
the .config is exactly as it should be.  The include/config/auto.conf
having stale data with ORC still listed as enabled is the issue.

Also note you need a machine with libelf-dev not installed, at the risk
of stating the obvious.

Paul.
--

> 
> > 
> >     --------------------- reproducer ------------------------
> > 
> > paul@gw:~/git/linux-head$ git describe 
> > v4.15-rc5
> > paul@gw:~/git/linux-head$ make distclean 
> > paul@gw:~/git/linux-head$ make defconfig
> >   HOSTCC  scripts/basic/fixdep
> >   HOSTCC  scripts/kconfig/conf.o
> >   SHIPPED scripts/kconfig/zconf.tab.c
> >   SHIPPED scripts/kconfig/zconf.lex.c
> >   HOSTCC  scripts/kconfig/zconf.tab.o
> >   HOSTLD  scripts/kconfig/conf
> > *** Default configuration is based on 'x86_64_defconfig'
> > #
> > # configuration written to .config
> > #
> > paul@gw:~/git/linux-head$ make
> > scripts/kconfig/conf  --silentoldconfig Kconfig
> > Makefile:926: *** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel".  Stop.
> > paul@gw:~/git/linux-head$ vi .config  # disable ORC in favour of FRAME_POINTER
> > paul@gw:~/git/linux-head$ make oldconfig
> > scripts/kconfig/conf  --oldconfig Kconfig
> > #
> > # configuration written to .config
> > #
> > paul@gw:~/git/linux-head$ grep UNWINDER .config
> > # CONFIG_UNWINDER_ORC is not set
> > CONFIG_UNWINDER_FRAME_POINTER=y
> > paul@gw:~/git/linux-head$ make
> > Makefile:926: *** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel".  Stop.
> > paul@gw:~/git/linux-head$ ls -l .config include/config/auto.conf
> > -rw-rw-r-- 1 paul paul 115953 Dec 25 22:48 .config
> > -rw-rw-r-- 1 paul paul  33069 Dec 25 22:46 include/config/auto.conf
> > paul@gw:~/git/linux-head$ grep UNWINDER include/config/auto.conf
> > CONFIG_UNWINDER_ORC=y
> > paul@gw:~/git/linux-head$ 
> > 
> >     --------------------- reproducer ------------------------
> 
> 
> -- 
> ~Randy

  reply	other threads:[~2017-12-29  2:14 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-26  4:30 [Regression 4.15] Can't kill CONFIG_UNWINDER_ORC with fire or plague Paul Gortmaker
2017-12-28 19:29 ` Randy Dunlap
2017-12-29  2:13   ` Paul Gortmaker [this message]
2017-12-29 16:47     ` Josh Poimboeuf
2017-12-29 18:18       ` Paul Gortmaker
2017-12-29 18:40         ` vcaputo
2018-12-16 21:42         ` Paul Gortmaker
2018-12-18  4:56           ` Masahiro Yamada

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171229021323.GF10431@windriver.com \
    --to=paul.gortmaker@windriver.com \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.lkml@markovi.net \
    --cc=mingo@kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox