lto, workaround: Add workaround for initcall reordering
authorAndi Kleen <ak@linux.intel.com>
Sat, 8 Feb 2014 08:01:08 +0000 (09:01 +0100)
committerH. Peter Anvin <hpa@linux.intel.com>
Fri, 14 Feb 2014 04:24:13 +0000 (20:24 -0800)
commitef1b893c29d0dba778f67ad97b554b37f9108dcc
treec77e509d240979f0718d6778a6abfe42fc0b59c3
parent128ea04a9885af9629059e631ddf0cab4815b589
lto, workaround: Add workaround for initcall reordering

Work around a LTO gcc problem: when there is no reference to a variable
in a module it will be moved to the end of the program. This causes
reordering of initcalls which the kernel does not like.
Add a dummy reference function to avoid this. The function is
deleted by the linker.

This replaces a previous much slower workaround.

Thanks to Jan "Honza" Hubička for suggesting this technique.

Suggested-by: Jan Hubička <hubicka@ucw.cz>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Link: http://lkml.kernel.org/r/1391846481-31491-4-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
include/linux/init.h