/* DO NOT EDIT! -*- buffer-read-only: t -*- This file is automatically
- generated from "libbfd-in.h", "libbfd.c", "bfdio.c", "bfdwin.c",
- "cache.c", "reloc.c", "archures.c" and "linker.c".
+ generated from "libbfd-in.h", "libbfd.c", "bfd.c", "bfdio.c",
+ "bfdwin.c", "cache.c", "reloc.c", "section.c", "targets.c", "archures.c"
+ and "linker.c".
Run "make headers" in your build bfd/ to regenerate. */
/* libbfd.h -- Declarations used by bfd library *implementation*.
(This include file is not for users of the library.)
- Copyright (C) 1990-2021 Free Software Foundation, Inc.
+ Copyright (C) 1990-2023 Free Software Foundation, Inc.
Written by Cygnus Support.
file_ptr first_file_filepos;
/* Speed up searching the armap */
htab_t cache;
- bfd *archive_head; /* Only interesting in output routines. */
carsym *symdefs; /* The symdef entries. */
symindex symdef_count; /* How many there are. */
char *extended_names; /* Clever intel extension. */
extern void *bfd_malloc
(bfd_size_type) ATTRIBUTE_HIDDEN;
-extern void *bfd_realloc
- (void *, bfd_size_type) ATTRIBUTE_HIDDEN;
-extern void *bfd_realloc_or_free
- (void *, bfd_size_type) ATTRIBUTE_HIDDEN;
-extern void *bfd_zmalloc
- (bfd_size_type) ATTRIBUTE_HIDDEN;
static inline char *
bfd_strdup (const char *str)
extern bool _bfd_compute_and_write_armap
(bfd *, unsigned int) ATTRIBUTE_HIDDEN;
extern bfd *_bfd_get_elt_at_filepos
- (bfd *, file_ptr) ATTRIBUTE_HIDDEN;
+ (bfd *, file_ptr, struct bfd_link_info *) ATTRIBUTE_HIDDEN;
extern bfd *_bfd_generic_get_elt_at_index
(bfd *, symindex) ATTRIBUTE_HIDDEN;
extern bfd * _bfd_new_bfd
(bfd *, asymbol **, asection *, bfd_vma,
const char **, const char **, unsigned int *, unsigned int *)
ATTRIBUTE_HIDDEN;
+extern bool _bfd_nosymbols_find_nearest_line_with_alt
+ (bfd *, const char *, asymbol **, asection *, bfd_vma,
+ const char **, const char **, unsigned int *, unsigned int *)
+ ATTRIBUTE_HIDDEN;
extern bool _bfd_nosymbols_find_line
(bfd *, asymbol **, asymbol *, const char **, unsigned int *)
ATTRIBUTE_HIDDEN;
(bfd *, asymbol **, asection *, bfd_vma,
const char **, const char **, unsigned int *) ATTRIBUTE_HIDDEN;
+/* Clean up the data used to handle DWARF 1 debugging information. */
+extern void _bfd_dwarf1_cleanup_debug_info
+ (bfd *, void **) ATTRIBUTE_HIDDEN;
+
struct dwarf_debug_section
{
const char * uncompressed_name;
const char **, const char **, unsigned int *, unsigned int *,
const struct dwarf_debug_section *, void **) ATTRIBUTE_HIDDEN;
+/* Find the nearest line using DWARF 2 debugging information, with
+ the option of specifying a .gnu_debugaltlink file. */
+extern int _bfd_dwarf2_find_nearest_line_with_alt
+ (bfd *, const char *, asymbol **, asymbol *, asection *, bfd_vma,
+ const char **, const char **, unsigned int *, unsigned int *,
+ const struct dwarf_debug_section *, void **) ATTRIBUTE_HIDDEN;
+
/* Find the bias between DWARF addresses and real addresses. */
extern bfd_signed_vma _bfd_dwarf2_find_symbol_bias
(asymbol **, void **) ATTRIBUTE_HIDDEN;
extern void _bfd_dwarf2_cleanup_debug_info
(bfd *, void **) ATTRIBUTE_HIDDEN;
+extern void _bfd_stab_cleanup
+ (bfd *, void **) ATTRIBUTE_HIDDEN;
+
/* Create a new section entry. */
extern struct bfd_hash_entry *bfd_section_hash_newfunc
(struct bfd_hash_entry *, struct bfd_hash_table *, const char *)
/* Create an XCOFF .debug section style string table. */
extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init
- (void) ATTRIBUTE_HIDDEN;
+ (bool isxcoff64) ATTRIBUTE_HIDDEN;
/* Free a string table. */
extern void _bfd_stringtab_free
extern bfd_signed_vma _bfd_read_signed_leb128
(bfd *, bfd_byte *, unsigned int *) ATTRIBUTE_HIDDEN;
extern bfd_vma _bfd_safe_read_leb128
- (bfd *, bfd_byte *, unsigned int *, bool, const bfd_byte * const)
- ATTRIBUTE_HIDDEN;
+ (bfd *, bfd_byte **, bool, const bfd_byte * const) ATTRIBUTE_HIDDEN;
extern bfd_byte * _bfd_write_unsigned_leb128
(bfd_byte *, bfd_byte *, bfd_vma) ATTRIBUTE_HIDDEN;
extern struct bfd_link_info *_bfd_get_link_info (bfd *);
+extern bool _bfd_link_keep_memory (struct bfd_link_info *)
+ ATTRIBUTE_HIDDEN;
+
#if GCC_VERSION >= 7000
#define _bfd_mul_overflow(a, b, res) __builtin_mul_overflow (a, b, res)
#else
#define _bfd_constant_p(v) 0
#endif
-static inline bfd_byte *
+static inline void *
_bfd_alloc_and_read (bfd *abfd, bfd_size_type asize, bfd_size_type rsize)
{
- bfd_byte *mem;
+ void *mem;
if (!_bfd_constant_p (rsize))
{
ufile_ptr filesize = bfd_get_file_size (abfd);
return NULL;
}
-static inline bfd_byte *
+static inline void *
_bfd_malloc_and_read (bfd *abfd, bfd_size_type asize, bfd_size_type rsize)
{
- bfd_byte *mem;
+ void *mem;
if (!_bfd_constant_p (rsize))
{
ufile_ptr filesize = bfd_get_file_size (abfd);
return NULL;
}
/* Extracted from libbfd.c. */
+extern void * bfd_malloc (bfd_size_type SIZE) ATTRIBUTE_HIDDEN;
+
+extern void * bfd_realloc (void * MEM, bfd_size_type SIZE) ATTRIBUTE_HIDDEN;
+
+extern void * bfd_realloc_or_free (void * MEM, bfd_size_type SIZE) ATTRIBUTE_HIDDEN;
+
+extern void * bfd_zmalloc (bfd_size_type SIZE) ATTRIBUTE_HIDDEN;
+
bool bfd_write_bigendian_4byte_int (bfd *, unsigned int);
unsigned int bfd_log2 (bfd_vma x);
+/* Extracted from bfd.c. */
+bfd_error_handler_type _bfd_set_error_handler_caching (bfd *);
+
+const char *_bfd_get_error_program_name (void);
+
/* Extracted from bfdio.c. */
struct bfd_iovec
{
"BFD_RELOC_12_PCREL",
"BFD_RELOC_8_PCREL",
"BFD_RELOC_32_SECREL",
+ "BFD_RELOC_16_SECIDX",
"BFD_RELOC_32_GOT_PCREL",
"BFD_RELOC_16_GOT_PCREL",
"BFD_RELOC_8_GOT_PCREL",
"BFD_RELOC_MICROMIPS_HIGHER",
"BFD_RELOC_MIPS_SCN_DISP",
"BFD_RELOC_MICROMIPS_SCN_DISP",
- "BFD_RELOC_MIPS_REL16",
+ "BFD_RELOC_MIPS_16",
"BFD_RELOC_MIPS_RELGOT",
"BFD_RELOC_MIPS_JALR",
"BFD_RELOC_MICROMIPS_JALR",
"BFD_RELOC_PPC_VLE_SDAREL_HA16D",
"BFD_RELOC_PPC_16DX_HA",
"BFD_RELOC_PPC_REL16DX_HA",
+ "BFD_RELOC_PPC_NEG",
"BFD_RELOC_PPC64_HIGHER",
"BFD_RELOC_PPC64_HIGHER_S",
"BFD_RELOC_PPC64_HIGHEST",
"BFD_RELOC_PPC64_ADDR64_LOCAL",
"BFD_RELOC_PPC64_ENTRY",
"BFD_RELOC_PPC64_REL24_NOTOC",
+ "BFD_RELOC_PPC64_REL24_P9NOTOC",
"BFD_RELOC_PPC64_D34",
"BFD_RELOC_PPC64_D34_LO",
"BFD_RELOC_PPC64_D34_HI30",
"BFD_RELOC_OR1K_SLO13",
"BFD_RELOC_OR1K_GOTPC_HI16",
"BFD_RELOC_OR1K_GOTPC_LO16",
+ "BFD_RELOC_OR1K_GOT_AHI16",
"BFD_RELOC_OR1K_GOT16",
"BFD_RELOC_OR1K_GOT_PG21",
"BFD_RELOC_OR1K_GOT_LO13",
"BFD_RELOC_XSTORMY16_FPTR16",
"BFD_RELOC_RELC",
- "BFD_RELOC_XC16X_PAG",
- "BFD_RELOC_XC16X_POF",
- "BFD_RELOC_XC16X_SEG",
- "BFD_RELOC_XC16X_SOF",
"BFD_RELOC_VAX_GLOB_DAT",
"BFD_RELOC_VAX_JMP_SLOT",
"BFD_RELOC_VAX_RELATIVE",
"BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD",
"BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD",
"BFD_RELOC_BPF_64",
- "BFD_RELOC_BPF_32",
- "BFD_RELOC_BPF_16",
- "BFD_RELOC_BPF_DISP16",
"BFD_RELOC_BPF_DISP32",
"BFD_RELOC_EPIPHANY_SIMM8",
"BFD_RELOC_EPIPHANY_SIMM24",
"BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4",
"BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4",
"BFD_RELOC_S12Z_OPR",
+ "BFD_RELOC_LARCH_TLS_DTPMOD32",
+ "BFD_RELOC_LARCH_TLS_DTPREL32",
+ "BFD_RELOC_LARCH_TLS_DTPMOD64",
+ "BFD_RELOC_LARCH_TLS_DTPREL64",
+ "BFD_RELOC_LARCH_TLS_TPREL32",
+ "BFD_RELOC_LARCH_TLS_TPREL64",
+ "BFD_RELOC_LARCH_MARK_LA",
+ "BFD_RELOC_LARCH_MARK_PCREL",
+ "BFD_RELOC_LARCH_SOP_PUSH_PCREL",
+ "BFD_RELOC_LARCH_SOP_PUSH_ABSOLUTE",
+ "BFD_RELOC_LARCH_SOP_PUSH_DUP",
+ "BFD_RELOC_LARCH_SOP_PUSH_GPREL",
+ "BFD_RELOC_LARCH_SOP_PUSH_TLS_TPREL",
+ "BFD_RELOC_LARCH_SOP_PUSH_TLS_GOT",
+ "BFD_RELOC_LARCH_SOP_PUSH_TLS_GD",
+ "BFD_RELOC_LARCH_SOP_PUSH_PLT_PCREL",
+ "BFD_RELOC_LARCH_SOP_ASSERT",
+ "BFD_RELOC_LARCH_SOP_NOT",
+ "BFD_RELOC_LARCH_SOP_SUB",
+ "BFD_RELOC_LARCH_SOP_SL",
+ "BFD_RELOC_LARCH_SOP_SR",
+ "BFD_RELOC_LARCH_SOP_ADD",
+ "BFD_RELOC_LARCH_SOP_AND",
+ "BFD_RELOC_LARCH_SOP_IF_ELSE",
+ "BFD_RELOC_LARCH_SOP_POP_32_S_10_5",
+ "BFD_RELOC_LARCH_SOP_POP_32_U_10_12",
+ "BFD_RELOC_LARCH_SOP_POP_32_S_10_12",
+ "BFD_RELOC_LARCH_SOP_POP_32_S_10_16",
+ "BFD_RELOC_LARCH_SOP_POP_32_S_10_16_S2",
+ "BFD_RELOC_LARCH_SOP_POP_32_S_5_20",
+ "BFD_RELOC_LARCH_SOP_POP_32_S_0_5_10_16_S2",
+ "BFD_RELOC_LARCH_SOP_POP_32_S_0_10_10_16_S2",
+ "BFD_RELOC_LARCH_SOP_POP_32_U",
+ "BFD_RELOC_LARCH_ADD8",
+ "BFD_RELOC_LARCH_ADD16",
+ "BFD_RELOC_LARCH_ADD24",
+ "BFD_RELOC_LARCH_ADD32",
+ "BFD_RELOC_LARCH_ADD64",
+ "BFD_RELOC_LARCH_SUB8",
+ "BFD_RELOC_LARCH_SUB16",
+ "BFD_RELOC_LARCH_SUB24",
+ "BFD_RELOC_LARCH_SUB32",
+ "BFD_RELOC_LARCH_SUB64",
+ "BFD_RELOC_LARCH_B16",
+ "BFD_RELOC_LARCH_B21",
+ "BFD_RELOC_LARCH_B26",
+ "BFD_RELOC_LARCH_ABS_HI20",
+ "BFD_RELOC_LARCH_ABS_LO12",
+ "BFD_RELOC_LARCH_ABS64_LO20",
+ "BFD_RELOC_LARCH_ABS64_HI12",
+ "BFD_RELOC_LARCH_PCALA_HI20",
+ "BFD_RELOC_LARCH_PCALA_LO12",
+ "BFD_RELOC_LARCH_PCALA64_LO20",
+ "BFD_RELOC_LARCH_PCALA64_HI12",
+ "BFD_RELOC_LARCH_GOT_PC_HI20",
+ "BFD_RELOC_LARCH_GOT_PC_LO12",
+ "BFD_RELOC_LARCH_GOT64_PC_LO20",
+ "BFD_RELOC_LARCH_GOT64_PC_HI12",
+ "BFD_RELOC_LARCH_GOT_HI20",
+ "BFD_RELOC_LARCH_GOT_LO12",
+ "BFD_RELOC_LARCH_GOT64_LO20",
+ "BFD_RELOC_LARCH_GOT64_HI12",
+ "BFD_RELOC_LARCH_TLS_LE_HI20",
+ "BFD_RELOC_LARCH_TLS_LE_LO12",
+ "BFD_RELOC_LARCH_TLS_LE64_LO20",
+ "BFD_RELOC_LARCH_TLS_LE64_HI12",
+ "BFD_RELOC_LARCH_TLS_IE_PC_HI20",
+ "BFD_RELOC_LARCH_TLS_IE_PC_LO12",
+ "BFD_RELOC_LARCH_TLS_IE64_PC_LO20",
+ "BFD_RELOC_LARCH_TLS_IE64_PC_HI12",
+ "BFD_RELOC_LARCH_TLS_IE_HI20",
+ "BFD_RELOC_LARCH_TLS_IE_LO12",
+ "BFD_RELOC_LARCH_TLS_IE64_LO20",
+ "BFD_RELOC_LARCH_TLS_IE64_HI12",
+ "BFD_RELOC_LARCH_TLS_LD_PC_HI20",
+ "BFD_RELOC_LARCH_TLS_LD_HI20",
+ "BFD_RELOC_LARCH_TLS_GD_PC_HI20",
+ "BFD_RELOC_LARCH_TLS_GD_HI20",
+ "BFD_RELOC_LARCH_32_PCREL",
+ "BFD_RELOC_LARCH_RELAX",
"@@overflow: BFD_RELOC_UNUSED@@",
};
#endif
sec_ptr section,
unsigned int r_type);
+/* Extracted from section.c. */
+bool _bfd_section_size_insane (bfd *abfd, asection *sec);
+
+/* Extracted from targets.c. */
+struct per_xvec_message **_bfd_per_xvec_warn (const bfd_target *, size_t);
+
/* Extracted from archures.c. */
extern const bfd_arch_info_type bfd_default_arch_struct;
const bfd_arch_info_type *bfd_default_compatible