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.
This commit is contained in:
Alan Modra
2019-09-23 10:12:31 +09:30
parent f5c5b7c124
commit 0b4453c791
13 changed files with 97 additions and 143 deletions

View File

@ -1,3 +1,10 @@
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> 2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move m68k function declaration.. * bfd-in.h: Move m68k function declaration..

View File

@ -570,72 +570,6 @@ extern bfd_boolean bfd_ecoff_write_accumulated_debug
/* Externally visible ELF routines. */ /* 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, /* 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 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 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, int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
bfd_size_type len)); bfd_size_type len));
extern struct bfd_section *_bfd_elf_tls_setup
(bfd *, struct bfd_link_info *);
extern struct bfd_section * extern struct bfd_section *
_bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma); _bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);

View File

@ -577,72 +577,6 @@ extern bfd_boolean bfd_ecoff_write_accumulated_debug
/* Externally visible ELF routines. */ /* 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, /* 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 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 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, int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
bfd_size_type len)); bfd_size_type len));
extern struct bfd_section *_bfd_elf_tls_setup
(bfd *, struct bfd_link_info *);
extern struct bfd_section * extern struct bfd_section *
_bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma); _bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);

View File

@ -529,6 +529,13 @@ struct elf_sym_strtab
unsigned long destshndx_index; unsigned long destshndx_index;
}; };
struct bfd_link_needed_list
{
struct bfd_link_needed_list *next;
bfd *by;
const char *name;
};
/* ELF linker hash table. */ /* ELF linker hash table. */
struct elf_link_hash_table struct elf_link_hash_table
@ -1828,6 +1835,14 @@ typedef struct elf_section_list
struct elf_section_list * next; struct elf_section_list * next;
} elf_section_list; } 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 /* Some private data is stashed away for future use using the tdata pointer
in the bfd structure. */ 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 extern bfd_boolean _bfd_elf_validate_reloc
(bfd *, arelent *); (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 extern bfd_boolean _bfd_elf_link_create_dynamic_sections
(bfd *, struct bfd_link_info *); (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_elf_omit_section_dynsym_default 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 extern bfd_boolean _bfd_elf_ppc_merge_fp_attributes
(bfd *, struct bfd_link_info *); (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. */ /* Exported interface for writing elf corefile notes. */
extern char *elfcore_write_note extern char *elfcore_write_note
(bfd *, char *, int *, const char *, int, const void *, int); (bfd *, char *, int *, const char *, int, const void *, int);

View File

@ -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> 2019-09-17 Maxim Blinov <maxim.blinov@embecosm.com>
* opcode/riscv.h (riscv_insn_class): New enum. * opcode/riscv.h (riscv_insn_class): New enum.

View File

@ -42,6 +42,12 @@ enum bfd_link_discard
discard_all /* Discard all locals. */ 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 /* Whether to generate ELF common symbols with the STT_COMMON type
during a relocatable link. */ during a relocatable link. */
enum bfd_link_elf_stt_common enum bfd_link_elf_stt_common

View File

@ -1,3 +1,13 @@
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> 2019-09-23 Alan Modra <amodra@gmail.com>
* emultempl/m68kelf.em: Include elf32-m68k.h. * emultempl/m68kelf.em: Include elf32-m68k.h.

View File

@ -23,6 +23,7 @@
#include "libiberty.h" #include "libiberty.h"
#include "safe-ctype.h" #include "safe-ctype.h"
#include "bfd.h" #include "bfd.h"
#include "bfdlink.h"
#include "ld.h" #include "ld.h"
#include "ldmisc.h" #include "ldmisc.h"
#include "deffile.h" #include "deffile.h"

View File

@ -19,11 +19,10 @@
# MA 02110-1301, USA. # MA 02110-1301, USA.
# #
fragment <<EOF # This file is sourced from elf.em, and defines extra irix specific
# functions.
#include "ld.h" fragment <<EOF
#include "ldmain.h"
#include "libiberty.h"
/* The native IRIX linker will always create a DT_SONAME for shared objects. /* 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 While this shouldn't really be necessary for ABI conformance, some versions

View File

@ -23,6 +23,7 @@
#include "libiberty.h" #include "libiberty.h"
#include "filenames.h" #include "filenames.h"
#include "safe-ctype.h" #include "safe-ctype.h"
#include "bfdlink.h"
#include "ld.h" #include "ld.h"
#include "ldmain.h" #include "ldmain.h"
#include "ldmisc.h" #include "ldmisc.h"

View File

@ -20,6 +20,7 @@
#include "sysdep.h" #include "sysdep.h"
#include "bfd.h" #include "bfd.h"
#include "bfdlink.h"
#include "ld.h" #include "ld.h"
#include "ldmain.h" #include "ldmain.h"
#include "ldmisc.h" #include "ldmisc.h"

View File

@ -21,7 +21,7 @@
#include "sysdep.h" #include "sysdep.h"
#include "bfd.h" #include "bfd.h"
#include "bfdver.h" #include "bfdver.h"
#include "bfdlink.h"
#include "ld.h" #include "ld.h"
#include "ldver.h" #include "ldver.h"
#include "ldexp.h" #include "ldexp.h"

View File

@ -25,6 +25,7 @@
#include "sysdep.h" #include "sysdep.h"
#include "bfd.h" #include "bfd.h"
#include "bfdlink.h"
#include "ld.h" #include "ld.h"
#include "ldexp.h" #include "ldexp.h"
#include "ldlang.h" #include "ldlang.h"