RISC-V: Improve the error message for the mis-matched ISA versions.
authorKito Cheng <kito.cheng@sifive.com>
Tue, 7 Jul 2020 02:30:36 +0000 (19:30 -0700)
committerNelson Chu <nelson.chu@sifive.com>
Thu, 3 Sep 2020 03:11:38 +0000 (11:11 +0800)
commit72bd6912ea38224481f8bd0ed13b751e0fda4683
tree0ba9c3c12bb03120fd7b2608423fb1523c48d533
parentd48b742bc1a7af6a673e747c91bf7c72518a0b6a
RISC-V: Improve the error message for the mis-matched ISA versions.

Consider the updated attr-merge-arch-failed-01.d testcase.  Extension
A's version are mis-matched between attr-merge-arch-failed-01a.s and
attr-merge-arch-failed-01b.s.  But the old binutils reports that the
mis-matched extension is M rather than A.  This commit is used to fix
the wrong mis-matched error message.

Besides, when parsing the arch string in the riscv_parse_subset, it
shouldn't be NULL or empty.  However, it might be empty when we failed
to merge the arch string in the riscv_merge_attributes.  Since we should
already issue the correct error message in another side, and the message
- ISA string must begin with rv32 or rv64 - is meaninglesss when the arch
string is empty, so do not issue it.

bfd/
* elfnn-riscv.c (riscv_merge_std_ext): Fix to report the correct
error message when the versions of extension are mis-matched.
* elfxx-riscv.c (riscv_parse_subset): Don't issue the error when
the string is empty.

ld/
* testsuite/ld-riscv-elf/attr-merge-arch-failed-01.d: Updated.
* testsuite/ld-riscv-elf/attr-merge-arch-failed-01a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-failed-01b.s: Likewise.
bfd/ChangeLog
bfd/elfnn-riscv.c
bfd/elfxx-riscv.c
ld/ChangeLog
ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01.d
ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01a.s
ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01b.s