From 640d6bfddb82560687d8796aa7f0675c93bb062f Mon Sep 17 00:00:00 2001 From: Kuan-Lin Chen Date: Tue, 17 Jan 2017 09:46:28 +0800 Subject: [PATCH] RISC-V/bfd: Hook elf_backend_object_p to set the mach type. --- bfd/ChangeLog | 4 ++++ bfd/elfnn-riscv.c | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ef7d68c..3fae9dd 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2017-01-17 Kuan-Lin Chen + + * elfnn-riscv.c (riscv_elf_object_p): New function. + 2017-01-12 H.J. Lu PR ld/21038 diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index f414429..320d318 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -3191,6 +3191,19 @@ riscv_elf_grok_psinfo (bfd *abfd, Elf_Internal_Note *note) return TRUE; } +/* Set the right mach type. */ +static bfd_boolean +riscv_elf_object_p (bfd *abfd) +{ + /* There are only two mach types in RISCV currently. */ + if (strcmp (abfd->xvec->name, "elf32-littleriscv") == 0) + bfd_default_set_arch_mach (abfd, bfd_arch_riscv, bfd_mach_riscv32); + else + bfd_default_set_arch_mach (abfd, bfd_arch_riscv, bfd_mach_riscv64); + + return TRUE; +} + #define TARGET_LITTLE_SYM riscv_elfNN_vec #define TARGET_LITTLE_NAME "elfNN-littleriscv" @@ -3216,6 +3229,7 @@ riscv_elf_grok_psinfo (bfd *abfd, Elf_Internal_Note *note) #define elf_backend_plt_sym_val riscv_elf_plt_sym_val #define elf_backend_grok_prstatus riscv_elf_grok_prstatus #define elf_backend_grok_psinfo riscv_elf_grok_psinfo +#define elf_backend_object_p riscv_elf_object_p #define elf_info_to_howto_rel NULL #define elf_info_to_howto riscv_info_to_howto_rela #define bfd_elfNN_bfd_relax_section _bfd_riscv_relax_section -- 2.7.4