diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 8 | ||||
-rw-r--r-- | bfd/elfnn-riscv.c | 2 | ||||
-rw-r--r-- | bfd/elfxx-riscv.c | 3 | ||||
-rw-r--r-- | bfd/elfxx-riscv.h | 1 |
4 files changed, 13 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index fec2dcb..608ea54 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2021-05-26 Nelson Chu <nelson.chu@sifive.com> + + * elfxx-riscv.h (check_unknown_prefixed_ext): New bool. + * elfxx-riscv.c (riscv_parse_prefixed_ext): Do not check the + prefixed extension name if check_unknown_prefixed_ext is false. + * elfnn-riscv.c (riscv_merge_arch_attr_info): Set + check_unknown_prefixed_ext to false for linker. + 2021-05-25 Nick Clifton <nickc@redhat.com> * elf32-arn.c (struct elf_arm_obj_tdata): Add num_entries field. diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index 2068ede..d2781f3 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -3558,11 +3558,13 @@ riscv_merge_arch_attr_info (bfd *ibfd, char *in_arch, char *out_arch) rpe_in.error_handler = _bfd_error_handler; rpe_in.xlen = &xlen_in; rpe_in.get_default_version = NULL; + rpe_in.check_unknown_prefixed_ext = false; rpe_out.subset_list = &out_subsets; rpe_out.error_handler = _bfd_error_handler; rpe_out.xlen = &xlen_out; rpe_out.get_default_version = NULL; + rpe_out.check_unknown_prefixed_ext = false; if (in_arch == NULL && out_arch == NULL) return NULL; diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 7206ec8..39b69e2 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1681,7 +1681,8 @@ riscv_parse_prefixed_ext (riscv_parse_subset_t *rps, and cannot simply be the prefixed name. */ /* Check that the extension name is well-formed. */ - if (!riscv_valid_prefixed_ext (subset)) + if (rps->check_unknown_prefixed_ext + && !riscv_valid_prefixed_ext (subset)) { rps->error_handler (_("-march=%s: unknown prefixed ISA extension `%s'"), diff --git a/bfd/elfxx-riscv.h b/bfd/elfxx-riscv.h index ff18ff6..c2fff92 100644 --- a/bfd/elfxx-riscv.h +++ b/bfd/elfxx-riscv.h @@ -74,6 +74,7 @@ typedef struct void (*get_default_version) (const char *, int *, int *); + bool check_unknown_prefixed_ext; } riscv_parse_subset_t; extern bool |