diff options
author | Alan Modra <amodra@gmail.com> | 2019-09-23 10:12:31 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2019-09-23 10:27:22 +0930 |
commit | 0b4453c791106ab62011b59f97611f9ff21cda9f (patch) | |
tree | fa4e755dbf52de6ec215fd740078c8b12a8f996d /bfd/elf-bfd.h | |
parent | f5c5b7c124934b464b67c7c3c53a1c62a7f4e98a (diff) | |
download | fsf-binutils-gdb-0b4453c791106ab62011b59f97611f9ff21cda9f.zip fsf-binutils-gdb-0b4453c791106ab62011b59f97611f9ff21cda9f.tar.gz fsf-binutils-gdb-0b4453c791106ab62011b59f97611f9ff21cda9f.tar.bz2 |
elf bfd.h tidy
bfd/
* bfd-in.h (enum notice_asneeded_action): Move to bfdlink.h.
Move most other elf declarations..
* elf-bfd.h: ..to here.
* bfd-in2.h: Regenerate.
include/
* bfdlink.h (enum notice_asneeded_action): Define.
ld/
* deffilep.y: Include bfdlink.h.
* ldelf.c: Likewise.
* ldelfgen.c: Likewise.
* ldver.c: Likewise.
* mri.c: Likewise.
* emultempl/irix.em: Don't include ld.h, ldmain.h, libiberty.h.
Comment.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r-- | bfd/elf-bfd.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index 4458ff7..0a83c17 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -529,6 +529,13 @@ struct elf_sym_strtab unsigned long destshndx_index; }; +struct bfd_link_needed_list +{ + struct bfd_link_needed_list *next; + bfd *by; + const char *name; +}; + /* ELF linker hash table. */ struct elf_link_hash_table @@ -1828,6 +1835,14 @@ typedef struct elf_section_list struct elf_section_list * next; } elf_section_list; +enum dynamic_lib_link_class { + DYN_NORMAL = 0, + DYN_AS_NEEDED = 1, + DYN_DT_NEEDED = 2, + DYN_NO_ADD_NEEDED = 4, + DYN_NO_NEEDED = 8 +}; + /* Some private data is stashed away for future use using the tdata pointer in the bfd structure. */ @@ -2287,6 +2302,37 @@ extern file_ptr _bfd_elf_assign_file_position_for_section extern bfd_boolean _bfd_elf_validate_reloc (bfd *, arelent *); +extern bfd_boolean bfd_elf_record_link_assignment + (bfd *, struct bfd_link_info *, const char *, bfd_boolean, + bfd_boolean); +extern bfd_boolean bfd_elf_stack_segment_size (bfd *, struct bfd_link_info *, + const char *, bfd_vma); +extern bfd_boolean bfd_elf_size_dynamic_sections + (bfd *, const char *, const char *, const char *, const char *, const char *, + const char * const *, struct bfd_link_info *, struct bfd_section **); +extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr + (bfd *, struct bfd_link_info *); +extern bfd_boolean bfd_elf_get_bfd_needed_list + (bfd *, struct bfd_link_needed_list **); +extern struct bfd_link_needed_list *bfd_elf_get_needed_list + (bfd *, struct bfd_link_info *); +extern void bfd_elf_set_dt_needed_name + (bfd *, const char *); +extern const char *bfd_elf_get_dt_soname + (bfd *); +extern void bfd_elf_set_dyn_lib_class + (bfd *, enum dynamic_lib_link_class); +extern int bfd_elf_get_dyn_lib_class + (bfd *); +extern struct bfd_link_needed_list *bfd_elf_get_runpath_list + (bfd *, struct bfd_link_info *); +extern int bfd_elf_discard_info + (bfd *, struct bfd_link_info *); +extern unsigned int _bfd_elf_default_action_discarded + (struct bfd_section *); +extern struct bfd_section *_bfd_elf_tls_setup + (bfd *, struct bfd_link_info *); + extern bfd_boolean _bfd_elf_link_create_dynamic_sections (bfd *, struct bfd_link_info *); extern bfd_boolean _bfd_elf_omit_section_dynsym_default @@ -2557,6 +2603,22 @@ extern bfd_boolean _bfd_elf_ppc_set_arch (bfd *); extern bfd_boolean _bfd_elf_ppc_merge_fp_attributes (bfd *, struct bfd_link_info *); +/* Return an upper bound on the number of bytes required to store a + copy of ABFD's program header table entries. Return -1 if an error + occurs; bfd_get_error will return an appropriate code. */ +extern long bfd_get_elf_phdr_upper_bound + (bfd *abfd); + +/* Copy ABFD's program header table entries to *PHDRS. The entries + will be stored as an array of Elf_Internal_Phdr structures, as + defined in include/elf/internal.h. To find out how large the + buffer needs to be, call bfd_get_elf_phdr_upper_bound. + + Return the number of program header table entries read, or -1 if an + error occurs; bfd_get_error will return an appropriate code. */ +extern int bfd_get_elf_phdrs + (bfd *abfd, void *phdrs); + /* Exported interface for writing elf corefile notes. */ extern char *elfcore_write_note (bfd *, char *, int *, const char *, int, const void *, int); |