summaryrefslogtreecommitdiff
path: root/scripts/Kconfig.include
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2020-01-15 11:30:07 +0000
committerWill Deacon <will@kernel.org>2020-01-15 12:50:36 +0000
commit42d519e3d0c071161d0a1c36e95a3743b113c590 (patch)
tree5bfe148ad9f8808c401b8c99be28410e4c3cf909 /scripts/Kconfig.include
parent46cf053efec6a3a5f343fead837777efe8252a46 (diff)
downloadlwn-42d519e3d0c071161d0a1c36e95a3743b113c590.tar.gz
lwn-42d519e3d0c071161d0a1c36e95a3743b113c590.zip
kbuild: Add support for 'as-instr' to be used in Kconfig files
Similar to 'cc-option' or 'ld-option', it is occasionally necessary to check whether the assembler supports certain ISA extensions. In the arm64 code we currently do this in Makefile with an additional define: lseinstr := $(call as-instr,.arch_extension lse,-DCONFIG_AS_LSE=1) Add the 'as-instr' option so that it can be used in Kconfig directly: def_bool $(as-instr,.arch_extension lse) Acked-by: Masahiro Yamada <masahiroy@kernel.org> Reviewed-by: Vladimir Murzin <vladimir.murzin@arm.com> Tested-by: Vladimir Murzin <vladimir.murzin@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'scripts/Kconfig.include')
-rw-r--r--scripts/Kconfig.include4
1 files changed, 4 insertions, 0 deletions
diff --git a/scripts/Kconfig.include b/scripts/Kconfig.include
index d4adfbe42690..9d07e59cbdf7 100644
--- a/scripts/Kconfig.include
+++ b/scripts/Kconfig.include
@@ -31,6 +31,10 @@ cc-option = $(success,$(CC) -Werror $(CLANG_FLAGS) $(1) -E -x c /dev/null -o /de
# Return y if the linker supports <flag>, n otherwise
ld-option = $(success,$(LD) -v $(1))
+# $(as-instr,<instr>)
+# Return y if the assembler supports <instr>, n otherwise
+as-instr = $(success,printf "%b\n" "$(1)" | $(CC) $(CLANG_FLAGS) -c -x assembler -o /dev/null -)
+
# check if $(CC) and $(LD) exist
$(error-if,$(failure,command -v $(CC)),compiler '$(CC)' not found)
$(error-if,$(failure,command -v $(LD)),linker '$(LD)' not found)