RISC-V: Allow merging 'H' extension
authorTsukasa OI <research_trasio@irq.a4lg.com>
Sat, 26 Nov 2022 02:52:48 +0000 (02:52 +0000)
committerTsukasa OI <research_trasio@irq.a4lg.com>
Mon, 28 Nov 2022 02:35:43 +0000 (02:35 +0000)
Because riscv_merge_std_ext function did not merge the 'H' extension, linked
executables lacked 'H' extension when multiple objects are merged.

This issue is found while building OpenSBI with 'H' extension (resulting
ELF files did not contain "h1p0" in "Tag_RISCV_arch" even if *all* linked
object files contained it).

This commit adds 'h' to standard_exts variable to merge 'H' extension.

bfd/ChangeLog:

* elfnn-riscv.c (riscv_merge_std_ext): Add 'H' extension merging.

bfd/elfnn-riscv.c

index a2d85dbe9396e9be33862a4f57c7d4de36a10a74..a83c8ad2695e32ff6a63cabd611da997e5acf4a7 100644 (file)
@@ -3427,7 +3427,7 @@ riscv_merge_std_ext (bfd *ibfd,
                     struct riscv_subset_t **pin,
                     struct riscv_subset_t **pout)
 {
-  const char *standard_exts = "mafdqlcbjtpvn";
+  const char *standard_exts = "mafdqlcbjtpvnh";
   const char *p;
   struct riscv_subset_t *in = *pin;
   struct riscv_subset_t *out = *pout;