mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-18 16:53:50 +08:00
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:
@ -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..
|
||||||
|
69
bfd/bfd-in.h
69
bfd/bfd-in.h
@ -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);
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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.
|
||||||
|
@ -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
|
||||||
|
10
ld/ChangeLog
10
ld/ChangeLog
@ -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.
|
||||||
|
@ -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"
|
||||||
|
@ -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
|
||||||
|
@ -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"
|
||||||
|
@ -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"
|
||||||
|
@ -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"
|
||||||
|
Reference in New Issue
Block a user