Re: [PATCH 1/2] modpost: don't add warnings for LTO-generated symbols

From: Andi Kleen
Date: Mon Feb 05 2018 - 10:50:30 EST


On Mon, Feb 05, 2018 at 04:12:52PM +0100, Arnd Bergmann wrote:
> WARNING: vmlinux.o(.data+0x12e0): Section mismatch in reference from the variable pfkey_net_ops.lto_priv.2992 to the function .init.text:pfkey_net_init.lto_priv.2977()
> The variable pfkey_net_ops.lto_priv.2992 references
> the function __init pfkey_net_init.lto_priv.2977()
> If the reference is valid then annotate the
> variable with __init* or __refdata (see linux/init.h) or name the variable:
> *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console

A better fix would be to ensure modpost always runs on already LD_FINALed
objects, so it never sees LTO.

Otherwise you would need to teach modpost about the LTO symbol table
and some other magic. I did that once, but it turned out to be very
ugly.

-Andi