[PATCH 2/2] RISC-V: restart extension search on match

Ben Dooks <[email protected]> Fri, 2 Jan 2026 11:44:49 +0000
Newsgroups org.kernel.vger.linux-sparse
Message-ID <[email protected]>
If we are passed multiple extensions in -march, don't assume these will
be in any sort of order. If we do match, then restart the loop by setting
the search back to 0, and retrying.

This sorts out issues with the current kernel build where there are now
lots of extensions for the rv64i and even adding zacas doesn't silence the
warnings generated.

Signed-off-by: Ben Dooks <[email protected]>
---
 target-riscv.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/target-riscv.c b/target-riscv.c
index 80c25285..ddf50e61 100644
--- a/target-riscv.c
+++ b/target-riscv.c
@@ -56,7 +56,7 @@ static void parse_march_riscv(const char *arg)
 
 	// Each -march=.. options entirely overrides previous ones
 	riscv_flags = 0;
-
+	
 	for (i = 0; i < ARRAY_SIZE(basic_sets); i++) {
 		const char *pat = basic_sets[i].pattern;
 		size_t len = strlen(pat);
@@ -80,6 +80,7 @@ ext:
 		if (!strncmp(arg, pat, len)) {
 			riscv_flags |= extensions[i].flags;
 			arg += len;
+			i = 0;
 		}
 	}
 	if (arg[0])
-- 
2.37.2.352.g3c44437643