aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog8
-rw-r--r--bfd/elfnn-riscv.c2
-rw-r--r--bfd/elfxx-riscv.c3
-rw-r--r--bfd/elfxx-riscv.h1
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