Message ID | 1391846481-31491-5-git-send-email-ak@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Andi Kleen <ak@linux.intel.com> writes: > From: Joe Mario <jmario@redhat.com> > > Here is the workaround I made for having the kernel not reject modules > built with -flto. The clean solution would be to get the compiler to not > emit the symbol. Or if it has to emit the symbol, then emit it as > initialized data but put it into a comdat/linkonce section. > > Minor tweaks by AK over Joe's patch. Patch is fine, but what's with the comment? > switch (sym[i].st_shndx) { > case SHN_COMMON: > + /* Ignore common symbols */ > + if (!strncmp(name, "__gnu_lto", 9)) > + break; > + You mean, "/* Ignore symbols from -flto */"? Other than that, I'm happy for this to go via some other tree: Acked-by: Rusty Russell <rusty@rustcorp.com.au> Thanks, Rusty. -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/kernel/module.c b/kernel/module.c index d24fcf2..b99e801 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -1948,6 +1948,10 @@ 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)) + break; + /* We compiled with -fno-common. These are not supposed to happen. */ pr_debug("Common symbol: %s\n", name);