Re: [RFC] Objtool toolchain proposal: -fannotate-{jump-table,noreturn}

From: Peter Zijlstra
Date: Wed Sep 14 2022 - 10:02:36 EST


On Wed, Sep 14, 2022 at 01:04:16AM +0100, Josh Poimboeuf wrote:

> > I will mention that objtool's existence is based on mistrust, of persons
> > (not correctly annotating stuff) and of tools (not correctly heeding those
> > annotations). The mistrust in persons is understandable and can be dealt
> > with by tools, but the mistrust in tools can't be fixed by making tools
> > more complicated by emitting even more information; there's no good reason
> > to assume that one piece of info can be trusted more than other pieces.
> > So, if you mistrust the tools you have already lost. That's somewhat
> > philosophical, so I won't beat that horse much more either.
>
> Maybe this is semantics, but I wouldn't characterize objtool's existence
> as being based on the mistrust of tools. It's main motivation is to
> fill in the toolchain's blind spots in asm and inline-asm, which exist
> by design.

That and a fairly deep seated loathing for the regular CFI annotations
and DWARF in general. Linus was fairly firm he didn't want anything to
do with DWARF for in-kernel unwinding.

That left us in a spot that we needed unwind information in a 'better'
format than DWARF.

Objtool was born out of those contraints. ORC not needing the CFI
annotations and ORC being *much* faster at unwiding and generation
(debug builds are slow) were all good.