Re: [tip: objtool/urgent] objtool: Fix seg fault with Clang non-section symbols

From: Josh Poimboeuf
Date: Fri Feb 12 2021 - 12:09:40 EST


On Fri, Feb 12, 2021 at 04:30:49PM +0100, Greg Kroah-Hartman wrote:
> On Thu, Feb 11, 2021 at 10:46:05AM -0800, Nick Desaulniers wrote:
> > On Thu, Feb 11, 2021 at 5:55 AM Greg Kroah-Hartman
> > <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> > >
> > > On Thu, Feb 11, 2021 at 09:32:03PM +0800, Xi Ruoyao wrote:
> > > > Hi all,
> > > >
> > > > The latest GNU assembler (binutils-2.36.1) is removing unused section symbols
> > > > like Clang [1]. So linux-5.10.15 can't be built with binutils-2.36.1 now. It
> > > > has been reported as https://bugzilla.kernel.org/show_bug.cgi?id=211693.
> >
> > Xi,
> > Happy Lunar New Year to you, too, and thanks for the report. Did you
> > observe such segfaults for older branches of stable?
> >
> > > 2.36 of binutils fails to build the 4.4.y tree right now as well, but as
> > > objtool isn't there, I don't know what to do about it :(
> >
> > Greg,
> > There may be multiple issues in the latest binutils release for the
> > kernel; we should still avoid segfaults in host tools so I do
> > recommend considering this patch for inclusion at least into 5.10.y.
> > Arnd's report in https://github.com/ClangBuiltLinux/linux/issues/1207
> > mentions this was found via randconfig testing, so likely some set of
> > configs is needed to reproduce reliably.
> >
> > Do you have more info about the failure you're observing? Trolling
> > lore, I only see:
> > https://lore.kernel.org/stable/YCLeJcQFsDIsrAEc@xxxxxxxxx/
> > (Maybe it was reported on a different list; I only searched stable ML).
>
> I didn't report it anywhere.
>
> Here's the output of doing a 'make allmodconfig' on the latest 4.4.257
> release failing with binutils 2.36
>
> Cannot find symbol for section 8: .text.unlikely.
> kernel/kexec_file.o: failed
> make[1]: *** [scripts/Makefile.build:277: kernel/kexec_file.o] Error 1
> make[1]: *** Deleting file 'kernel/kexec_file.o'
> make[1]: *** Waiting for unfinished jobs....
>
> 4.9.257 works fine, probably because we are using objtool?
>
> Any ideas are appreciated.

[ Adding Steve Rostedt ]

This error message comes from recordmcount. It probably can't handle
the missing STT_SECTION symbols which are getting stripped by the new
binutils. (Objtool also had trouble with that.)

No idea why you only see this on 4.4 though.

--
Josh