arm64: Turn "broken gas inst" into real config option
authorVladimir Murzin <vladimir.murzin@arm.com>
Wed, 15 Jan 2020 14:18:25 +0000 (14:18 +0000)
committerWill Deacon <will@kernel.org>
Wed, 15 Jan 2020 16:35:12 +0000 (16:35 +0000)
Use the new 'as-instr' Kconfig macro to define CONFIG_BROKEN_GAS_INST
directly, making it available everywhere.

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
[will: Drop redundant 'y if' logic]
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/Kconfig
arch/arm64/Makefile

index cf3b6d2..8a35f77 100644 (file)
@@ -301,6 +301,9 @@ config ARCH_SUPPORTS_UPROBES
 config ARCH_PROC_KCORE_TEXT
        def_bool y
 
+config BROKEN_GAS_INST
+       def_bool !$(as-instr,1:\n.inst 0\n.rept . - 1b\n\nnop\n.endr\n)
+
 config KASAN_SHADOW_OFFSET
        hex
        depends on KASAN
index 6dd8eca..dca1a97 100644 (file)
@@ -42,19 +42,15 @@ cc_has_k_constraint := $(call try-run,echo                          \
                return 0;                                               \
        }' | $(CC) -S -x c -o "$$TMP" -,,-DCONFIG_CC_HAS_K_CONSTRAINT=1)
 
-ifeq ($(CONFIG_ARM64), y)
-brokengasinst := $(call as-instr,1:\n.inst 0\n.rept . - 1b\n\nnop\n.endr\n,,-DCONFIG_BROKEN_GAS_INST=1)
-
-  ifneq ($(brokengasinst),)
+ifeq ($(CONFIG_BROKEN_GAS_INST),y)
 $(warning Detected assembler with broken .inst; disassembly will be unreliable)
-  endif
 endif
 
-KBUILD_CFLAGS  += -mgeneral-regs-only $(brokengasinst) \
+KBUILD_CFLAGS  += -mgeneral-regs-only  \
                   $(compat_vdso) $(cc_has_k_constraint)
 KBUILD_CFLAGS  += -fno-asynchronous-unwind-tables
 KBUILD_CFLAGS  += $(call cc-disable-warning, psabi)
-KBUILD_AFLAGS  += $(brokengasinst) $(compat_vdso)
+KBUILD_AFLAGS  += $(compat_vdso)
 
 KBUILD_CFLAGS  += $(call cc-option,-mabi=lp64)
 KBUILD_AFLAGS  += $(call cc-option,-mabi=lp64)