From aa8046caa0386351fb9db0958796c655a8e9a3d9 Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Mon, 11 Feb 2002 06:17:43 +0000 Subject: [PATCH] * elf32-sh.c: Added missing prototypes. * elf32-sh64.c: Likewise. (sh_elf_align_loads): Mark unused args as such. * elf64-sh64.c: Added missing prototypes. (struct elf_sh64_link_hash_entry): Fix typo. (sh_elf64_relocate_section): Fix info argument passed to _bfd_elf_section_offset. --- bfd/ChangeLog | 10 ++++++++++ bfd/elf32-sh.c | 7 +++++-- bfd/elf32-sh64.c | 1 + bfd/elf64-sh64.c | 27 ++++++++++++++++++++++----- 4 files changed, 38 insertions(+), 7 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 88094cc5e7..6e48ed993c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,13 @@ +2002-02-11 Alexandre Oliva + + * elf32-sh.c: Added missing prototypes. + * elf32-sh64.c: Likewise. + (sh_elf_align_loads): Mark unused args as such. + * elf64-sh64.c: Added missing prototypes. + (struct elf_sh64_link_hash_entry): Fix typo. + (sh_elf64_relocate_section): Fix info argument passed to + _bfd_elf_section_offset. + 2002-02-11 Alan Modra * Makefile.am: "make dep-am". diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c index d6033456b2..6c13404fd0 100644 --- a/bfd/elf32-sh.c +++ b/bfd/elf32-sh.c @@ -85,6 +85,9 @@ static boolean sh_elf_gc_sweep_hook const Elf_Internal_Rela *)); static enum elf_reloc_type_class sh_elf_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); +#ifdef INCLUDE_SHMEDIA +inline static void movi_shori_putval PARAMS ((bfd *, unsigned long, char *)); +#endif /* The name of the dynamic interpreter. This is put in the .interp section. */ @@ -2808,10 +2811,10 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count) static boolean sh_elf_align_loads (abfd, sec, internal_relocs, contents, pswapped) - bfd *abfd; + bfd *abfd ATTRIBUTE_UNUSED; asection *sec; Elf_Internal_Rela *internal_relocs; - bfd_byte *contents; + bfd_byte *contents ATTRIBUTE_UNUSED; boolean *pswapped; { Elf_Internal_Rela *irel, *irelend; diff --git a/bfd/elf32-sh64.c b/bfd/elf32-sh64.c index 561c7af5ad..5c85d36c2d 100644 --- a/bfd/elf32-sh64.c +++ b/bfd/elf32-sh64.c @@ -58,6 +58,7 @@ static boolean sh64_backend_section_from_shdr static void sh64_elf_final_write_processing PARAMS ((bfd *, boolean)); static boolean sh64_bfd_elf_copy_private_section_data PARAMS ((bfd *, asection *, bfd *, asection *)); +static void sh64_find_section_for_address PARAMS ((bfd *, asection *, PTR)); /* Let elf32-sh.c handle the "bfd_" definitions, so we only have to intrude with an #ifndef around the function definition. */ diff --git a/bfd/elf64-sh64.c b/bfd/elf64-sh64.c index 143a560fb4..ab22187e24 100644 --- a/bfd/elf64-sh64.c +++ b/bfd/elf64-sh64.c @@ -84,7 +84,7 @@ struct elf_sh64_link_hash_entry bfd_vma datalabel_got_offset; /* Number of PC relative relocs copied for this symbol. */ - struct elf_sh_pcrel_relocs_copied *pcrel_relocs_copied; + struct elf_sh64_pcrel_relocs_copied *pcrel_relocs_copied; }; /* sh ELF linker hash table. */ @@ -145,6 +145,25 @@ extern boolean sh64_elf64_link_output_symbol_hook static boolean sh64_elf64_fake_sections PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); static void sh64_elf64_final_write_processing PARAMS ((bfd *, boolean)); +static struct bfd_hash_entry *sh64_elf64_link_hash_newfunc + PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); +static struct bfd_link_hash_table *sh64_elf64_link_hash_table_create + PARAMS ((bfd *)); +inline static void movi_shori_putval PARAMS ((bfd *, unsigned long, char *)); +inline static void movi_3shori_putval PARAMS ((bfd *, bfd_vma, char *)); +static boolean sh64_elf64_create_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); +static boolean sh64_elf64_adjust_dynamic_symbol + PARAMS ((struct bfd_link_info *info, struct elf_link_hash_entry *)); +static boolean sh64_elf64_discard_copies + PARAMS ((struct elf_sh64_link_hash_entry *, PTR)); +static boolean sh64_elf64_size_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); +static boolean sh64_elf64_finish_dynamic_symbol + PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, + Elf_Internal_Sym *)); +static boolean sh64_elf64_finish_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); static reloc_howto_type sh_elf64_howto_table[] = { /* No relocation. */ @@ -1729,10 +1748,8 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section, skip = false; outrel.r_offset - = _bfd_elf_section_offset (output_bfd, - &elf_hash_table (info)->stab_info, - input_section, - rel->r_offset); + = _bfd_elf_section_offset (output_bfd, info, + input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) skip = true; -- 2.11.0