Re: [PATCH 0/2] objtool: a couple of minor fixes

From: Josh Poimboeuf
Date: Wed Oct 26 2016 - 09:18:19 EST


On Wed, Oct 26, 2016 at 07:43:41AM -0500, Josh Poimboeuf wrote:
> On Wed, Oct 26, 2016 at 07:37:39AM -0500, Josh Poimboeuf wrote:
> > On Wed, Oct 26, 2016 at 09:58:29AM +0200, Arnd Bergmann wrote:
> > > On Thursday, October 13, 2016 4:22:51 PM CEST Josh Poimboeuf wrote:
> > > > Fix a couple of issues:
> > > >
> > > > - fix a false positive warning related to switch statement jump tables
> > > > - get rid of useless "unreachable instruction" warnings for gcov kernels
> > > >
> > > > Josh Poimboeuf (2):
> > > > objtool: improve rare switch jump table pattern detection
> > > > objtool: skip all "unreachable instruction" warnings for gcov kernels
> > > >
> > > > tools/objtool/builtin-check.c | 68 ++++++++++++++++++++++---------------------
> > > > 1 file changed, 35 insertions(+), 33 deletions(-)
> > >
> > > I got another warning today with linux-next, but have not looked into it:
> > >
> > > drivers/infiniband/sw/rxe/rxe_comp.o: warning: objtool: rxe_completer()+0x315: sibling call from callable instruction with changed frame pointer
> > >
> > > .config and object file attached.
> >
> > I think this is the same as one of the warnings you reported before (for
> > which I opened the gcc bug):
> >
> > https://lkml.kernel.org/r/1855683.1QnG4Fe4Hq@wuerfel
>
> Er, scratch that. Actually this is similar to one I supposedly fixed
> with commit 3732710ff6f2ce2b1b7f044937a422b717d4f953. And the other
> warning looks similar. Will take a look.

As it turns out, this one is a simple fix to the above mentioned commit.

But as for the other warning... the code generation is just crazy.
It's another issue with switch statement jump tables, which as it turns
out are really hard to detect.

I may ask the gcc folks for help. If they could mark the jump tables
somehow, like maybe associating them with ELF symbols, it would make
objtool's life (and mine!) so much easier.

--
Josh