summaryrefslogtreecommitdiff
path: root/bfd/elf64-ppc.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2010-02-03 12:03:33 +0000
committerAlan Modra <amodra@bigpond.net.au>2010-02-03 12:03:33 +0000
commit8d564a1e1c54c685c8600c59438b50f1be61d3a1 (patch)
tree766fb0a58383265497990275ea61ce950d7a82c1 /bfd/elf64-ppc.h
parentf34d31bc1064c56e4b92465cc661254026f072ad (diff)
downloadbinutils-redhat-8d564a1e1c54c685c8600c59438b50f1be61d3a1.tar.gz
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.h20
1 files changed, 12 insertions, 8 deletions
diff --git a/bfd/elf64-ppc.h b/bfd/elf64-ppc.h
index e5f7140412..79bb1b3c68 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