diff options
author | Alan Modra <amodra@gmail.com> | 2010-02-03 12:03:35 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2010-02-03 12:03:35 +0000 |
commit | 927be08ec81c122ef4872ec6d588965cbe05d7f9 (patch) | |
tree | 049614fd2b74a83f46ddb1e2c0f3324f489a89e9 /bfd/elf64-ppc.h | |
parent | 32d49b7b49a5ef4fe65c6f619e3825870b072b14 (diff) | |
download | gdb-927be08ec81c122ef4872ec6d588965cbe05d7f9.zip gdb-927be08ec81c122ef4872ec6d588965cbe05d7f9.tar.gz gdb-927be08ec81c122ef4872ec6d588965cbe05d7f9.tar.bz2 |
bfd/
* elf64-ppc.c (struct plt_entry): Move earlier in file.
(struct got_entry): Likewise. Add is_indirect and got.ent fields.
(struct ppc64_elf_obj_tdata): Change tlsld_got to be a struct got_entry.
Update all uses.
(struct ppc_link_hash_table): Add got_reli_size and second_toc_pass.
Remove no_multi_toc.
(update_local_sym_info, ppc64_elf_check_relocs): Clear is_indirect
when allocating a new struct got_entry.
(allocate_got): New function, extracted from..
(allocate_dynrelocs): ..here. Abort on got entry in non-ppc64 bfd.
(ppc64_elf_size_dynamic_sections): Track got relocs allocated in
.reliplt by got_reli_size. Set owner on ppc64_tlsld_got entries.
(ppc64_elf_setup_section_lists): Remove output_bfd param and
no_multi_toc, add add_stub_section and layout_sections_again. Stash
new params in htab. Extract some code to..
(ppc64_elf_start_multitoc_partition): ..here. New function.
(ppc64_elf_next_toc_section): Check for linker script errors. Handle
second pass toc scan.
(merge_got_entries, merge_global_got, reallocate_got): New functions.
(ppc64_elf_reinit_toc): Rename to..
(ppc64_elf_finish_multitoc_partition): ..this.
(ppc64_elf_layout_multitoc): New function.
(ppc64_elf_size_stubs): Delete output_bfd, add_stub_section and
layout_sections_again params.
(ppc64_elf_relocate_section): Handle indirect got entries.
* elf64-ppc.h: Update prototypes. Declare new functions.
ld/
* emultempl/ppc64elf.em (build_toc_list): Report errors from
ppc64_elf_next_toc_section.
(after_allocation): Update for changed function names and params.
Run second pass of multitoc partitioning.
Diffstat (limited to 'bfd/elf64-ppc.h')
-rw-r--r-- | bfd/elf64-ppc.h | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/bfd/elf64-ppc.h b/bfd/elf64-ppc.h index e5f7140..79bb1b3 100644 --- a/bfd/elf64-ppc.h +++ b/bfd/elf64-ppc.h @@ -1,5 +1,5 @@ /* PowerPC64-specific support for 64-bit ELF. - Copyright 2002, 2003, 2004, 2005, 2007, 2008 + Copyright 2002, 2003, 2004, 2005, 2007, 2008, 2010 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -24,7 +24,7 @@ void ppc64_elf_init_stub_bfd bfd_boolean ppc64_elf_edit_opd (bfd *, struct bfd_link_info *, bfd_boolean); asection *ppc64_elf_tls_setup -(bfd *, struct bfd_link_info *, int); + (bfd *, struct bfd_link_info *, int); bfd_boolean ppc64_elf_tls_optimize (bfd *, struct bfd_link_info *); bfd_boolean ppc64_elf_edit_toc @@ -32,16 +32,20 @@ bfd_boolean ppc64_elf_edit_toc bfd_vma ppc64_elf_toc (bfd *); int ppc64_elf_setup_section_lists - (bfd *, struct bfd_link_info *, int); -void ppc64_elf_next_toc_section + (struct bfd_link_info *, asection *(*) (const char *, asection *), + void (*) (void)); +void ppc64_elf_start_multitoc_partition + (struct bfd_link_info *); +bfd_boolean ppc64_elf_next_toc_section (struct bfd_link_info *, asection *); -void ppc64_elf_reinit_toc - (bfd *, struct bfd_link_info *); +bfd_boolean ppc64_elf_layout_multitoc + (struct bfd_link_info *); +void ppc64_elf_finish_multitoc_partition + (struct bfd_link_info *); bfd_boolean ppc64_elf_next_input_section (struct bfd_link_info *, asection *); bfd_boolean ppc64_elf_size_stubs - (bfd *, struct bfd_link_info *, bfd_signed_vma, - asection *(*) (const char *, asection *), void (*) (void)); + (struct bfd_link_info *, bfd_signed_vma); bfd_boolean ppc64_elf_build_stubs (bfd_boolean, struct bfd_link_info *, char **); void ppc64_elf_restore_symbols |