Thread (62 messages) 62 messages, 14 authors, 2018-11-15

[RFC 17/17] arm64: compile the kernel with ptrauth -msign-return-address

From: Kees Cook <hidden>
Date: 2018-10-15 22:46:38
Also in: kvmarm, linux-arch, lkml

On Thu, Oct 11, 2018 at 7:23 AM, Vladimir Murzin
[off-list ref] wrote:
Hi Kristina,

On 05/10/18 09:47, Kristina Martsenko wrote:
quoted
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 106039d25e2f..dbcd43ea99d8 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -56,6 +56,10 @@ KBUILD_AFLAGS      += $(lseinstr) $(brokengasinst)
 KBUILD_CFLAGS        += $(call cc-option,-mabi=lp64)
 KBUILD_AFLAGS        += $(call cc-option,-mabi=lp64)

+ifeq ($(CONFIG_ARM64_PTR_AUTH),y)
+KBUILD_CFLAGS        += -msign-return-address=all
+endif
Should not it be done via cc-option so old toolchains keep working [1]?

[1]
$ aarch64-linux-gnu-gcc --version
aarch64-linux-gnu-gcc (Linaro GCC 2014.11) 4.9.3 20141031 (prerelease)
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ aarch64-linux-gnu-gcc -msign-return-address=all
aarch64-linux-gnu-gcc: error: unrecognized command line option '-msign-return-address=all'
...
I would like to see CONFIG_ARM64_PTR_AUTH testing for compiler support
via Kconfig (as stack-protector does). This would allow developers to
only see the option if it was available (i.e. no "downgrade" happens
if the compiler is missing support). Using cc-option runs the risk of
building a kernel with CONFIG_ARM64_PTR_AUTH set, but _not_ actually
using ptr auth.

-Kees

-- 
Kees Cook
Pixel Security
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help