Re: [PATCH 17/17] lto, module: Warn about modules that are not fully LTOed

From: Rusty Russell
Date: Wed Feb 12 2014 - 20:24:25 EST


Andi Kleen <ak@xxxxxxxxxxxxxxx> writes:
> When __gnu_lto_* is present that means that the module hasn't run with
> LTO yet.

In practice, this means they didn't build their kernel properly, right?
It shouldn't break anything, but it seems really weird. And how many
times will the prink fire on a single module?

Seems like a job for pr_warn?

Thanks,
Rusty.

> ---
> kernel/module.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/module.c b/kernel/module.c
> index b99e801..2052155 100644
> --- a/kernel/module.c
> +++ b/kernel/module.c
> @@ -1949,8 +1949,11 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
> switch (sym[i].st_shndx) {
> case SHN_COMMON:
> /* Ignore common symbols */
> - if (!strncmp(name, "__gnu_lto", 9))
> + if (!strncmp(name, "__gnu_lto", 9)) {
> + printk("%s: module not link time optimized\n",
> + mod->name);
> break;
> + }
>
> /* We compiled with -fno-common. These are not
> supposed to happen. */
> --
> 1.8.5.2
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/