diff options
author | Alan Modra <amodra@bigpond.net.au> | 2003-07-08 13:10:51 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2003-07-08 13:10:51 +0000 |
commit | e4ec0bfeaeb76089e251bf762953fd5580e26c96 (patch) | |
tree | f00fb599980278a66e7eaffaee29b78963fba91e /bfd/elf32-ppc.c | |
parent | 823b3cad750d0555a65a9efbb4e218d5781770f5 (diff) | |
download | gdb-e4ec0bfeaeb76089e251bf762953fd5580e26c96.tar.gz |
* elf-bfd.h (struct elf_obj_tdata): Move linker_section_pointers..
* elf32-ppc.c (struct ppc_elf_obj_tdata): ..to here. New.
(ppc_elf_tdata): Define.
(elf_local_ptr_offsets): Adjust.
(ppc_elf_mkobject): New function.
(bfd_elf32_mkobject): Define.
Diffstat (limited to 'bfd/elf32-ppc.c')
-rw-r--r-- | bfd/elf32-ppc.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 716ad705f16..0f38e115a7a 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -109,9 +109,32 @@ typedef struct elf_linker_section_pointers bfd_boolean written_address_p; } elf_linker_section_pointers_t; +struct ppc_elf_obj_tdata +{ + struct elf_obj_tdata elf; + + /* A mapping from local symbols to offsets into the various linker + sections added. This is index by the symbol index. */ + elf_linker_section_pointers_t **linker_section_pointers; +}; + +#define ppc_elf_tdata(bfd) \ + ((struct ppc_elf_obj_tdata *) (bfd)->tdata.any) + #define elf_local_ptr_offsets(bfd) \ - ((elf_linker_section_pointers_t **) \ - (elf_tdata (bfd)->linker_section_pointers)) + (ppc_elf_tdata (bfd)->linker_section_pointers) + +/* Override the generic function because we store some extras. */ + +static bfd_boolean +ppc_elf_mkobject (bfd *abfd) +{ + bfd_size_type amt = sizeof (struct ppc_elf_obj_tdata); + abfd->tdata.any = bfd_zalloc (abfd, amt); + if (abfd->tdata.any == NULL) + return FALSE; + return TRUE; +} /* The PPC linker needs to keep track of the number of relocs that it decides to copy as dynamic relocs in check_relocs for each symbol. @@ -6022,6 +6045,7 @@ ppc_elf_final_write_processing (bfd *abfd, bfd_boolean linker ATTRIBUTE_UNUSED) #define elf_backend_plt_header_size PLT_INITIAL_ENTRY_SIZE #define elf_backend_rela_normal 1 +#define bfd_elf32_mkobject ppc_elf_mkobject #define bfd_elf32_bfd_merge_private_bfd_data ppc_elf_merge_private_bfd_data #define bfd_elf32_bfd_relax_section ppc_elf_relax_section #define bfd_elf32_bfd_reloc_type_lookup ppc_elf_reloc_type_lookup |