aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf-bfd.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2011-07-28 17:39:20 +0000
committerRoland McGrath <roland@gnu.org>2011-07-28 17:39:20 +0000
commit23209a785322071cf1be95d3d5c50b78d7720db0 (patch)
tree78023251e1b5d82689acc99c541f2ff4cb808314 /bfd/elf-bfd.h
parent9aec20268e477ab268c345b58e6659b622028536 (diff)
downloadgdb-23209a785322071cf1be95d3d5c50b78d7720db0.zip
gdb-23209a785322071cf1be95d3d5c50b78d7720db0.tar.gz
gdb-23209a785322071cf1be95d3d5c50b78d7720db0.tar.bz2
Clean up elf32-i386-vxworks:
* elf32-i386.c (struct elf_i386_backend_data): New type. (get_elf_i386_backend_data): New macro. (elf_i386_arch_bed): New variable. (elf_backend_arch_data): New macro. (struct elf_i386_link_hash_table): Remove plt0_pad_byte and is_vxworks. (elf_i386_link_hash_table_create): Don't initialize them. (elf_i386_create_dynamic_sections): Find is_vxworks flags in elf_i386_backend_data, not elf_i386_link_hash_table. (elf_i386_adjust_dynamic_symbol): Likewise. (elf_i386_allocate_dynrelocs): Likewise. (elf_i386_readonly_dynrelocs): Likewise. (elf_i386_size_dynamic_sections): Likewise. (elf_i386_relocate_section): Likewise. (elf_i386_finish_dynamic_symbol): Likewise. (elf_i386_finish_dynamic_sections): Likewise. Same for plt0_pad_byte. (elf_i386_vxworks_link_hash_table_create): Function removed. (elf_i386_vxworks_arch_bed): New variable. (elf_backend_arch_data): New macro in elf32-i386-vxworks stanza. * elf-bfd.h (elf_backend_data): New member arch_backend_data. * elfxx-target.h (elf_backend_arch_data): New macro. (elfNN_bed): Use it as initializer for the new member.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r--bfd/elf-bfd.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index bf63ee8..e6ea580 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -714,6 +714,10 @@ struct elf_backend_data
/* The BFD flags applied to sections created for dynamic linking. */
flagword dynamic_sec_flags;
+ /* Architecture-specific data for this backend.
+ This is actually a pointer to some type like struct elf_ARCH_data. */
+ const void *arch_data;
+
/* A function to translate an ELF RELA relocation to a BFD arelent
structure. */
void (*elf_info_to_howto)
@@ -1553,7 +1557,7 @@ struct elf_obj_tdata
const char *dt_name;
/* The linker emulation needs to know what audit libs
- are used by a dynamic object. */
+ are used by a dynamic object. */
const char *dt_audit;
/* Records the result of `get_program_header_size'. */
@@ -1893,7 +1897,7 @@ extern bfd_boolean bfd_section_from_phdr
extern int _bfd_elf_symbol_from_bfd_symbol
(bfd *, asymbol **);
-extern Elf_Internal_Sym *bfd_sym_from_r_symndx
+extern Elf_Internal_Sym *bfd_sym_from_r_symndx
(struct sym_cache *, bfd *, unsigned long);
extern asection *bfd_section_from_elf_index
(bfd *, unsigned int);
@@ -2390,7 +2394,7 @@ extern asection _bfd_elf_large_com_section;
/* This macro is to avoid lots of duplicated code in the body of the
loop over relocations in xxx_relocate_section() in the various
elfxx-xxxx.c files.
-
+
Handle relocations against symbols from removed linkonce sections,
or sections discarded by a linker script. When doing a relocatable
link, we remove such relocations. Otherwise, we just want the