Message ID | 1392733738-8290-6-git-send-email-andi@firstfloor.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Feb 18, 2014 at 03:28:43PM +0100, Andi Kleen wrote: > 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. Should Joe's SOB be on this patch ? > > Cc: rusty@rustcorp.com.au > Signed-off-by: Andi Kleen <ak@linux.intel.com> > --- > kernel/module.c | 4 ++++ > 1 file changed, 4 insertions(+) > > 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); > -- > 1.8.5.2 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- 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);