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

From: Greg Kroah-Hartman
Date: Fri Feb 12 2021 - 10:31:47 EST


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.

thanks,

greg k-h