X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Felf32-moxie.c;h=9b6048f0c0054b06bc442962b51ff1119b0004b4;hb=2480b6fa946bb2d2dc993b1c4a83a8e1258a75e8;hp=09732ac8f0253a0a697b6d983e8fbff524b2fd22;hpb=0e1862bb401f47716446aef143b2bf7a4563f541;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elf32-moxie.c b/bfd/elf32-moxie.c index 09732ac8f0..9b6048f0c0 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-2015 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Copied from elf32-fr30.c which is.. - Copyright (C) 1998-2015 Free Software Foundation, Inc. + Copyright (C) 1998-2019 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) { @@ -133,10 +133,14 @@ moxie_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, r_type = ELF32_R_TYPE (dst->r_info); if (r_type >= (unsigned int) R_MOXIE_max) { - _bfd_error_handler (_("%B: invalid Moxie reloc number: %d"), abfd, r_type); - r_type = 0; + /* xgettext:c-format */ + _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 @@ -239,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 { @@ -270,15 +274,14 @@ moxie_elf_relocate_section (bfd *output_bfd, switch (r) { case bfd_reloc_overflow: - r = info->callbacks->reloc_overflow + (*info->callbacks->reloc_overflow) (info, (h ? &h->root : NULL), name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset); break; case bfd_reloc_undefined: - r = info->callbacks->undefined_symbol - (info, name, input_bfd, input_section, rel->r_offset, - TRUE); + (*info->callbacks->undefined_symbol) + (info, name, input_bfd, input_section, rel->r_offset, TRUE); break; case bfd_reloc_outofrange: @@ -299,11 +302,8 @@ moxie_elf_relocate_section (bfd *output_bfd, } if (msg) - r = info->callbacks->warning - (info, msg, name, input_bfd, input_section, rel->r_offset); - - if (! r) - return FALSE; + (*info->callbacks->warning) (info, msg, name, input_bfd, + input_section, rel->r_offset); } } @@ -352,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 = 1; } } @@ -371,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