From: Vincenzo Frascino vincenzo.frascino@arm.com
mainline inclusion from v5.7-rc1 commit c2d920bf1fff category: feature bugzilla: 27615 CVE: NA
-------------------------------------------------
Currently kconfig does not have a feature that allows to detect if the used assembler supports a specific compilation option.
Introduce 'as-option' to serve this purpose in the context of Kconfig:
config X def_bool $(as-option,...)
Signed-off-by: Amit Daniel Kachhap amit.kachhap@arm.com Signed-off-by: Vincenzo Frascino vincenzo.frascino@arm.com Acked-by: Masahiro Yamada masahiroy@kernel.org Cc: linux-kbuild@vger.kernel.org Cc: Masahiro Yamada yamada.masahiro@socionext.com Signed-off-by: Catalin Marinas catalin.marinas@arm.com Signed-off-by: Zheng Zengkai zhengzengkai@huawei.com Reviewed-by: Hanjun Guo guohanjun@huawei.com Signed-off-by: Yang Yingliang yangyingliang@huawei.com --- scripts/Kconfig.include | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/scripts/Kconfig.include b/scripts/Kconfig.include index 6db0e7cd0310b..8717a60ca125a 100644 --- a/scripts/Kconfig.include +++ b/scripts/Kconfig.include @@ -26,6 +26,12 @@ cc-option = $(success,$(CC) -Werror $(CLANG_FLAGS) $(1) -S -x c /dev/null -o /de # Return y if the linker supports <flag>, n otherwise ld-option = $(success,$(LD) -v $(1))
+# $(as-option,<flag>) +# /dev/zero is used as output instead of /dev/null as some assembler cribs when +# both input and output are same. Also both of them have same write behaviour so +# can be easily substituted. +as-option = $(success, $(CC) $(CLANG_FLAGS) $(1) -c -x assembler /dev/null -o /dev/zero) + # $(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 -)