linux-uconsole/arch/arm64/kernel
Will Deacon 6ec153c599 arm64: vdso: work-around broken ELF toolchains in Makefile
commit 6f1a6ae87c upstream.

When building the kernel with a bare-metal (ELF) toolchain, the -shared
option may not be passed down to collect2, resulting in silent corruption
of the vDSO image (in particular, the DYNAMIC section is omitted).

The effect of this corruption is that the dynamic linker fails to find
the vDSO symbols and libc is instead used for the syscalls that we
intended to optimise (e.g. gettimeofday). Functionally, there is no
issue as the sigreturn trampoline is still intact and located by the
kernel.

This patch fixes the problem by explicitly passing -shared to the linker
when building the vDSO.

Reported-by: Szabolcs Nagy <Szabolcs.Nagy@arm.com>
Reported-by: James Greenlaigh <james.greenhalgh@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-08-03 09:29:41 -07:00
..
vdso arm64: vdso: work-around broken ELF toolchains in Makefile 2015-08-03 09:29:41 -07:00
.gitignore arm64: Build infrastructure 2012-09-17 13:42:21 +01:00
arm64ksyms.c arm64: kernel: compiling issue, need 'EXPORT_SYMBOL(clear_page)' 2013-05-24 17:31:03 +01:00
asm-offsets.c
cputable.c arm64: CPU support 2012-09-17 13:41:59 +01:00
debug-monitors.c arm64: debug: clear mdscr_el1 instead of taking the OS lock 2013-05-13 11:44:56 +01:00
early_printk.c arm64: Fix duplicate definition of early_console 2013-05-13 11:44:53 +01:00
entry-fpsimd.S arm64: move FP-SIMD save/restore code to a macro 2012-12-05 11:26:50 +00:00
entry.S arm64: Bug fix in stack alignment exception 2014-07-09 11:14:01 -07:00
fpsimd.c arm64: fix possible invalid FPSIMD initialization state 2014-01-09 12:24:26 -08:00
head.S arm64: head: match all affinity levels in the pen of the secondaries 2013-03-20 18:09:42 +00:00
hw_breakpoint.c arm64: Debugging support 2012-09-17 13:42:14 +01:00
hyp-stub.S arm64: add hypervisor stub 2012-12-05 11:26:49 +00:00
io.c arm64: Device specific operations 2012-09-17 13:42:04 +01:00
irq.c arm64: Use irqchip_init() for interrupt controller initialisation 2013-03-26 16:02:23 +00:00
kuser32.S arm64: 32-bit (compat) applications support 2012-09-17 13:42:12 +01:00
Makefile arm64: SMP: enable PSCI boot method 2013-01-29 16:56:37 +00:00
module.c arm64: Loadable modules 2012-09-17 13:42:19 +01:00
perf_event.c arm64: perf: fix ARMv8 EVTYPE_MASK to include NSH bit 2013-09-26 17:18:03 -07:00
process.c arm64: flush TLS registers during exec 2014-10-05 14:54:07 -07:00
psci.c arm64: psci: add support for PSCI invocations from the kernel 2013-01-29 16:56:37 +00:00
ptrace.c arm64: ptrace: fix compat hardware watchpoint reporting 2014-10-05 14:54:07 -07:00
setup.c arm64: Fix up /proc/cpuinfo 2015-02-11 14:48:17 +08:00
signal.c arm64: switch to generic sigaltstack 2013-02-14 09:17:29 -05:00
signal32.c arm64: compat Fix siginfo_t -> compat_siginfo_t conversion on big endian 2015-03-06 14:40:52 -08:00
smp.c arm64: Fix up /proc/cpuinfo 2015-02-11 14:48:17 +08:00
smp_psci.c arm64: psci: Use the MPIDR values from cpu_logical_map for cpu ids. 2013-03-26 11:58:10 +00:00
smp_spin_table.c arm64: SMP: rework the SMP code to be enabling method agnostic 2013-01-29 16:56:37 +00:00
stacktrace.c ARM64: unwind: Fix PC calculation 2014-03-06 21:30:12 -08:00
sys.c arm64: switch to generic sigaltstack 2013-02-14 09:17:29 -05:00
sys32.S unify compat fanotify_mark(2), switch to COMPAT_SYSCALL_DEFINE 2013-05-09 13:46:38 -04:00
sys_compat.c arm64: flush TLS registers during exec 2014-10-05 14:54:07 -07:00
time.c arm64: kernel: compiling issue, need delete read_current_timer() 2015-05-06 21:56:25 +02:00
traps.c arm64: don't kill the kernel on a bad esr from el0 2013-05-31 16:04:51 +01:00
vdso.c arm64: vdso: update wtm fields for CLOCK_MONOTONIC_COARSE 2014-02-20 11:06:11 -08:00
vmlinux.lds.S arm64: Build infrastructure 2012-09-17 13:42:21 +01:00