diff options
author | Richard Henderson <rth@redhat.com> | 1999-07-13 18:21:29 +0000 |
---|---|---|
committer | Richard Henderson <rth@redhat.com> | 1999-07-13 18:21:29 +0000 |
commit | 30b30c21815a6f23b0db7b135926f988ddff22a3 (patch) | |
tree | 3a29e627f94610eba3a177b83acd0ed54f8913d7 /bfd/elf64-alpha.c | |
parent | e1ee1229a2384e923b73ef5943141fa39d51fdff (diff) | |
download | gdb-30b30c21815a6f23b0db7b135926f988ddff22a3.zip gdb-30b30c21815a6f23b0db7b135926f988ddff22a3.tar.gz gdb-30b30c21815a6f23b0db7b135926f988ddff22a3.tar.bz2 |
* elf-bfd.h (struct elf_link_local_dynamic_entry): New.
(struct elf_link_hash_table): Add dynlocal.
(_bfd_elf_link_lookup_local_dynindx): Prototype.
(_bfd_elf_link_adjust_dynindx): Delete.
(_bfd_elf_link_renumber_dynsyms): Prototype.
(_bfd_elf,link_record_local_dynamic_symbol): Prototype.
* elfcode.h (elf_link_record_local_dynamic_symbol): New alias.
* elflink.c (_bfd_elf_link_adjust_dynindx): Delete.
(_bfd_elf_link_lookup_local_dynindx): New function.
(elf_link_renumber_hash_table_dynsyms): New function.
(_bfd_elf_link_renumber_dynsyms): New function.
* elflink.h (elf_link_record_local_dynamic_symbol): New function.
(struct elf_assign_sym_version_info): Delete removed_dynamic.
(bfd_elf,size_dynamic_sections): Use _bfd_strip_section_from_output
instead of elf_link_remove_section_and_adjust_dynindices.
Remove removed_dynamic code. Use _bfd_elf_link_renumber_dynsyms.
(elf_link_assign_sym_version): Remove removed_dynamic code.
(elf_link_renumber_dynsyms): Delete.
(elf_bfd_final_link): Install section and local symbols into .dynsym.
* elf32-m68k.c (elf_m68k_adjust_dynindx): Delete.
(elf_m68k_size_dynamic_sections): Don't set section dynindicies.
(elf_m68k_finish_dynamic_sections): Don't write section dynsyms.
* elf32-mips.c: Similarly.
* elf32-ppc.c: Similarly.
* elf32-sparc.c: Similarly.
* elf64-alpha.c: Similarly.
* elf64-sparc.c: Similarly.
Diffstat (limited to 'bfd/elf64-alpha.c')
-rw-r--r-- | bfd/elf64-alpha.c | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c index a8a7c40..2a0cdb5 100644 --- a/bfd/elf64-alpha.c +++ b/bfd/elf64-alpha.c @@ -115,8 +115,6 @@ static boolean elf64_alpha_adjust_dynamic_symbol PARAMS((struct bfd_link_info *, struct elf_link_hash_entry *)); static boolean elf64_alpha_size_dynamic_sections PARAMS((bfd *, struct bfd_link_info *)); -static boolean elf64_alpha_adjust_dynindx - PARAMS((struct elf_link_hash_entry *, PTR)); static boolean elf64_alpha_relocate_section PARAMS((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); @@ -3264,34 +3262,6 @@ elf64_alpha_size_dynamic_sections (output_bfd, info) } } - /* If we are generating a shared library, we generate a section - symbol for each output section. These are local symbols, which - means that they must come first in the dynamic symbol table. - That means we must increment the dynamic symbol index of every - other dynamic symbol. */ - if (info->shared) - { - long c[2], i; - asection *p; - - c[0] = 0; - c[1] = bfd_count_sections (output_bfd); - - elf_hash_table (info)->dynsymcount += c[1]; - elf_link_hash_traverse (elf_hash_table(info), - elf64_alpha_adjust_dynindx, - (PTR) c); - - for (i = 1, p = output_bfd->sections; - p != NULL; - p = p->next, i++) - { - elf_section_data (p)->dynindx = i; - /* These symbols will have no names, so we don't need to - fiddle with dynstr_index. */ - } - } - if (elf_hash_table (info)->dynamic_sections_created) { /* Add some entries to the .dynamic section. We fill in the @@ -3332,22 +3302,6 @@ elf64_alpha_size_dynamic_sections (output_bfd, info) return true; } -/* Increment the index of a dynamic symbol by a given amount. Called - via elf_link_hash_traverse. */ - -static boolean -elf64_alpha_adjust_dynindx (h, cparg) - struct elf_link_hash_entry *h; - PTR cparg; -{ - long *cp = (long *)cparg; - - if (h->dynindx >= cp[0]) - h->dynindx += cp[1]; - - return true; -} - /* Relocate an Alpha ELF section. */ static boolean @@ -3991,44 +3945,6 @@ elf64_alpha_finish_dynamic_sections (output_bfd, info) } } - if (info->shared) - { - asection *sdynsym; - asection *s; - Elf_Internal_Sym sym; - - /* Set up the section symbols for the output sections. */ - - sdynsym = bfd_get_section_by_name (dynobj, ".dynsym"); - BFD_ASSERT (sdynsym != NULL); - - sym.st_size = 0; - sym.st_name = 0; - sym.st_info = ELF_ST_INFO (STB_LOCAL, STT_SECTION); - sym.st_other = 0; - - for (s = output_bfd->sections; s != NULL; s = s->next) - { - int indx; - - sym.st_value = s->vma; - - indx = elf_section_data (s)->this_idx; - BFD_ASSERT (indx > 0); - sym.st_shndx = indx; - - bfd_elf64_swap_symbol_out (output_bfd, &sym, - (PTR) (((Elf64_External_Sym *) - sdynsym->contents) - + elf_section_data (s)->dynindx)); - } - - /* Set the sh_info field of the output .dynsym section to the - index of the first global symbol. */ - elf_section_data (sdynsym->output_section)->this_hdr.sh_info = - bfd_count_sections (output_bfd) + 1; - } - return true; } |