summaryrefslogtreecommitdiff
path: root/arch/arm/common
diff options
context:
space:
mode:
authorArd Biesheuvel <ardb@kernel.org>2021-10-29 17:49:37 +0100
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2021-10-30 11:24:37 +0100
commitc1e42efacb9bb4ae873e9b1cf249fa4fb6ef7f84 (patch)
tree4fc038347e172360bf7ab4be79ce8d28da891ccc /arch/arm/common
parentfa191b711c32ba107cf8d3474cd860407b7e997a (diff)
ARM: 9151/1: Thumb2: avoid __builtin_thread_pointer() on Clang
If available, we use the __builtin_thread_pointer() helper to get the value of the TLS register, to help the compiler understand that it doesn't need to reload it every time we access 'current'. Unfortunately, Clang fails to emit the MRC system register read directly when building for Thumb2, and instead, it issues a call to the __aeabi_read_tp helper, which the kernel does not provide, and so this result in link failures at build time. So create a special case for this, and emit the MRC directly using an asm() block, just like we do when the helper is not available to begin with. Link: https://github.com/ClangBuiltLinux/linux/issues/1485 Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Tested-by: Nathan Chancellor <nathan@kernel.org> Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'arch/arm/common')
0 files changed, 0 insertions, 0 deletions