ANDROID: arm64: vdso: Fix removing SCS flags

Commit 6545d64a18 ("BACKPORT: arm64: vdso: Substitute gettimeofday()
with C implementation") added an assignment to
CFLAGS_REMOVE_vgettimeofday.o without adjusting the existing one for the
removal of the shadow call stack flags.

Without this patch, the SCS flags do not get filtered:

clang ... -g -fsanitize=shadow-call-stack -Wdeclaration-after-statement
... -c -o arch/arm64/kernel/vdso/.tmp_vgettimeofday.o ...

After this, everything works as it should:

clang ... -g -Wdeclaration-after-statement -Wno-pointer-sign ... -c
-o arch/arm64/kernel/vdso/.tmp_vgettimeofday.o ...

This is an Android specific issue to the backport of the above patch,
this issue will not be present in the mainline version of SCS.

Change-Id: I2ff00e1b407155501ada4c36a961db0b720b80bf
Fixes: 6545d64a18 ("BACKPORT: arm64: vdso: Substitute gettimeofday() with C implementation")
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
This commit is contained in:
Nathan Chancellor 2020-05-14 03:31:14 -07:00 committed by Alistair Delva
parent 7502b09f02
commit 3763ace740

View file

@ -21,14 +21,12 @@ ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 --hash-style=sysv \
--build-id -n -T
ccflags-y += $(DISABLE_LTO)
CFLAGS_REMOVE_vgettimeofday.o += $(CC_FLAGS_SCS)
ccflags-y := -fno-common -fno-builtin -fno-stack-protector
ccflags-y += -DDISABLE_BRANCH_PROFILING
VDSO_LDFLAGS := -Bsymbolic
CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) -Os
CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) -Os $(CC_FLAGS_SCS)
KBUILD_CFLAGS += $(DISABLE_LTO)
KASAN_SANITIZE := n
UBSAN_SANITIZE := n