Skip to contentSkip to conversation

arm64: Build vDSO with -ffixed-x18

PATCH New Peter Collingbourne 2 participants 2 messages Nov 7, 2018 – Nov 8, 2018 arm64

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 arm64: Build vDSO with -ffixed-x18

The vDSO needs to be build with x18 reserved in order to accommodate userspace platform ABIs built on top of Linux that use the register to carry inter-procedural state, as provided for by the AAPCS. An example of such a platform ABI is the one that will be used by an upcoming version of Android.

Although this change is currently a no-op due to the fact that the vDSO is currently implemented in pure assembly on arm64, it is necessary in order to prepare for another change [1] that will add C code to the vDSO.

[1] https://patchwork.kernel.org/patch/10044501/

Cc Mark Salyzyn <[email protected]>
Cc Will Deacon <[email protected]>
Cc linux-arm-kernel at lists.infradead.org
---
 arch/arm64/kernel/vdso/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm64/kernel/vdso/Makefile +1 -1
index b215c712d897..8cd4707f832a 100644
@@ -12,7 +12,7 @@ obj-vdso := gettimeofday.o note.o sigreturn.o
 targets := $(obj-vdso) vdso.so vdso.so.dbg
 obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
 
-ccflags-y := -shared -fno-common -fno-builtin
+ccflags-y := -shared -fno-common -fno-builtin -ffixed-x18
 ccflags-y += -nostdlib -Wl,-soname=linux-vdso.so.1 \
 		$(call cc-ldoption, -Wl$(comma)--hash-style=sysv)
 
Signature · 1 line
2.19.1.930.g4563a0d9d0-goog
maintainer
#1 lore raw

PATCH 1/1 arm64: Build vDSO with -ffixed-x18

Quoted 10 lines · Peter Collingbourne

The vDSO needs to be build with x18 reserved in order to accommodate userspace platform ABIs built on top of Linux that use the register to carry inter-procedural state, as provided for by the AAPCS. An example of such a platform ABI is the one that will be used by an upcoming version of Android.

Although this change is currently a no-op due to the fact that the vDSO is currently implemented in pure assembly on arm64, it is necessary in order to prepare for another change [1] that will add C code to the vDSO.

Since this is a no-op for the current kernel, I guess Vincenzo (cc'ed) will pick it up as he's planning to post an update to the vDSO in C series soon.

Signature · 1 line
Catalin