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

From: Andi Kleen
Date: Fri Feb 14 2014 - 16:26:28 EST


From: Andi Kleen <ak@xxxxxxxxxxxxxxx>

When __gnu_lto_* is present that means that the module hasn't run with
LTO yet.

Cc: rusty@xxxxxxxxxxxxxxx
Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
---
kernel/module.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/kernel/module.c b/kernel/module.c
index b99e801..4f3eff7 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)) {
+ pr_info("%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/