X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Felf32-d10v.c;h=50fdeeb2294504b8de67262723782b7f0defff59;hb=f0927d2036f0abbbcdade43005824e6170b3dc0e;hp=8dac777c56227cb423fe077b8d2c54afe8bf9a08;hpb=0aa13feeeb78fc9323bee329c4d91c30f25de121;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elf32-d10v.c b/bfd/elf32-d10v.c index 8dac777c56..50fdeeb229 100644 --- a/bfd/elf32-d10v.c +++ b/bfd/elf32-d10v.c @@ -1,5 +1,5 @@ /* D10V-specific support for 32-bit ELF - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2021 Free Software Foundation, Inc. Contributed by Martin Hunt (hunt@cygnus.com). This file is part of BFD, the Binary File Descriptor library. @@ -35,135 +35,135 @@ static reloc_howto_type elf_d10v_howto_table[] = 0, /* Rightshift. */ 3, /* Size (0 = byte, 1 = short, 2 = long). */ 0, /* Bitsize. */ - FALSE, /* PC_relative. */ + false, /* PC_relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ bfd_elf_generic_reloc, /* Special_function. */ "R_D10V_NONE", /* Name. */ - FALSE, /* Partial_inplace. */ + false, /* Partial_inplace. */ 0, /* Src_mask. */ 0, /* Dst_mask. */ - FALSE), /* PCrel_offset. */ + false), /* PCrel_offset. */ /* An PC Relative 10-bit relocation, shifted by 2, right container. */ HOWTO (R_D10V_10_PCREL_R, /* Type. */ 2, /* Rightshift. */ 2, /* Size (0 = byte, 1 = short, 2 = long). */ 8, /* Bitsize. */ - TRUE, /* PC_relative. */ + true, /* PC_relative. */ 0, /* Bitpos. */ complain_overflow_signed, /* Complain_on_overflow. */ bfd_elf_generic_reloc, /* Special_function. */ "R_D10V_10_PCREL_R", /* Name. */ - FALSE, /* Partial_inplace. */ + false, /* Partial_inplace. */ 0xff, /* Src_mask. */ 0xff, /* Dst_mask. */ - TRUE), /* PCrel_offset. */ + true), /* PCrel_offset. */ /* An PC Relative 10-bit relocation, shifted by 2, left container. */ HOWTO (R_D10V_10_PCREL_L, /* Type. */ 2, /* Rightshift. */ 2, /* Size (0 = byte, 1 = short, 2 = long). */ 8, /* Bitsize. */ - TRUE, /* PC_relative. */ + true, /* PC_relative. */ 15, /* Bitpos. */ complain_overflow_signed, /* Complain_on_overflow. */ bfd_elf_generic_reloc, /* Special_function. */ "R_D10V_10_PCREL_L", /* Name. */ - FALSE, /* Partial_inplace. */ + false, /* Partial_inplace. */ 0x07f8000, /* Src_mask. */ 0x07f8000, /* Dst_mask. */ - TRUE), /* PCrel_offset. */ + true), /* PCrel_offset. */ /* A 16 bit absolute relocation. */ HOWTO (R_D10V_16, /* Type. */ 0, /* Rightshift. */ 1, /* Size (0 = byte, 1 = short, 2 = long). */ 16, /* Bitsize. */ - FALSE, /* PC_relative. */ + false, /* PC_relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ bfd_elf_generic_reloc, /* Special_function. */ "R_D10V_16", /* Name. */ - FALSE, /* Partial_inplace. */ + false, /* Partial_inplace. */ 0xffff, /* Src_mask. */ 0xffff, /* Dst_mask. */ - FALSE), /* PCrel_offset. */ + false), /* PCrel_offset. */ /* An 18 bit absolute relocation, right shifted 2. */ HOWTO (R_D10V_18, /* Type. */ 2, /* Rightshift. */ 1, /* Size (0 = byte, 1 = short, 2 = long). */ 16, /* Bitsize. */ - FALSE, /* PC_relative. */ + false, /* PC_relative. */ 0, /* Bitpos. */ complain_overflow_dont, /* Complain_on_overflow. */ bfd_elf_generic_reloc, /* Special_function. */ "R_D10V_18", /* Name. */ - FALSE, /* Partial_inplace. */ + false, /* Partial_inplace. */ 0xffff, /* Src_mask. */ 0xffff, /* Dst_mask. */ - FALSE), /* PCrel_offset. */ + false), /* PCrel_offset. */ /* A relative 18 bit relocation, right shifted by 2. */ HOWTO (R_D10V_18_PCREL, /* Type. */ 2, /* Rightshift. */ 2, /* Size (0 = byte, 1 = short, 2 = long). */ 16, /* Bitsize. */ - TRUE, /* PC_relative. */ + true, /* PC_relative. */ 0, /* Bitpos. */ complain_overflow_signed, /* Complain_on_overflow. */ bfd_elf_generic_reloc, /* Special_function. */ "R_D10V_18_PCREL", /* Name. */ - FALSE, /* Partial_inplace. */ + false, /* Partial_inplace. */ 0xffff, /* Src_mask. */ 0xffff, /* Dst_mask. */ - TRUE), /* PCrel_offset. */ + true), /* PCrel_offset. */ /* A 32 bit absolute relocation. */ HOWTO (R_D10V_32, /* Type. */ 0, /* Rightshift. */ 2, /* Size (0 = byte, 1 = short, 2 = long). */ 32, /* Bitsize. */ - FALSE, /* PC_relative. */ + false, /* PC_relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ bfd_elf_generic_reloc, /* Special_function. */ "R_D10V_32", /* Name. */ - FALSE, /* Partial_inplace. */ + false, /* Partial_inplace. */ 0xffffffff, /* Src_mask. */ 0xffffffff, /* Dst_mask. */ - FALSE), /* PCrel_offset. */ + false), /* PCrel_offset. */ /* GNU extension to record C++ vtable hierarchy. */ HOWTO (R_D10V_GNU_VTINHERIT, /* Type. */ 0, /* Rightshift. */ 2, /* Size (0 = byte, 1 = short, 2 = long). */ 0, /* Bitsize. */ - FALSE, /* PC_relative. */ + false, /* PC_relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ NULL, /* Special_function. */ "R_D10V_GNU_VTINHERIT",/* Name. */ - FALSE, /* Partial_inplace. */ + false, /* Partial_inplace. */ 0, /* Src_mask. */ 0, /* Dst_mask. */ - FALSE), /* PCrel_offset. */ + false), /* PCrel_offset. */ /* GNU extension to record C++ vtable member usage. */ HOWTO (R_D10V_GNU_VTENTRY, /* Type. */ 0, /* Rightshift. */ 2, /* Size (0 = byte, 1 = short, 2 = long). */ 0, /* Bitsize. */ - FALSE, /* PC_relative. */ + false, /* PC_relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ _bfd_elf_rel_vtable_reloc_fn, /* Special_function. */ "R_D10V_GNU_VTENTRY", /* Name. */ - FALSE, /* Partial_inplace. */ + false, /* Partial_inplace. */ 0, /* Src_mask. */ 0, /* Dst_mask. */ - FALSE), /* PCrel_offset. */ + false), /* PCrel_offset. */ }; /* Map BFD reloc types to D10V ELF reloc types. */ @@ -220,7 +220,7 @@ bfd_elf32_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, /* Set the howto pointer for an D10V ELF reloc. */ -static void +static bool d10v_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) @@ -233,9 +233,11 @@ d10v_info_to_howto_rel (bfd *abfd, /* xgettext:c-format */ _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); - r_type = 0; + bfd_set_error (bfd_error_bad_value); + return false; } cache_ptr->howto = &elf_d10v_howto_table[r_type]; + return true; } static asection * @@ -260,7 +262,7 @@ elf32_d10v_gc_mark_hook (asection *sec, Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ -static bfd_boolean +static bool elf32_d10v_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec, @@ -272,7 +274,7 @@ elf32_d10v_check_relocs (bfd *abfd, const Elf_Internal_Rela *rel_end; if (bfd_link_relocatable (info)) - return TRUE; + return true; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -300,21 +302,19 @@ elf32_d10v_check_relocs (bfd *abfd, Reconstruct it for later use during GC. */ case R_D10V_GNU_VTINHERIT: if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return FALSE; + return false; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_D10V_GNU_VTENTRY: - BFD_ASSERT (h != NULL); - if (h != NULL - && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset)) - return FALSE; + if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset)) + return false; break; } } - return TRUE; + return true; } static bfd_vma @@ -386,7 +386,7 @@ insert_rel_addend (bfd *abfd, /* Relocate a D10V ELF section. */ -static bfd_boolean +static int elf32_d10v_relocate_section (bfd *output_bfd, struct bfd_link_info *info, bfd *input_bfd, @@ -460,7 +460,7 @@ elf32_d10v_relocate_section (bfd *output_bfd, } else { - bfd_boolean unresolved_reloc, warned, ignored; + bool unresolved_reloc, warned, ignored; RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel, r_symndx, symtab_hdr, sym_hashes, @@ -482,7 +482,7 @@ elf32_d10v_relocate_section (bfd *output_bfd, name = (bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link, sym->st_name)); if (name == NULL || *name == '\0') - name = bfd_section_name (input_bfd, sec); + name = bfd_section_name (sec); } r = _bfd_final_link_relocate (howto, input_bfd, input_section, @@ -503,7 +503,7 @@ elf32_d10v_relocate_section (bfd *output_bfd, case bfd_reloc_undefined: (*info->callbacks->undefined_symbol) - (info, name, input_bfd, input_section, rel->r_offset, TRUE); + (info, name, input_bfd, input_section, rel->r_offset, true); break; case bfd_reloc_outofrange: @@ -530,7 +530,7 @@ elf32_d10v_relocate_section (bfd *output_bfd, } } - return TRUE; + return true; } #define ELF_ARCH bfd_arch_d10v #define ELF_MACHINE_CODE EM_D10V @@ -540,10 +540,9 @@ elf32_d10v_relocate_section (bfd *output_bfd, #define TARGET_BIG_SYM d10v_elf32_vec #define TARGET_BIG_NAME "elf32-d10v" -#define elf_info_to_howto 0 +#define elf_info_to_howto NULL #define elf_info_to_howto_rel d10v_info_to_howto_rel #define elf_backend_object_p 0 -#define elf_backend_final_write_processing 0 #define elf_backend_gc_mark_hook elf32_d10v_gc_mark_hook #define elf_backend_check_relocs elf32_d10v_check_relocs #define elf_backend_relocate_section elf32_d10v_relocate_section