Message ID | 20240127090055.124336-1-ebiggers@kernel.org (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Herbert Xu |
Headers | show |
Series | RISC-V: fix check for zvkb with tip-of-tree clang | expand |
On Sat, Jan 27, 2024 at 01:00:54AM -0800, Eric Biggers wrote: > From: Eric Biggers <ebiggers@google.com> > > LLVM commit 8e01042da9d3 ("[RISCV] Add missing dependency check for Zvkb > (#79467)") broke the check used by the TOOLCHAIN_HAS_VECTOR_CRYPTO > kconfig symbol because it made zvkb start depending on v or zve*. Fix > this by specifying both v and zvkb when checking for support for zvkb. > > Signed-off-by: Eric Biggers <ebiggers@google.com> Reviewed-by: Nathan Chancellor <nathan@kernel.org> I also verified this does not regress GCC. > --- > arch/riscv/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index b49016bb5077b..912fff31492b9 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -581,21 +581,21 @@ config TOOLCHAIN_HAS_ZBB > default y > depends on !64BIT || $(cc-option,-mabi=lp64 -march=rv64ima_zbb) > depends on !32BIT || $(cc-option,-mabi=ilp32 -march=rv32ima_zbb) > depends on LLD_VERSION >= 150000 || LD_VERSION >= 23900 > depends on AS_HAS_OPTION_ARCH > > # This symbol indicates that the toolchain supports all v1.0 vector crypto > # extensions, including Zvk*, Zvbb, and Zvbc. LLVM added all of these at once. > # binutils added all except Zvkb, then added Zvkb. So we just check for Zvkb. > config TOOLCHAIN_HAS_VECTOR_CRYPTO > - def_bool $(as-instr, .option arch$(comma) +zvkb) > + def_bool $(as-instr, .option arch$(comma) +v$(comma) +zvkb) > depends on AS_HAS_OPTION_ARCH > > config RISCV_ISA_ZBB > bool "Zbb extension support for bit manipulation instructions" > depends on TOOLCHAIN_HAS_ZBB > depends on MMU > depends on RISCV_ALTERNATIVE > default y > help > Adds support to dynamically detect the presence of the ZBB > > base-commit: cb4ede926134a65bc3bf90ed58dace8451d7e759 > -- > 2.43.0 >
On Sat, Jan 27, 2024 at 01:00:54AM -0800, Eric Biggers wrote: > From: Eric Biggers <ebiggers@google.com> > > LLVM commit 8e01042da9d3 ("[RISCV] Add missing dependency check for Zvkb > (#79467)") broke the check used by the TOOLCHAIN_HAS_VECTOR_CRYPTO > kconfig symbol because it made zvkb start depending on v or zve*. Fix > this by specifying both v and zvkb when checking for support for zvkb. Seems like a reasonable change on the part of LLVM. Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Cheers, Conor. > > Signed-off-by: Eric Biggers <ebiggers@google.com> > --- > arch/riscv/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index b49016bb5077b..912fff31492b9 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -581,21 +581,21 @@ config TOOLCHAIN_HAS_ZBB > default y > depends on !64BIT || $(cc-option,-mabi=lp64 -march=rv64ima_zbb) > depends on !32BIT || $(cc-option,-mabi=ilp32 -march=rv32ima_zbb) > depends on LLD_VERSION >= 150000 || LD_VERSION >= 23900 > depends on AS_HAS_OPTION_ARCH > > # This symbol indicates that the toolchain supports all v1.0 vector crypto > # extensions, including Zvk*, Zvbb, and Zvbc. LLVM added all of these at once. > # binutils added all except Zvkb, then added Zvkb. So we just check for Zvkb. > config TOOLCHAIN_HAS_VECTOR_CRYPTO > - def_bool $(as-instr, .option arch$(comma) +zvkb) > + def_bool $(as-instr, .option arch$(comma) +v$(comma) +zvkb) > depends on AS_HAS_OPTION_ARCH > > config RISCV_ISA_ZBB > bool "Zbb extension support for bit manipulation instructions" > depends on TOOLCHAIN_HAS_ZBB > depends on MMU > depends on RISCV_ALTERNATIVE > default y > help > Adds support to dynamically detect the presence of the ZBB > > base-commit: cb4ede926134a65bc3bf90ed58dace8451d7e759 > -- > 2.43.0 > > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv
Hello: This patch was applied to riscv/linux.git (for-next) by Palmer Dabbelt <palmer@rivosinc.com>: On Sat, 27 Jan 2024 01:00:54 -0800 you wrote: > From: Eric Biggers <ebiggers@google.com> > > LLVM commit 8e01042da9d3 ("[RISCV] Add missing dependency check for Zvkb > (#79467)") broke the check used by the TOOLCHAIN_HAS_VECTOR_CRYPTO > kconfig symbol because it made zvkb start depending on v or zve*. Fix > this by specifying both v and zvkb when checking for support for zvkb. > > [...] Here is the summary with links: - RISC-V: fix check for zvkb with tip-of-tree clang https://git.kernel.org/riscv/c/886516fae2b7 You are awesome, thank you!
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index b49016bb5077b..912fff31492b9 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -581,21 +581,21 @@ config TOOLCHAIN_HAS_ZBB default y depends on !64BIT || $(cc-option,-mabi=lp64 -march=rv64ima_zbb) depends on !32BIT || $(cc-option,-mabi=ilp32 -march=rv32ima_zbb) depends on LLD_VERSION >= 150000 || LD_VERSION >= 23900 depends on AS_HAS_OPTION_ARCH # This symbol indicates that the toolchain supports all v1.0 vector crypto # extensions, including Zvk*, Zvbb, and Zvbc. LLVM added all of these at once. # binutils added all except Zvkb, then added Zvkb. So we just check for Zvkb. config TOOLCHAIN_HAS_VECTOR_CRYPTO - def_bool $(as-instr, .option arch$(comma) +zvkb) + def_bool $(as-instr, .option arch$(comma) +v$(comma) +zvkb) depends on AS_HAS_OPTION_ARCH config RISCV_ISA_ZBB bool "Zbb extension support for bit manipulation instructions" depends on TOOLCHAIN_HAS_ZBB depends on MMU depends on RISCV_ALTERNATIVE default y help Adds support to dynamically detect the presence of the ZBB