kbuild: Add -Wa,--fatal-warnings to as-instr invocation
Certain assembler instruction tests may only induce warnings from the assembler on an unsupported instruction or option, which causes as-instr to succeed when it was expected to fail. Some tests workaround this limitation by additionally testing that invalid input fails as expected. However, this is fragile if the assembler is changed to accept the invalid input, as it will cause the instruction/option to be unavailable like it was unsupported even when it is. Use '-Wa,--fatal-warnings' in the as-instr macro to turn these warnings into hard errors, which avoids this fragility and makes tests more robust and well formed. Cc: stable@vger.kernel.org Suggested-by: Eric Biggers <ebiggers@kernel.org> Signed-off-by: Nathan Chancellor <nathan@kernel.org> Tested-by: Eric Biggers <ebiggers@google.com> Tested-by: Andy Chiu <andybnac@gmail.com> Reviewed-by: Andy Chiu <andybnac@gmail.com> Tested-by: Conor Dooley <conor.dooley@microchip.com> Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Acked-by: Masahiro Yamada <masahiroy@kernel.org> Link: https://lore.kernel.org/r/20240125-fix-riscv-option-arch-llvm-18-v1-1-390ac9cc3cd0@kernel.org Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
parent
6613476e22
commit
0ee695a471
|
@ -33,7 +33,7 @@ ld-option = $(success,$(LD) -v $(1))
|
||||||
|
|
||||||
# $(as-instr,<instr>)
|
# $(as-instr,<instr>)
|
||||||
# Return y if the assembler supports <instr>, n otherwise
|
# Return y if the assembler supports <instr>, n otherwise
|
||||||
as-instr = $(success,printf "%b\n" "$(1)" | $(CC) $(CLANG_FLAGS) -c -x assembler-with-cpp -o /dev/null -)
|
as-instr = $(success,printf "%b\n" "$(1)" | $(CC) $(CLANG_FLAGS) -Wa$(comma)--fatal-warnings -c -x assembler-with-cpp -o /dev/null -)
|
||||||
|
|
||||||
# check if $(CC) and $(LD) exist
|
# check if $(CC) and $(LD) exist
|
||||||
$(error-if,$(failure,command -v $(CC)),C compiler '$(CC)' not found)
|
$(error-if,$(failure,command -v $(CC)),C compiler '$(CC)' not found)
|
||||||
|
|
|
@ -38,7 +38,7 @@ as-option = $(call try-run,\
|
||||||
# Usage: aflags-y += $(call as-instr,instr,option1,option2)
|
# Usage: aflags-y += $(call as-instr,instr,option1,option2)
|
||||||
|
|
||||||
as-instr = $(call try-run,\
|
as-instr = $(call try-run,\
|
||||||
printf "%b\n" "$(1)" | $(CC) -Werror $(CLANG_FLAGS) $(KBUILD_AFLAGS) -c -x assembler-with-cpp -o "$$TMP" -,$(2),$(3))
|
printf "%b\n" "$(1)" | $(CC) -Werror $(CLANG_FLAGS) $(KBUILD_AFLAGS) -Wa$(comma)--fatal-warnings -c -x assembler-with-cpp -o "$$TMP" -,$(2),$(3))
|
||||||
|
|
||||||
# __cc-option
|
# __cc-option
|
||||||
# Usage: MY_CFLAGS += $(call __cc-option,$(CC),$(MY_CFLAGS),-march=winchip-c6,-march=i586)
|
# Usage: MY_CFLAGS += $(call __cc-option,$(CC),$(MY_CFLAGS),-march=winchip-c6,-march=i586)
|
||||||
|
|
Loading…
Reference in New Issue