]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: vdso: work-around broken ELF toolchains in Makefile
authorWill Deacon <will.deacon@arm.com>
Fri, 19 Jun 2015 12:56:33 +0000 (13:56 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 19 Jun 2015 13:54:10 +0000 (14:54 +0100)
commitf17eb646316a5a04fdfeec781b338d459a4e3dd2
treedd7bb673e7bf89cd9db13f5db3b27e9bb4d7160b
parent7d199debfaf0bc4405aaed141aef0c49313c4f0c
arm64: vdso: work-around broken ELF toolchains in Makefile

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.

Cc: <stable@vger.kernel.org>
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>
arch/arm64/kernel/vdso/Makefile