arm64: vdso32: Pass '--target' option to clang via VDSO_CAFLAGS
Directly passing the '--target' option to clang by appending to COMPATCC does not work if COMPATCC has been specified explicitly as an argument to Make unless the 'override' directive is used, which is ugly and different to what is done in the top-level Makefile. Move the '--target' option for clang out of COMPATCC and into VDSO_CAFLAGS, where it will be picked up when compiling and assembling the 32-bit vDSO under clang. Reported-by: Catalin Marinas <catalin.marinas@arm.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
parent
c71e88c437
commit
7424ee2b16
|
@ -10,7 +10,7 @@ include $(srctree)/lib/vdso/Makefile
|
||||||
|
|
||||||
# Same as cc-*option, but using COMPATCC instead of CC
|
# Same as cc-*option, but using COMPATCC instead of CC
|
||||||
ifeq ($(CONFIG_CC_IS_CLANG), y)
|
ifeq ($(CONFIG_CC_IS_CLANG), y)
|
||||||
COMPATCC ?= $(CC) --target=$(notdir $(CROSS_COMPILE_COMPAT:%-=%))
|
COMPATCC ?= $(CC)
|
||||||
else
|
else
|
||||||
COMPATCC ?= $(CROSS_COMPILE_COMPAT)gcc
|
COMPATCC ?= $(CROSS_COMPILE_COMPAT)gcc
|
||||||
endif
|
endif
|
||||||
|
@ -38,6 +38,10 @@ VDSO_CPPFLAGS += $(LINUXINCLUDE)
|
||||||
# Common C and assembly flags
|
# Common C and assembly flags
|
||||||
# From top-level Makefile
|
# From top-level Makefile
|
||||||
VDSO_CAFLAGS := $(VDSO_CPPFLAGS)
|
VDSO_CAFLAGS := $(VDSO_CPPFLAGS)
|
||||||
|
ifneq ($(shell $(COMPATCC) --version 2>&1 | head -n 1 | grep clang),)
|
||||||
|
VDSO_CAFLAGS += --target=$(notdir $(CROSS_COMPILE_COMPAT:%-=%))
|
||||||
|
endif
|
||||||
|
|
||||||
VDSO_CAFLAGS += $(call cc32-option,-fno-PIE)
|
VDSO_CAFLAGS += $(call cc32-option,-fno-PIE)
|
||||||
ifdef CONFIG_DEBUG_INFO
|
ifdef CONFIG_DEBUG_INFO
|
||||||
VDSO_CAFLAGS += -g
|
VDSO_CAFLAGS += -g
|
||||||
|
|
Loading…
Reference in New Issue