From 6729e2c2af2bd94408430734316597843718a484 Mon Sep 17 00:00:00 2001 From: Nelson Chu Date: Fri, 20 Nov 2020 23:42:28 +0800 Subject: [PATCH] RISC-V: Fix the order checking for Z* extension. We have to check the first char of the Z* extensions, to make sure that they follow the order of the standard extensions. But we can not have the testcases for this patch, since we only support the zicsr and zifencei so far, both of them are the sub extensions of i. bfd/ * elfxx-riscv.c (riscv_parse_prefixed_ext): Use riscv_compare_subsets to check the Z* extensions' order. --- bfd/ChangeLog | 5 +++++ bfd/elfxx-riscv.c | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2a5ae822cc5..b3bcf9ea1e6 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2020-12-01 Nelson Chu + + * elfxx-riscv.c (riscv_parse_prefixed_ext): Use riscv_compare_subsets + to check the Z* extensions' order. + 2020-12-01 Nelson Chu * elfxx-riscv.c (riscv_parse_add_subset): Allow to add g with diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 711b3677180..06967804d6c 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1543,8 +1543,7 @@ riscv_parse_prefixed_ext (riscv_parse_subset_t *rps, } /* Check that the extension is in alphabetical order. */ - if (!strncasecmp (last_name, config->prefix, 1) - && strcasecmp (last_name, subset) > 0) + if (riscv_compare_subsets (last_name, subset) > 0) { rps->error_handler (_("-march=%s: %s ISA extension `%s' is not in alphabetical " -- 2.30.2