X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;ds=sidebyside;f=bfd%2Felf-bfd.h;h=6cfd1ac27f6035112ed4b137677afed82bfedf8a;hb=d043f8c867f85f1c36cc957da8204fe2907b3aea;hp=0a83c173327c23b8078c124a890512d08ac00ab7;hpb=0b4453c791106ab62011b59f97611f9ff21cda9f;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index 0a83c17332..6cfd1ac27f 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -1165,7 +1165,7 @@ struct elf_backend_data /* This function is called to modify program headers just before they are written. */ - bfd_boolean (*elf_backend_modify_program_headers) + bfd_boolean (*elf_backend_modify_headers) (bfd *, struct bfd_link_info *); /* This function is called to see if the PHDR header should be @@ -1192,10 +1192,9 @@ struct elf_backend_data bfd_boolean (*gc_mark_extra_sections) (struct bfd_link_info *, elf_gc_mark_hook_fn); - /* This function, if defined, is called after the ELF headers have - been created. This allows for things like the OS and ABI versions - to be changed. */ - void (*elf_backend_post_process_headers) + /* This function is called to initialise ELF file header info. + Customised versions can modify things like the OS and ABI version. */ + bfd_boolean (*elf_backend_init_file_header) (bfd *, struct bfd_link_info *); /* This function, if defined, prints a symbol to file and returns the @@ -1377,6 +1376,8 @@ struct elf_backend_data int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, bfd_size_type len)); + bfd_boolean (*elf_backend_core_find_build_id) (bfd *, bfd_vma); + /* This function is used by `_bfd_elf_get_synthetic_symtab'; see elf.c. */ bfd_vma (*plt_sym_val) (bfd_vma, const asection *, const arelent *); @@ -2051,6 +2052,7 @@ extern char *bfd_elf_string_from_elf_section extern Elf_Internal_Sym *bfd_elf_get_elf_syms (bfd *, Elf_Internal_Shdr *, size_t, size_t, Elf_Internal_Sym *, void *, Elf_External_Sym_Shndx *); +extern char * bfd_elf_get_str_section (bfd *, unsigned int); extern const char *bfd_elf_sym_name (bfd *, Elf_Internal_Shdr *, Elf_Internal_Sym *, asection *); @@ -2251,8 +2253,12 @@ extern void _bfd_elf_strtab_restore (struct elf_strtab_hash *, void *); extern bfd_size_type _bfd_elf_strtab_size (struct elf_strtab_hash *); +extern bfd_size_type _bfd_elf_strtab_len + (struct elf_strtab_hash *); extern bfd_size_type _bfd_elf_strtab_offset (struct elf_strtab_hash *, size_t); +extern const char * _bfd_elf_strtab_str + (struct elf_strtab_hash *, size_t idx, bfd_size_type *offset); extern bfd_boolean _bfd_elf_strtab_emit (bfd *, struct elf_strtab_hash *); extern void _bfd_elf_strtab_finalize @@ -2298,6 +2304,8 @@ extern bfd_boolean _bfd_elf_compute_section_file_positions (bfd *, struct bfd_link_info *); extern file_ptr _bfd_elf_assign_file_position_for_section (Elf_Internal_Shdr *, file_ptr, bfd_boolean); +extern bfd_boolean _bfd_elf_modify_headers + (bfd *, struct bfd_link_info *); extern bfd_boolean _bfd_elf_validate_reloc (bfd *, arelent *); @@ -2382,7 +2390,7 @@ extern bfd_boolean _bfd_elf_setup_sections extern struct bfd_link_hash_entry *bfd_elf_define_start_stop (struct bfd_link_info *, const char *, asection *); -extern void _bfd_elf_post_process_headers (bfd *, struct bfd_link_info *); +extern bfd_boolean _bfd_elf_init_file_header (bfd *, struct bfd_link_info *); extern bfd_boolean _bfd_elf_final_write_processing (bfd *); @@ -2398,6 +2406,8 @@ extern bfd_boolean bfd_elf32_core_file_matches_executable_p (bfd *, bfd *); extern int bfd_elf32_core_file_pid (bfd *); +extern bfd_boolean _bfd_elf32_core_find_build_id + (bfd *, bfd_vma); extern bfd_boolean bfd_elf32_swap_symbol_in (bfd *, const void *, const void *, Elf_Internal_Sym *); @@ -2444,6 +2454,8 @@ extern bfd_boolean bfd_elf64_core_file_matches_executable_p (bfd *, bfd *); extern int bfd_elf64_core_file_pid (bfd *); +extern bfd_boolean _bfd_elf64_core_find_build_id + (bfd *, bfd_vma); extern bfd_boolean bfd_elf64_swap_symbol_in (bfd *, const void *, const void *, Elf_Internal_Sym *); @@ -2768,6 +2780,7 @@ extern bfd_boolean _bfd_elf_merge_object_attributes extern bfd_boolean _bfd_elf_merge_unknown_attribute_low (bfd *, bfd *, int); extern bfd_boolean _bfd_elf_merge_unknown_attribute_list (bfd *, bfd *); extern Elf_Internal_Shdr *_bfd_elf_single_rel_hdr (asection *sec); +extern bfd_boolean elf_read_notes (bfd *, file_ptr, bfd_size_type, size_t); extern bfd_boolean _bfd_elf_parse_gnu_properties (bfd *, Elf_Internal_Note *); @@ -2960,6 +2973,14 @@ extern asection _bfd_elf_large_com_section; || (H)->start_stop \ || ((INFO)->dynamic && !(H)->dynamic))) +/* Determine if a section contains CTF data, using its name. */ +static inline bfd_boolean +bfd_section_is_ctf (const asection *sec) +{ + const char *name = bfd_section_name (sec); + return strncmp (name, ".ctf", 4) == 0 && (name[4] == 0 || name[4] == '.'); +} + #ifdef __cplusplus } #endif