| From d22a08926e65d8d4878cc2cefda12621440aa6a6 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 4 Oct 2019 15:44:45 +0100 |
| Subject: arm64: vdso32: Don't use KBUILD_CPPFLAGS unconditionally |
| |
| From: Will Deacon <will@kernel.org> |
| |
| [ Upstream commit c71e88c437962c1ec43d4d23a0ebf4c9cf9bee0d ] |
| |
| KBUILD_CPPFLAGS is defined differently depending on whether the main |
| compiler is clang or not. This means that it is not possible to build |
| the compat vDSO with GCC if the rest of the kernel is built with clang. |
| |
| Define VDSO_CPPFLAGS directly to break this dependency and allow a clang |
| kernel to build a compat vDSO with GCC: |
| |
| $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- \ |
| CROSS_COMPILE_COMPAT=arm-linux-gnueabihf- CC=clang \ |
| COMPATCC=arm-linux-gnueabihf-gcc |
| |
| Acked-by: Catalin Marinas <catalin.marinas@arm.com> |
| Signed-off-by: Will Deacon <will@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/arm64/kernel/vdso32/Makefile | 6 ++---- |
| 1 file changed, 2 insertions(+), 4 deletions(-) |
| |
| diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile |
| index 77aa613403747..aa171b043287b 100644 |
| --- a/arch/arm64/kernel/vdso32/Makefile |
| +++ b/arch/arm64/kernel/vdso32/Makefile |
| @@ -25,11 +25,9 @@ cc32-as-instr = $(call try-run,\ |
| # arm64 one. |
| # As a result we set our own flags here. |
| |
| -# From top-level Makefile |
| -# NOSTDINC_FLAGS |
| -VDSO_CPPFLAGS := -nostdinc -isystem $(shell $(COMPATCC) -print-file-name=include) |
| +# KBUILD_CPPFLAGS and NOSTDINC_FLAGS from top-level Makefile |
| +VDSO_CPPFLAGS := -D__KERNEL__ -nostdinc -isystem $(shell $(COMPATCC) -print-file-name=include) |
| VDSO_CPPFLAGS += $(LINUXINCLUDE) |
| -VDSO_CPPFLAGS += $(KBUILD_CPPFLAGS) |
| |
| # Common C and assembly flags |
| # From top-level Makefile |
| -- |
| 2.20.1 |
| |