diff --git a/bfd/ChangeLog b/bfd/ChangeLog index fec2dcbb681..608ea545ad7 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2021-05-26 Nelson Chu + + * 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 * 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 2068edebdb6..d2781f30993 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 7206ec8573b..39b69e2b0a5 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 ff18ff6f0b8..c2fff926086 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 diff --git a/gas/ChangeLog b/gas/ChangeLog index 45cce1b99d0..eac946f13c1 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2021-05-26 Nelson Chu + + * config/tc-riscv.c (riscv_set_arch): Set + check_unknown_prefixed_ext to true for assembler. + 2021-05-25 Tamar Christina PR gas/25235 diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c index a76e53d51c3..42e57529369 100644 --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -410,6 +410,7 @@ riscv_set_arch (const char *s) rps.error_handler = as_bad; rps.xlen = &xlen; rps.get_default_version = riscv_get_default_ext_version; + rps.check_unknown_prefixed_ext = true; if (s == NULL) return;