diff options
author | Keith Seitz <keiths@redhat.com> | 2019-10-30 12:23:16 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2019-10-30 12:23:16 +0000 |
commit | 864619bb2e68e4ec8fa5bcfc87b00bf6667601e3 (patch) | |
tree | 59ff794f1e9d066ea4c64af4b336fdc8b7fd5d5f /bfd/elf-bfd.h | |
parent | a712c56a9a2afe0ea5335bf9bf50a638d39b5484 (diff) | |
download | binutils-864619bb2e68e4ec8fa5bcfc87b00bf6667601e3.zip binutils-864619bb2e68e4ec8fa5bcfc87b00bf6667601e3.tar.gz binutils-864619bb2e68e4ec8fa5bcfc87b00bf6667601e3.tar.bz2 |
Add the ability to the BFD library to read build-ids from core flies.
* elf-bfd.h (elf_backend_data) <elf_backend_core_find_build_id>:
New field.
(_bfd_elf32_core_find_build_id, _bfd_elf64_core_find_build_id):
New functions.
(elf_read_notes): Add declaration.
* elf.c (elf_read_notes): Move elf-bfd.h.
(_bfd_elf_core_find_build_id): New function.
(bfd_section_from_phdr): Scan core file PT_LOAD segments for
build-id if none is known.
(elf_parse_notes): For core files, scan for notes.
* elfcore.h (elf_core_file_matches_executable_p): If both
BFDs have identical build-ids, then they match.
(_bfd_elf_core_find_build_id): New function.
* elfxx-target.h (elf_backend_core_find_build_id): Define.
(elfNN_bed): Add elf_backend_core_find_build_id.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r-- | bfd/elf-bfd.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index ccd2c35..7309499 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -1377,6 +1377,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 *); @@ -2403,6 +2405,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 *); @@ -2449,6 +2453,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 *); @@ -2773,6 +2779,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 *); |