Re: objtool warning breaks build for fs/dlm/lock.o
From: Josh Poimboeuf
Date: Mon May 18 2020 - 18:53:36 EST
On Mon, May 18, 2020 at 09:57:50PM +0200, Arnd Bergmann wrote:
> On Fri, May 8, 2020 at 1:29 AM Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
> >
> > On Wed, May 06, 2020 at 04:07:25PM +0200, Arnd Bergmann wrote:
> > > Hi,
> > >
> > > During randconfig testing with clang-10 I came across a number
> > > of additional objtool warnings, I'll send another mail about those
> > > when I have collected more information and some object files.
> > >
> > > This one sticks out however, as objtool returns an error code that
> > > stops the build:
> >
> > > fs/dlm/lock.o: warning: objtool: __receive_convert_reply()+0x1e5: can't find jump dest instruction at .text+0xcaa7
> >
> > Thanks for sending the patch for this one. Objtool always gets confused
> > by new compiler versions, I really think we need to revert
> >
> > 644592d32837 ("objtool: Fail the kernel build on fatal errors")
> >
> > because objtool is never going to be reliable enough such that we can be
> > confident that failing the build is the right thing to do.
>
> I'm now struggling with a clang -fintegrated-as related failure:
>
> arch/x86/kernel/ftrace_64.o: warning: objtool: missing symbol for insn at offset 0x16
> make[4]: *** [/git/arm-soc/scripts/Makefile.build:355:
> arch/x86/kernel/ftrace_64.o] Error 255
>
> Using this as a local workaround, but I'd like to find out if this is a bug
> in clang or in objtool:
It seems like an objtool bug, though at first glance I don't know where
exactly. It could be a problem with the rb-tree stuff Peter added
recently.
That instruction should be part of the __fentry__ function:
4: 0000000000000000 165 FUNC GLOBAL DEFAULT 3 __fentry__
So find_symbol_containing() should associate it with __fentry__.
--
Josh