diff options
author | Ian Lance Taylor <ian@airs.com> | 1996-12-15 19:59:18 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1996-12-15 19:59:18 +0000 |
commit | e35765a9a2eaff0df62757f3e6480c8ba5ab8ee8 (patch) | |
tree | 53ee31421fdd884963cf43049adaa55a2b828ba0 /bfd/elf-bfd.h | |
parent | d31b72a3144f839485f928bc2ef9dc6b51e6c87e (diff) | |
download | gdb-e35765a9a2eaff0df62757f3e6480c8ba5ab8ee8.zip gdb-e35765a9a2eaff0df62757f3e6480c8ba5ab8ee8.tar.gz gdb-e35765a9a2eaff0df62757f3e6480c8ba5ab8ee8.tar.bz2 |
* elfcode.h (elf_slurp_reloc_table): Add dynamic parameter.
* elf.c (_bfd_elf_canonicalize_reloc): Pass new argument to
slurp_reloc_table.
(_bfd_elf_get_dynamic_reloc_upper_bound): New function.
(_bfd_elf_canonicalize_dynamic_reloc): New function.
* elf-bfd.h (struct elf_size_info): Update declaration of
slurp_reloc_table.
(_bfd_elf_get_dynamic_reloc_upper_bound): Declare.
(_bfd_elf_canonicalize_dynamic_reloc): Declare.
* elfxx-target.h: Use new dynamic reloc routines by default.
* elf64-mips.c (mips_elf64_slurp_reloc_table): Add dynamic
parameter.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r-- | bfd/elf-bfd.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index 4592386..ac27d1f 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -110,6 +110,9 @@ struct elf_link_hash_entry /* Symbol type (STT_NOTYPE, STT_OBJECT, etc.). */ char type; + /* Symbol st_other value. */ + unsigned char other; + /* Some flags; legal values follow. */ unsigned char elf_link_hash_flags; /* Symbol is referenced by a non-shared object. */ @@ -193,7 +196,8 @@ struct elf_size_info { boolean (*write_shdrs_and_ehdr) PARAMS ((bfd *)); void (*write_relocs) PARAMS ((bfd *, asection *, PTR)); void (*swap_symbol_out) PARAMS ((bfd *, const Elf_Internal_Sym *, PTR)); - boolean (*slurp_reloc_table) PARAMS ((bfd *, asection *, asymbol **)); + boolean (*slurp_reloc_table) + PARAMS ((bfd *, asection *, asymbol **, boolean)); long (*slurp_symbol_table) PARAMS ((bfd *, asymbol **, boolean)); void (*swap_dyn_in) PARAMS ((bfd *, const PTR, Elf_Internal_Dyn *)); }; @@ -698,6 +702,9 @@ extern long _bfd_elf_canonicalize_dynamic_symtab PARAMS ((bfd *, asymbol **)); extern long _bfd_elf_get_reloc_upper_bound PARAMS ((bfd *, sec_ptr)); extern long _bfd_elf_canonicalize_reloc PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); +extern long _bfd_elf_get_dynamic_reloc_upper_bound PARAMS ((bfd *)); +extern long _bfd_elf_canonicalize_dynamic_reloc PARAMS ((bfd *, arelent **, + asymbol **)); extern asymbol *_bfd_elf_make_empty_symbol PARAMS ((bfd *)); extern void _bfd_elf_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); @@ -719,6 +726,7 @@ extern void _bfd_elf_no_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); extern boolean bfd_section_from_shdr PARAMS ((bfd *, unsigned int shindex)); +extern boolean bfd_section_from_phdr PARAMS ((bfd *, Elf_Internal_Phdr *, int)); extern int _bfd_elf_symbol_from_bfd_symbol PARAMS ((bfd *, asymbol **)); @@ -835,6 +843,8 @@ extern boolean bfd_elf32_add_dynamic_entry PARAMS ((struct bfd_link_info *, bfd_vma, bfd_vma)); extern boolean bfd_elf32_link_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); +extern Elf_Internal_Rela *_bfd_elf32_link_read_relocs + PARAMS ((bfd *, asection *, PTR, Elf_Internal_Rela *, boolean)); extern const bfd_target *bfd_elf64_object_p PARAMS ((bfd *)); extern const bfd_target *bfd_elf64_core_file_p PARAMS ((bfd *)); @@ -876,6 +886,8 @@ extern boolean bfd_elf64_add_dynamic_entry PARAMS ((struct bfd_link_info *, bfd_vma, bfd_vma)); extern boolean bfd_elf64_link_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); +extern Elf_Internal_Rela *_bfd_elf64_link_read_relocs + PARAMS ((bfd *, asection *, PTR, Elf_Internal_Rela *, boolean)); #define bfd_elf32_link_record_dynamic_symbol _bfd_elf_link_record_dynamic_symbol #define bfd_elf64_link_record_dynamic_symbol _bfd_elf_link_record_dynamic_symbol @@ -895,5 +907,23 @@ extern void _bfd_mips_elf_symbol_processing PARAMS ((bfd *, asymbol *)); extern boolean _bfd_mips_elf_read_ecoff_info PARAMS ((bfd *, asection *, struct ecoff_debug_info *)); extern void _bfd_mips_elf_final_write_processing PARAMS ((bfd *, boolean)); +extern bfd_reloc_status_type _bfd_mips_elf_hi16_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +extern bfd_reloc_status_type _bfd_mips_elf_lo16_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +extern bfd_reloc_status_type _bfd_mips_elf_gprel16_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +extern bfd_reloc_status_type _bfd_mips_elf_got16_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +extern bfd_reloc_status_type _bfd_mips_elf_gprel32_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +extern boolean _bfd_mips_elf_set_private_flags PARAMS ((bfd *, flagword)); +extern boolean _bfd_mips_elf_copy_private_bfd_data PARAMS ((bfd *, bfd *)); +extern boolean _bfd_mips_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); +extern boolean _bfd_mips_elf_find_nearest_line + PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, + const char **, unsigned int *)); +extern boolean _bfd_mips_elf_set_section_contents + PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); #endif /* _LIBELF_H_ */ |