[PATCH] riscv: Fix toolchain vector detection

Anton Blanchard posted 1 patch 1 year, 5 months ago
arch/riscv/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] riscv: Fix toolchain vector detection
Posted by Anton Blanchard 1 year, 5 months ago
A recent change to gcc flags rv64iv as no longer valid:

   cc1: sorry, unimplemented: Currently the 'V' implementation
   requires the 'M' extension

and as a result vector support is disabled. Fix this by adding m
to our toolchain vector detection code.

Signed-off-by: Anton Blanchard <antonb@tenstorrent.com>
---
 arch/riscv/Kconfig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 0f3cd7c3a436..939ea7f6a228 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -552,8 +552,8 @@ config RISCV_ISA_SVPBMT
 config TOOLCHAIN_HAS_V
 	bool
 	default y
-	depends on !64BIT || $(cc-option,-mabi=lp64 -march=rv64iv)
-	depends on !32BIT || $(cc-option,-mabi=ilp32 -march=rv32iv)
+	depends on !64BIT || $(cc-option,-mabi=lp64 -march=rv64imv)
+	depends on !32BIT || $(cc-option,-mabi=ilp32 -march=rv32imv)
 	depends on LLD_VERSION >= 140000 || LD_VERSION >= 23800
 	depends on AS_HAS_OPTION_ARCH
 
-- 
2.34.1
Re: [PATCH] riscv: Fix toolchain vector detection
Posted by Alexandre Ghiti 1 year, 5 months ago
Hi Anton,

On 19/08/2024 02:11, Anton Blanchard wrote:
> A recent change to gcc flags rv64iv as no longer valid:
>
>     cc1: sorry, unimplemented: Currently the 'V' implementation
>     requires the 'M' extension
>
> and as a result vector support is disabled. Fix this by adding m
> to our toolchain vector detection code.
>
> Signed-off-by: Anton Blanchard <antonb@tenstorrent.com>
> ---
>   arch/riscv/Kconfig | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> index 0f3cd7c3a436..939ea7f6a228 100644
> --- a/arch/riscv/Kconfig
> +++ b/arch/riscv/Kconfig
> @@ -552,8 +552,8 @@ config RISCV_ISA_SVPBMT
>   config TOOLCHAIN_HAS_V
>   	bool
>   	default y
> -	depends on !64BIT || $(cc-option,-mabi=lp64 -march=rv64iv)
> -	depends on !32BIT || $(cc-option,-mabi=ilp32 -march=rv32iv)
> +	depends on !64BIT || $(cc-option,-mabi=lp64 -march=rv64imv)
> +	depends on !32BIT || $(cc-option,-mabi=ilp32 -march=rv32imv)
>   	depends on LLD_VERSION >= 140000 || LD_VERSION >= 23800
>   	depends on AS_HAS_OPTION_ARCH
>   


As Conor noted, we need to backport this to stable releases so here is a 
Fixes tag:

Fixes: fa8e7cce55da ("riscv: Enable Vector code to be built")

Thanks,

Alex
Re: [PATCH] riscv: Fix toolchain vector detection
Posted by Conor Dooley 1 year, 5 months ago
On Mon, Aug 19, 2024 at 12:11:31AM +0000, Anton Blanchard wrote:
> A recent change to gcc flags rv64iv as no longer valid:
> 
>    cc1: sorry, unimplemented: Currently the 'V' implementation
>    requires the 'M' extension
> 
> and as a result vector support is disabled. Fix this by adding m
> to our toolchain vector detection code.
> 
> Signed-off-by: Anton Blanchard <antonb@tenstorrent.com>

This one definitely needs a cc: stable, it's required as far back as
6.6, right?

> ---
>  arch/riscv/Kconfig | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> index 0f3cd7c3a436..939ea7f6a228 100644
> --- a/arch/riscv/Kconfig
> +++ b/arch/riscv/Kconfig
> @@ -552,8 +552,8 @@ config RISCV_ISA_SVPBMT
>  config TOOLCHAIN_HAS_V
>  	bool
>  	default y
> -	depends on !64BIT || $(cc-option,-mabi=lp64 -march=rv64iv)
> -	depends on !32BIT || $(cc-option,-mabi=ilp32 -march=rv32iv)
> +	depends on !64BIT || $(cc-option,-mabi=lp64 -march=rv64imv)
> +	depends on !32BIT || $(cc-option,-mabi=ilp32 -march=rv32imv)
>  	depends on LLD_VERSION >= 140000 || LD_VERSION >= 23800
>  	depends on AS_HAS_OPTION_ARCH
>  
> -- 
> 2.34.1
> 
>