linux/arch/arm64
Nick Desaulniers 625412c210 arm64: vdso32: add CONFIG_THUMB2_COMPAT_VDSO
Allow the compat vdso (32b) to be compiled as either THUMB2 (default) or
ARM.

For THUMB2, the register r7 is reserved for the frame pointer, but
code in arch/arm64/include/asm/vdso/compat_gettimeofday.h
uses r7. Explicitly set -fomit-frame-pointer, since unwinding through
interworked THUMB2 and ARM is unreliable anyways. See also how
CONFIG_UNWINDER_FRAME_POINTER cannot be selected for
CONFIG_THUMB2_KERNEL for ARCH=arm.

This also helps toolchains that differ in their implicit value if the
choice of -f{no-}omit-frame-pointer is left unspecified, to not error on
the use of r7.

2019 Q4 ARM AAPCS seeks to standardize the use of r11 as the reserved
frame pointer register, but no production compiler that can compile the
Linux kernel currently implements this.  We're actively discussing such
a transition with ARM toolchain developers currently.

Reported-by: Luis Lozano <llozano@google.com>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Manoj Gupta <manojgupta@google.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Stephen Boyd <swboyd@google.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Dave Martin <Dave.Martin@arm.com>
Link: https://static.docs.arm.com/ihi0042/i/aapcs32.pdf
Link: https://bugs.chromium.org/p/chromium/issues/detail?id=1084372
Link: https://lore.kernel.org/r/20200608205711.109418-1-ndesaulniers@google.com
Signed-off-by: Will Deacon <will@kernel.org>
2020-06-10 11:38:56 +01:00
..
boot ARM: devicetree updates for v5.7 2020-04-03 15:22:05 -07:00
configs ARM: defconfig updates 2020-04-03 15:15:10 -07:00
crypto SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00
include Merge branch 'for-next/scs' into for-next/core 2020-05-28 18:03:40 +01:00
kernel arm64: vdso32: add CONFIG_THUMB2_COMPAT_VDSO 2020-06-10 11:38:56 +01:00
kvm Merge branch 'for-next/kvm/errata' into for-next/core 2020-05-28 18:02:51 +01:00
lib arm64: Reorder the macro arguments in the copy routines 2020-04-29 21:50:01 +01:00
mm Merge branch 'for-next/scs' into for-next/core 2020-05-28 18:03:40 +01:00
net Merge branch 'for-next/bti' into for-next/core 2020-05-28 18:00:51 +01:00
xen arm64: xen: Use modern annotations for assembly functions 2020-01-09 16:09:42 +00:00
Kbuild arm64: add arch/arm64/Kbuild 2019-08-21 18:47:15 +01:00
Kconfig arm64: vdso32: add CONFIG_THUMB2_COMPAT_VDSO 2020-06-10 11:38:56 +01:00
Kconfig.debug arm64: remove CONFIG_DEBUG_ALIGN_RODATA feature 2020-04-01 21:44:43 +01:00
Kconfig.platforms ARM: SoC updates 2020-04-03 15:02:35 -07:00
Makefile Merge branch 'for-next/scs' into for-next/core 2020-05-28 18:03:40 +01:00