Re: [PATCH 08/46] static_call, lto: Mark static keys as __visible

From: Andi Kleen
Date: Mon Nov 14 2022 - 15:34:41 EST


On Mon, Nov 14, 2022 at 04:51:07PM +0100, Peter Zijlstra wrote:
> On Mon, Nov 14, 2022 at 12:43:06PM +0100, Jiri Slaby (SUSE) wrote:
> > From: Andi Kleen <andi@xxxxxxxxxxxxxx>
> >
> > Symbols referenced from assembler (either directly or e.f. from
> > DEFINE_STATIC_KEY()) need to be global and visible in gcc LTO because
> > they could end up in a different object file than the assembler. This
> > can lead to linker errors without this patch.
> >
> > So mark static call functions as __visible, namely static keys here.
>
> Why doesn't llvm-lto need this?

It has an integrated assembler that can feed this information to the LTO
symbol table, while gas cannot do that.

There was some discussion to extend the gcc top level asm syntax to
express external symbols, but so far it doesn't exist.

>
> Also, why am I getting a random selection of the patchset?

Me too.

-Andi