X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=bfd%2Felf32-cris.c;h=bee7108684924e98b2fc5e83896cd43c06259b60;hb=cd22ee05137b858fead379976d4c51e5cf23d907;hp=f47deb0e7b716fedd6993d1b064132410ccb131e;hpb=38f14ab8fcfa4eab8bab417a5a165b7403ef9b0e;p=thirdparty%2Fbinutils-gdb.git diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c index f47deb0e7b7..bee71086849 100644 --- a/bfd/elf32-cris.c +++ b/bfd/elf32-cris.c @@ -1,5 +1,5 @@ /* CRIS-specific support for 32-bit ELF. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. Contributed by Axis Communications AB. Written by Hans-Peter Nilsson, based on elf32-fr30.c PIC and shlib bits based primarily on elf32-m68k.c and elf32-i386.c. @@ -453,7 +453,7 @@ cris_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, const char *r_name) /* Set the howto pointer for an CRIS ELF reloc. */ -static void +static bfd_boolean cris_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, arelent * cache_ptr, Elf_Internal_Rela * dst) @@ -466,9 +466,11 @@ cris_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, /* 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 = & cris_elf_howto_table [r_type]; + return TRUE; } bfd_reloc_status_type @@ -887,7 +889,7 @@ static struct bfd_link_hash_table * elf_cris_link_hash_table_create (bfd *abfd) { struct elf_cris_link_hash_table *ret; - bfd_size_type amt = sizeof (struct elf_cris_link_hash_table); + size_t amt = sizeof (struct elf_cris_link_hash_table); ret = ((struct elf_cris_link_hash_table *) bfd_zmalloc (amt)); if (ret == (struct elf_cris_link_hash_table *) NULL) @@ -1042,7 +1044,7 @@ cris_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED, symname = (bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link, sym->st_name)); if (symname == NULL) - symname = bfd_section_name (input_bfd, sec); + symname = bfd_section_name (sec); } else { @@ -2478,7 +2480,7 @@ cris_elf_plt_sym_val (bfd_vma i ATTRIBUTE_UNUSED, const asection *plt, if ((got = bfd_get_section_by_name (abfd, ".got")) == NULL) return (bfd_vma) -1; - plt_sec_size = bfd_section_size (plt->owner, plt); + plt_sec_size = bfd_section_size (plt); plt_entry_size = (bfd_get_mach (abfd) == bfd_mach_cris_v32 ? PLT_ENTRY_SIZE_V32 : PLT_ENTRY_SIZE); @@ -3483,9 +3485,7 @@ cris_elf_check_relocs (bfd *abfd, /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_CRIS_GNU_VTENTRY: - BFD_ASSERT (h != NULL); - if (h != NULL - && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend)) + if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend)) return FALSE; break; @@ -3580,7 +3580,7 @@ elf_cris_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* It's OK to base decisions on the section name, because none of the dynobj section names depend upon the input files. */ - name = bfd_get_section_name (dynobj, s); + name = bfd_section_name (s); if (strcmp (name, ".plt") == 0) { @@ -3829,9 +3829,8 @@ cris_elf_object_p (bfd *abfd) /* Mark presence or absence of leading underscore. Set machine type flags from mach type. */ -static void -cris_elf_final_write_processing (bfd *abfd, - bfd_boolean linker ATTRIBUTE_UNUSED) +static bfd_boolean +cris_elf_final_write_processing (bfd *abfd) { unsigned long e_flags = elf_elfheader (abfd)->e_flags; @@ -3859,6 +3858,7 @@ cris_elf_final_write_processing (bfd *abfd, } elf_elfheader (abfd)->e_flags = e_flags; + return _bfd_elf_final_write_processing (abfd); } /* Set the mach type from e_flags value. */