Andi Kleen
8564ed2b38
Kbuild, lto: Add a gcc-ld script to let run gcc as ld
...
For LTO we need to run the link step with gcc, not ld.
Since there are a lot of linker options passed to it, add a gcc-ld wrapper
that wraps them as -Wl,
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391846481-31491-10-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 20:25:02 -08:00
Andi Kleen
ccbef1674a
Kbuild, lto: add ld-version and ld-ifversion macros
...
To check the linker version. Used by the LTO makefile.
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391846481-31491-9-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 20:25:00 -08:00
Andi Kleen
7d02b490e9
Kbuild, lto: Drop .number postfixes in modpost
...
LTO turns all global symbols effectively into statics. This
has the side effect that they all have a .NUMBER postfix to make
them unique. In modpost drop this postfix because it confuses
it.
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391846481-31491-8-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 20:24:58 -08:00
Andi Kleen
77ab21adae
Kbuild, lto, workaround: Don't warn for initcall_reference in modpost
...
This reference is discarded, but can cause warnings when it refers to
exit. Ignore for now.
This is a workaround and can be removed once we get rid of
-fno-toplevel-reorder
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391846481-31491-7-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 20:24:56 -08:00
Andi Kleen
58edae3aac
lto: Disable LTO for sys_ni
...
The assembler alias code in cond_syscall does not work
when compiled for LTO. Just disable LTO for that file.
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391846481-31491-6-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 20:24:53 -08:00
Joe Mario
80375980f1
lto: Handle LTO common symbols in module loader
...
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.
Cc: Rusty Russell <rusty@rustcorp.com.au >
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391846481-31491-5-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 20:24:50 -08:00
Andi Kleen
ef1b893c29
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 >
2014-02-13 20:24:13 -08:00
Andi Kleen
128ea04a98
lto: Make asmlinkage __visible
...
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391846481-31491-3-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 20:21:59 -08:00
Andi Kleen
67424d5a22
x86, lto: Disable LTO for the x86 VDSO
...
The VDSO does not play well with LTO, so just disable LTO for it.
Also pass a 32bit linker flag for the 32bit version.
[ hpa: change braces to parens to match kernel Makefile style ]
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391846481-31491-1-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 20:21:57 -08:00
Andi Kleen
634676c203
initconst, x86: Fix initconst mistake in ts5500 code
...
const data must be initconst.
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-14-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:14:54 -08:00
Andi Kleen
3be5588ad5
initconst: Fix initconst mistake in dcdbas
...
const must be __initconst.
Cc: Douglas_Warzecha@dell.com
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-13-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:14:54 -08:00
Andi Kleen
285c00adf6
asmlinkage: Make trace_hardirqs_on/off_caller visible
...
These functions are called from assembler, and thus need to be
__visible.
Cc: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-12-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:14:54 -08:00
Andi Kleen
a9143296dd
asmlinkage, x86: Fix 32bit memcpy for LTO
...
These functions can be called implicitely from gcc, and thus need to be
visible.
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-11-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:14:46 -08:00
Andi Kleen
a7330c997d
asmlinkage Make __stack_chk_failed and memcmp visible
...
In LTO symbols implicitely referenced by the compiler need
to be visible. Earlier these symbols were visible implicitely
from being exported, but we disabled implicit visibility fo
EXPORTs when modules are disabled to improve code size. So
now these symbols have to be marked visible explicitely.
Do this for __stack_chk_fail (with stack protector)
and memcmp.
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-10-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:13:43 -08:00
Andi Kleen
3ebae4f3a2
asmlinkage: Mark rwsem functions that can be called from assembler asmlinkage
...
Mark the rwsem functions that can be called from assembler asmlinkage.
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-9-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:13:37 -08:00
Andi Kleen
00b7103078
asmlinkage: Make main_extable_sort_needed visible
...
main_extable_sort_needed is used by the build system and needs
to be a normal ELF symbol. Make it visible so that LTO
does not remove or mangle it.
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-8-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:13:22 -08:00
Andi Kleen
22d9fd3411
asmlinkage, mutex: Mark __visible
...
Various kernel/mutex.c functions can be called from
inline assembler, so they should be all global and
__visible.
Cc: Ingo Molnar <mingo@kernel.org >
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-7-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:13:19 -08:00
Andi Kleen
b35f830533
asmlinkage: Make trace_hardirq visible
...
Can be called from assembler code.
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ingo Molnar <mingo@kernel.org >
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-6-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:13:07 -08:00
Andi Kleen
63f9a7fde7
asmlinkage: Make lockdep_sys_exit asmlinkage
...
lockdep_sys_exit can be called from assembler code, so make it
asmlinkage.
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ingo Molnar <mingo@kernel.org >
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-5-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:12:54 -08:00
Andi Kleen
a99aa42d02
asmlinkage, pnp: Make variables used from assembler code visible
...
Mark variables referenced from assembler files visible.
This fixes compile problems with LTO.
Cc: Jaroslav Kysela <perex@perex.cz >
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-4-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:12:27 -08:00
Andi Kleen
40747ffa5a
asmlinkage: Make jiffies visible
...
Jiffies is referenced by the linker script, so it has to be visible.
Handled both the generic and the x86 version.
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-3-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:12:09 -08:00
Andi Kleen
d47d5c8194
asmlinkage: Make __iowrite32_copy visible
...
This is a assembler function on x86, so it should be visible.
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-2-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:12:04 -08:00
Andi Kleen
52480137d8
asmlinkage, kvm: Make kvm_rebooting visible
...
kvm_rebooting is referenced from assembler code, thus
needs to be visible.
Cc: Gleb Natapov <gleb@redhat.com >
Cc: Paolo Bonzini <pbonzini@redhat.com >
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1391845930-28580-1-git-send-email-ak@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com >
2014-02-13 18:11:56 -08:00
Linus Torvalds
b28a960c42
Linux 3.14-rc2
2014-02-09 18:15:47 -08:00
Linus Torvalds
cd63204c55
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
...
Pull SELinux fixes from James Morris.
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
SELinux: Fix kernel BUG on empty security contexts.
selinux: add SOCK_DIAG_BY_FAMILY to the list of netlink message types
2014-02-09 18:14:53 -08:00