aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/Makefile
diff options
context:
space:
mode:
authorZhenyu Ye <yezhenyu2@huawei.com>2020-07-15 15:19:44 +0800
committerCatalin Marinas <catalin.marinas@arm.com>2020-07-15 16:01:01 +0100
commit7c78f67e9bd97478d56157c2ad53823668b5b822 (patch)
treee846da84e4dbda4de151f72a9a3fc1f6c3723259 /arch/arm64/Makefile
parentarm64: tlb: Detect the ARMv8.4 TLBI RANGE feature (diff)
downloadlinux-dev-7c78f67e9bd97478d56157c2ad53823668b5b822.tar.xz
linux-dev-7c78f67e9bd97478d56157c2ad53823668b5b822.zip
arm64: enable tlbi range instructions
TLBI RANGE feature instoduces new assembly instructions and only support by binutils >= 2.30. Add necessary Kconfig logic to allow this to be enabled and pass '-march=armv8.4-a' to KBUILD_CFLAGS. Signed-off-by: Zhenyu Ye <yezhenyu2@huawei.com> Link: https://lore.kernel.org/r/20200715071945.897-3-yezhenyu2@huawei.com Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/Makefile')
-rw-r--r--arch/arm64/Makefile7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index a0d94d063fa8..4e823b97c92e 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -82,11 +82,18 @@ endif
# compiler to generate them and consequently to break the single image contract
# we pass it only to the assembler. This option is utilized only in case of non
# integrated assemblers.
+ifneq ($(CONFIG_AS_HAS_ARMV8_4), y)
branch-prot-flags-$(CONFIG_AS_HAS_PAC) += -Wa,-march=armv8.3-a
endif
+endif
KBUILD_CFLAGS += $(branch-prot-flags-y)
+ifeq ($(CONFIG_AS_HAS_ARMV8_4), y)
+# make sure to pass the newest target architecture to -march.
+KBUILD_CFLAGS += -Wa,-march=armv8.4-a
+endif
+
ifeq ($(CONFIG_SHADOW_CALL_STACK), y)
KBUILD_CFLAGS += -ffixed-x18
endif