X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Felf32-cris.c;h=ad3830901ea0779baefdff61c2c471202ee8af4d;hb=b4a983cb93fa80d1653194e0a58231327c7d8cd3;hp=4c6d4dabb73c67c05f212b8fe3b45f7969270132;hpb=0aa13feeeb78fc9323bee329c4d91c30f25de121;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c index 4c6d4dabb7..ad3830901e 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 @@ -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 { @@ -1179,10 +1181,10 @@ cris_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED, _bfd_error_handler ((h->got.offset == (bfd_vma) -1) /* xgettext:c-format */ - ? _("%pB, section %pA: No PLT nor GOT for relocation %s" + ? _("%pB, section %pA: no PLT nor GOT for relocation %s" " against symbol `%s'") /* xgettext:c-format */ - : _("%pB, section %pA: No PLT for relocation %s" + : _("%pB, section %pA: no PLT for relocation %s" " against symbol `%s'"), input_bfd, input_section, @@ -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); @@ -3045,7 +3047,7 @@ cris_elf_check_relocs (bfd *abfd, { _bfd_error_handler /* xgettext:c-format */ - (_("%pB, section %pA:\n v10/v32 compatible object" + (_("%pB, section %pA: v10/v32 compatible object" " must not contain a PIC relocation"), abfd, sec); return FALSE; @@ -3317,7 +3319,7 @@ cris_elf_check_relocs (bfd *abfd, /* FIXME: How do we make this optionally a warning only? */ _bfd_error_handler /* xgettext:c-format */ - (_("%pB, section %pA:\n relocation %s should not" + (_("%pB, section %pA: relocation %s should not" " be used in a shared object; recompile with -fPIC"), abfd, sec, @@ -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) { @@ -3742,8 +3742,8 @@ elf_cris_discard_excess_dso_dynamics (struct elf_cris_link_hash_entry *h, /* FIXME: How do we make this optionally a warning only? */ _bfd_error_handler /* xgettext:c-format */ - (_("%pB, section `%pA', to symbol `%s':\n" - " relocation %s should not be used" + (_("%pB, section `%pA', to symbol `%s':" + " relocation %s should not be used" " in a shared object; recompile with -fPIC"), s->section->owner, s->section, @@ -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; @@ -3855,10 +3854,11 @@ cris_elf_final_write_processing (bfd *abfd, default: _bfd_abort (__FILE__, __LINE__, - _("Unexpected machine number")); + _("unexpected machine number")); } elf_elfheader (abfd)->e_flags = e_flags; + return _bfd_elf_final_write_processing (abfd); } /* Set the mach type from e_flags value. */