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 | |
parent | f5c5b7c124934b464b67c7c3c53a1c62a7f4e98a (diff) | |
download | gdb-0b4453c791106ab62011b59f97611f9ff21cda9f.zip gdb-0b4453c791106ab62011b59f97611f9ff21cda9f.tar.gz 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.
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/bfd-in.h | 69 | ||||
-rw-r--r-- | bfd/bfd-in2.h | 69 | ||||
-rw-r--r-- | bfd/elf-bfd.h | 62 | ||||
-rw-r--r-- | include/ChangeLog | 4 | ||||
-rw-r--r-- | include/bfdlink.h | 6 | ||||
-rw-r--r-- | ld/ChangeLog | 10 | ||||
-rw-r--r-- | ld/deffilep.y | 1 | ||||
-rw-r--r-- | ld/emultempl/irix.em | 7 | ||||
-rw-r--r-- | ld/ldelf.c | 1 | ||||
-rw-r--r-- | ld/ldelfgen.c | 1 | ||||
-rw-r--r-- | ld/ldver.c | 2 | ||||
-rw-r--r-- | ld/mri.c | 1 |
13 files changed, 97 insertions, 143 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index fa67c70..62115f2 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,12 @@ 2019-09-23 Alan Modra <amodra@gmail.com> + * 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. + +2019-09-23 Alan Modra <amodra@gmail.com> + * bfd-in.h: Move m68k function declaration.. * cpu-m68k.h: ..to here, new file.. * elf32-m68k.h: ..and here, new file. diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h index d61467b..de8479c 100644 --- a/bfd/bfd-in.h +++ b/bfd/bfd-in.h @@ -570,72 +570,6 @@ extern bfd_boolean bfd_ecoff_write_accumulated_debug /* Externally visible ELF routines. */ -struct bfd_link_needed_list -{ - struct bfd_link_needed_list *next; - bfd *by; - const char *name; -}; - -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 -}; - -enum notice_asneeded_action { - notice_as_needed, - notice_not_needed, - notice_needed -}; - -extern bfd_boolean bfd_elf_record_link_assignment - (bfd *, struct bfd_link_info *, const char *, bfd_boolean, - bfd_boolean); -extern struct bfd_link_needed_list *bfd_elf_get_needed_list - (bfd *, struct bfd_link_info *); -extern bfd_boolean bfd_elf_get_bfd_needed_list - (bfd *, struct bfd_link_needed_list **); -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 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 *); - -/* 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); - /* Create a new BFD as if by bfd_openr. Rather than opening a file, reconstruct an ELF file by reading the segments out of remote memory based on the ELF file header at EHDR_VMA and the ELF program @@ -655,9 +589,6 @@ extern bfd *bfd_elf_bfd_from_remote_memory int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, bfd_size_type len)); -extern struct bfd_section *_bfd_elf_tls_setup - (bfd *, struct bfd_link_info *); - extern struct bfd_section * _bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma); diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 4d27076..30b2685 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -577,72 +577,6 @@ extern bfd_boolean bfd_ecoff_write_accumulated_debug /* Externally visible ELF routines. */ -struct bfd_link_needed_list -{ - struct bfd_link_needed_list *next; - bfd *by; - const char *name; -}; - -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 -}; - -enum notice_asneeded_action { - notice_as_needed, - notice_not_needed, - notice_needed -}; - -extern bfd_boolean bfd_elf_record_link_assignment - (bfd *, struct bfd_link_info *, const char *, bfd_boolean, - bfd_boolean); -extern struct bfd_link_needed_list *bfd_elf_get_needed_list - (bfd *, struct bfd_link_info *); -extern bfd_boolean bfd_elf_get_bfd_needed_list - (bfd *, struct bfd_link_needed_list **); -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 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 *); - -/* 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); - /* Create a new BFD as if by bfd_openr. Rather than opening a file, reconstruct an ELF file by reading the segments out of remote memory based on the ELF file header at EHDR_VMA and the ELF program @@ -662,9 +596,6 @@ extern bfd *bfd_elf_bfd_from_remote_memory int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, bfd_size_type len)); -extern struct bfd_section *_bfd_elf_tls_setup - (bfd *, struct bfd_link_info *); - extern struct bfd_section * _bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma); 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); diff --git a/include/ChangeLog b/include/ChangeLog index c725bfb..580eeb0 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2019-09-23 Alan Modra <amodra@gmail.com> + + * bfdlink.h (enum notice_asneeded_action): Define. + 2019-09-17 Maxim Blinov <maxim.blinov@embecosm.com> * opcode/riscv.h (riscv_insn_class): New enum. diff --git a/include/bfdlink.h b/include/bfdlink.h index c35469d..bb7909a 100644 --- a/include/bfdlink.h +++ b/include/bfdlink.h @@ -42,6 +42,12 @@ enum bfd_link_discard discard_all /* Discard all locals. */ }; +enum notice_asneeded_action { + notice_as_needed, + notice_not_needed, + notice_needed +}; + /* Whether to generate ELF common symbols with the STT_COMMON type during a relocatable link. */ enum bfd_link_elf_stt_common diff --git a/ld/ChangeLog b/ld/ChangeLog index 07e4611..fe27434 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,15 @@ 2019-09-23 Alan Modra <amodra@gmail.com> + * 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. + +2019-09-23 Alan Modra <amodra@gmail.com> + * emultempl/m68kelf.em: Include elf32-m68k.h. 2019-09-23 Alan Modra <amodra@gmail.com> diff --git a/ld/deffilep.y b/ld/deffilep.y index 7f74157..92116e6 100644 --- a/ld/deffilep.y +++ b/ld/deffilep.y @@ -23,6 +23,7 @@ #include "libiberty.h" #include "safe-ctype.h" #include "bfd.h" +#include "bfdlink.h" #include "ld.h" #include "ldmisc.h" #include "deffile.h" diff --git a/ld/emultempl/irix.em b/ld/emultempl/irix.em index ddd5fd6..e52c4a2 100644 --- a/ld/emultempl/irix.em +++ b/ld/emultempl/irix.em @@ -19,11 +19,10 @@ # MA 02110-1301, USA. # -fragment <<EOF +# This file is sourced from elf.em, and defines extra irix specific +# functions. -#include "ld.h" -#include "ldmain.h" -#include "libiberty.h" +fragment <<EOF /* The native IRIX linker will always create a DT_SONAME for shared objects. While this shouldn't really be necessary for ABI conformance, some versions @@ -23,6 +23,7 @@ #include "libiberty.h" #include "filenames.h" #include "safe-ctype.h" +#include "bfdlink.h" #include "ld.h" #include "ldmain.h" #include "ldmisc.h" diff --git a/ld/ldelfgen.c b/ld/ldelfgen.c index 98bcecd..142a669 100644 --- a/ld/ldelfgen.c +++ b/ld/ldelfgen.c @@ -20,6 +20,7 @@ #include "sysdep.h" #include "bfd.h" +#include "bfdlink.h" #include "ld.h" #include "ldmain.h" #include "ldmisc.h" @@ -21,7 +21,7 @@ #include "sysdep.h" #include "bfd.h" #include "bfdver.h" - +#include "bfdlink.h" #include "ld.h" #include "ldver.h" #include "ldexp.h" @@ -25,6 +25,7 @@ #include "sysdep.h" #include "bfd.h" +#include "bfdlink.h" #include "ld.h" #include "ldexp.h" #include "ldlang.h" |