diff options
author | Peter Schauer <Peter.Schauer@mytum.de> | 1994-04-21 17:01:12 +0000 |
---|---|---|
committer | Peter Schauer <Peter.Schauer@mytum.de> | 1994-04-21 17:01:12 +0000 |
commit | cb71adf12b02561228bafbb2497baafaa930e6b9 (patch) | |
tree | 838a0bcab435ce52d452377116fc5f320118c14a /bfd/libelf.h | |
parent | dcb210cb09286c22382d9e56642409d82db651b5 (diff) | |
download | gdb-cb71adf12b02561228bafbb2497baafaa930e6b9.zip gdb-cb71adf12b02561228bafbb2497baafaa930e6b9.tar.gz gdb-cb71adf12b02561228bafbb2497baafaa930e6b9.tar.bz2 |
* libelf.h (elf_obj_tdata): Add members for dynamic symbol table
handling.
* elfcode.h (bfd_section_from_shdr): Handle dynamic symbol table.
* elfcode.h (elf_slurp_symbol_table): Take additional parameter
to select static or dynamic symbol table and return number of
symbols slurped or -1 on error.
* elfcode.h (elf_get_symtab): Set bfd symcount from
elf_slurp_symbol_table result.
* elfcode.h (elf_get_dynamic_symtab_upper_bound,
elf_canonicalize_dynamic_symtab): New functions to handle dynamic
symbol table.
* elf32-target.h, elf64-target.h (BFD_JUMP_TABLE_DYNAMIC):
Change to handle dynamic symbol table, provide default definitions
for dynamic relocs.
* aoutx.h (howto_table_std, NAME(aout,swap_std_reloc_out),
NAME(aout,swap_std_reloc_in), aout_link_input_section_std,
aout_link_reloc_link_order): Handle r_jmptable and r_relative
relocations.
Diffstat (limited to 'bfd/libelf.h')
-rw-r--r-- | bfd/libelf.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/bfd/libelf.h b/bfd/libelf.h index ce22cc1..f0c270b 100644 --- a/bfd/libelf.h +++ b/bfd/libelf.h @@ -206,7 +206,9 @@ struct elf_obj_tdata Elf_Internal_Shdr symtab_hdr; Elf_Internal_Shdr shstrtab_hdr; Elf_Internal_Shdr strtab_hdr; - int symtab_section, shstrtab_section, strtab_section; + Elf_Internal_Shdr dynsymtab_hdr; + Elf_Internal_Shdr dynstrtab_hdr; + int symtab_section, shstrtab_section, strtab_section, dynsymtab_section; file_ptr next_file_pos; void *prstatus; /* The raw /proc prstatus structure */ void *prpsinfo; /* The raw /proc prpsinfo structure */ @@ -219,6 +221,7 @@ struct elf_obj_tdata #define elf_elfsections(bfd) (elf_tdata(bfd) -> elf_sect_ptr) #define elf_shstrtab(bfd) (elf_tdata(bfd) -> strtab_ptr) #define elf_onesymtab(bfd) (elf_tdata(bfd) -> symtab_section) +#define elf_dynsymtab(bfd) (elf_tdata(bfd) -> dynsymtab_section) #define elf_num_locals(bfd) (elf_tdata(bfd) -> num_locals) #define elf_num_globals(bfd) (elf_tdata(bfd) -> num_globals) #define elf_sym_extra(bfd) (elf_tdata(bfd) -> sym_extra) @@ -265,6 +268,8 @@ extern boolean bfd_elf32_set_section_contents PARAMS ((bfd *, sec_ptr, PTR, extern long bfd_elf32_get_symtab_upper_bound PARAMS ((bfd *)); extern long bfd_elf32_get_symtab PARAMS ((bfd *, asymbol **)); +extern long bfd_elf32_get_dynamic_symtab_upper_bound PARAMS ((bfd *)); +extern long bfd_elf32_canonicalize_dynamic_symtab PARAMS ((bfd *, asymbol **)); extern long bfd_elf32_get_reloc_upper_bound PARAMS ((bfd *, sec_ptr)); extern long bfd_elf32_canonicalize_reloc PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); @@ -301,6 +306,8 @@ extern boolean bfd_elf64_set_section_contents PARAMS ((bfd *, sec_ptr, PTR, extern long bfd_elf64_get_symtab_upper_bound PARAMS ((bfd *)); extern long bfd_elf64_get_symtab PARAMS ((bfd *, asymbol **)); +extern long bfd_elf64_get_dynamic_symtab_upper_bound PARAMS ((bfd *)); +extern long bfd_elf64_canonicalize_dynamic_symtab PARAMS ((bfd *, asymbol **)); extern long bfd_elf64_get_reloc_upper_bound PARAMS ((bfd *, sec_ptr)); extern long bfd_elf64_canonicalize_reloc PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); |