X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;ds=sidebyside;f=bfd%2Felf32-moxie.c;h=f8ef5eec4f316fd77d042550f92c906e96d16050;hb=refs%2Fheads%2Fconcurrent-displaced-stepping-2020-04-01;hp=f955096880f45af6115c02cd329d2ea1c94a6fa7;hpb=bc4e12ded1d4c8d589d82b2a10ade6b47f219db3;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elf32-moxie.c b/bfd/elf32-moxie.c index f955096880..f8ef5eec4f 100644 --- a/bfd/elf32-moxie.c +++ b/bfd/elf32-moxie.c @@ -1,8 +1,8 @@ /* moxie-specific support for 32-bit ELF. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2020 Free Software Foundation, Inc. Copied from elf32-fr30.c which is.. - Copyright (C) 1998-2017 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -87,8 +87,8 @@ struct moxie_reloc_map static const struct moxie_reloc_map moxie_reloc_map [] = { - { BFD_RELOC_NONE, R_MOXIE_NONE }, - { BFD_RELOC_32, R_MOXIE_32 }, + { BFD_RELOC_NONE, R_MOXIE_NONE }, + { BFD_RELOC_32, R_MOXIE_32 }, { BFD_RELOC_MOXIE_10_PCREL, R_MOXIE_PCREL10 }, }; @@ -123,8 +123,8 @@ moxie_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, const char *r_name) /* Set the howto pointer for an MOXIE ELF reloc. */ -static void -moxie_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +moxie_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -134,10 +134,13 @@ moxie_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, if (r_type >= (unsigned int) R_MOXIE_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid Moxie reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = & moxie_elf_howto_table [r_type]; + return TRUE; } /* Perform a single relocation. By default we use the standard BFD @@ -240,7 +243,7 @@ moxie_elf_relocate_section (bfd *output_bfd, name = bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link, sym->st_name); - name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name; + name = name == NULL ? bfd_section_name (sec) : name; } else { @@ -349,17 +352,13 @@ moxie_elf_check_relocs (bfd *abfd, r_symndx = ELF32_R_SYM (rel->r_info); if (r_symndx < symtab_hdr->sh_info) - h = NULL; + h = NULL; else { h = sym_hashes[r_symndx - symtab_hdr->sh_info]; while (h->root.type == bfd_link_hash_indirect || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; - - /* PR15323, ref flags aren't set for references in the same - object. */ - h->root.non_ir_ref_regular = 1; } } @@ -368,19 +367,19 @@ moxie_elf_check_relocs (bfd *abfd, #define ELF_ARCH bfd_arch_moxie #define ELF_MACHINE_CODE EM_MOXIE -#define ELF_MACHINE_ALT1 EM_MOXIE_OLD +#define ELF_MACHINE_ALT1 EM_MOXIE_OLD #define ELF_MAXPAGESIZE 0x1 -#define TARGET_BIG_SYM moxie_elf32_be_vec +#define TARGET_BIG_SYM moxie_elf32_be_vec #define TARGET_BIG_NAME "elf32-bigmoxie" -#define TARGET_LITTLE_SYM moxie_elf32_le_vec +#define TARGET_LITTLE_SYM moxie_elf32_le_vec #define TARGET_LITTLE_NAME "elf32-littlemoxie" #define elf_info_to_howto_rel NULL #define elf_info_to_howto moxie_info_to_howto_rela #define elf_backend_relocate_section moxie_elf_relocate_section #define elf_backend_gc_mark_hook moxie_elf_gc_mark_hook -#define elf_backend_check_relocs moxie_elf_check_relocs +#define elf_backend_check_relocs moxie_elf_check_relocs #define elf_backend_can_gc_sections 1 #define elf_backend_rela_normal 1