[committed,2/2] RISC-V: Fix wrong version number when arch contains 'p'.

Message ID 20210928114138.2049-2-nelson.chu@sifive.com
State New
Headers show
Series
  • [committed,1/2] RISC-V: Allow to add numbers in the prefixed extension names.
Related show

Commit Message

Nelson Chu Sept. 28, 2021, 11:41 a.m.
From: Cooper Qu <cooper.qu@linux.alibaba.com>


When specify a default version for p extension in
riscv_supported_std_ext[](elfxx-riscv.c) and assembling with
-march=rv32imacp, the c extension's version in attribute will become
0p0, the expectation is 2p0.

TODO: Remember to add testcase when we have supported standrad p in
the future.

bfd/
	PR gas/28372
	* elfxx-riscv.c (riscv_parsing_subset_version): Break if p
	represent the 'p' extension.

Change-Id: Ia4e0cf26f3d7d07acaee8cefd86707ecac663a59
---
 bfd/elfxx-riscv.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

-- 
2.30.2

Patch

diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index c3d019c03a6..044cc63d09e 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -1536,13 +1536,9 @@  riscv_parsing_subset_version (const char *p,
 	{
 	  np = *(p + 1);
 
+	  /* Might be beginning of `p` extension.  */
 	  if (!ISDIGIT (np))
-	    {
-	      /* Might be beginning of `p` extension.  */
-	      *major_version = version;
-	      *minor_version = 0;
-	      return p;
-	    }
+	    break;
 
 	  *major_version = version;
 	  major_p = false;