Line 6... |
Line 6... |
/* libbfd.h -- Declarations used by bfd library *implementation*.
|
/* libbfd.h -- Declarations used by bfd library *implementation*.
|
(This include file is not for users of the library.)
|
(This include file is not for users of the library.)
|
|
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
2010, 2011
|
2010, 2011, 2012
|
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
|
|
Written by Cygnus Support.
|
Written by Cygnus Support.
|
|
|
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
Line 67... |
Line 67... |
};
|
};
|
|
|
/* tdata for an archive. For an input archive, cache
|
/* tdata for an archive. For an input archive, cache
|
needs to be free()'d. For an output archive, symdefs do. */
|
needs to be free()'d. For an output archive, symdefs do. */
|
|
|
struct artdata {
|
struct artdata
|
|
{
|
file_ptr first_file_filepos;
|
file_ptr first_file_filepos;
|
/* Speed up searching the armap */
|
/* Speed up searching the armap */
|
htab_t cache;
|
htab_t cache;
|
bfd *archive_head; /* Only interesting in output routines */
|
bfd *archive_head; /* Only interesting in output routines. */
|
carsym *symdefs; /* the symdef entries */
|
carsym *symdefs; /* The symdef entries. */
|
symindex symdef_count; /* how many there are */
|
symindex symdef_count; /* How many there are. */
|
char *extended_names; /* clever intel extension */
|
char *extended_names; /* Clever intel extension. */
|
bfd_size_type extended_names_size; /* Size of extended names */
|
bfd_size_type extended_names_size; /* Size of extended names. */
|
/* when more compilers are standard C, this can be a time_t */
|
/* When more compilers are standard C, this can be a time_t. */
|
long armap_timestamp; /* Timestamp value written into armap.
|
long armap_timestamp; /* Timestamp value written into armap.
|
This is used for BSD archives to check
|
This is used for BSD archives to check
|
that the timestamp is recent enough
|
that the timestamp is recent enough
|
for the BSD linker to not complain,
|
for the BSD linker to not complain,
|
just before we finish writing an
|
just before we finish writing an
|
Line 91... |
Line 92... |
};
|
};
|
|
|
#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
|
#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
|
|
|
/* Goes in bfd's arelt_data slot */
|
/* Goes in bfd's arelt_data slot */
|
struct areltdata {
|
struct areltdata
|
char * arch_header; /* it's actually a string */
|
{
|
unsigned int parsed_size; /* octets of filesize not including ar_hdr */
|
char * arch_header; /* It's actually a string. */
|
unsigned int extra_size; /* BSD4.4: extra bytes after the header. */
|
bfd_size_type parsed_size; /* Octets of filesize not including ar_hdr. */
|
char *filename; /* null-terminated */
|
bfd_size_type extra_size; /* BSD4.4: extra bytes after the header. */
|
file_ptr origin; /* for element of a thin archive */
|
char *filename; /* Null-terminated. */
|
|
file_ptr origin; /* For element of a thin archive. */
|
};
|
};
|
|
|
#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
|
#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
|
|
|
extern void *bfd_malloc
|
extern void *bfd_malloc
|
Line 206... |
Line 208... |
|
|
extern void *_bfd_generic_read_ar_hdr
|
extern void *_bfd_generic_read_ar_hdr
|
(bfd *);
|
(bfd *);
|
extern void _bfd_ar_spacepad
|
extern void _bfd_ar_spacepad
|
(char *, size_t, const char *, long);
|
(char *, size_t, const char *, long);
|
|
extern bfd_boolean _bfd_ar_sizepad
|
|
(char *, size_t, bfd_size_type);
|
|
|
extern void *_bfd_generic_read_ar_hdr_mag
|
extern void *_bfd_generic_read_ar_hdr_mag
|
(bfd *, const char *);
|
(bfd *, const char *);
|
|
|
extern bfd_boolean _bfd_generic_write_ar_hdr
|
extern bfd_boolean _bfd_generic_write_ar_hdr
|
Line 552... |
Line 556... |
|
|
/* Find inliner info after calling bfd_find_nearest_line. */
|
/* Find inliner info after calling bfd_find_nearest_line. */
|
extern bfd_boolean _bfd_dwarf2_find_inliner_info
|
extern bfd_boolean _bfd_dwarf2_find_inliner_info
|
(bfd *, const char **, const char **, unsigned int *, void **);
|
(bfd *, const char **, const char **, unsigned int *, void **);
|
|
|
|
/* Read DWARF 2 debugging information. */
|
|
extern bfd_boolean _bfd_dwarf2_slurp_debug_info
|
|
(bfd *, bfd *, const struct dwarf_debug_section *, asymbol **, void **);
|
|
|
|
/* Clean up the data used to handle DWARF 2 debugging information. */
|
|
extern void _bfd_dwarf2_cleanup_debug_info
|
|
(bfd *, void **);
|
|
|
/* Create a new section entry. */
|
/* Create a new section entry. */
|
extern struct bfd_hash_entry *bfd_section_hash_newfunc
|
extern struct bfd_hash_entry *bfd_section_hash_newfunc
|
(struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
|
(struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
|
|
|
/* A routine to create entries for a bfd_link_hash_table. */
|
/* A routine to create entries for a bfd_link_hash_table. */
|
Line 1084... |
Line 1096... |
"BFD_RELOC_MIPS16_GOT16",
|
"BFD_RELOC_MIPS16_GOT16",
|
"BFD_RELOC_MIPS16_CALL16",
|
"BFD_RELOC_MIPS16_CALL16",
|
"BFD_RELOC_MIPS16_HI16",
|
"BFD_RELOC_MIPS16_HI16",
|
"BFD_RELOC_MIPS16_HI16_S",
|
"BFD_RELOC_MIPS16_HI16_S",
|
"BFD_RELOC_MIPS16_LO16",
|
"BFD_RELOC_MIPS16_LO16",
|
|
"BFD_RELOC_MIPS16_TLS_GD",
|
|
"BFD_RELOC_MIPS16_TLS_LDM",
|
|
"BFD_RELOC_MIPS16_TLS_DTPREL_HI16",
|
|
"BFD_RELOC_MIPS16_TLS_DTPREL_LO16",
|
|
"BFD_RELOC_MIPS16_TLS_GOTTPREL",
|
|
"BFD_RELOC_MIPS16_TLS_TPREL_HI16",
|
|
"BFD_RELOC_MIPS16_TLS_TPREL_LO16",
|
"BFD_RELOC_MIPS_LITERAL",
|
"BFD_RELOC_MIPS_LITERAL",
|
"BFD_RELOC_MICROMIPS_LITERAL",
|
"BFD_RELOC_MICROMIPS_LITERAL",
|
"BFD_RELOC_MICROMIPS_7_PCREL_S1",
|
"BFD_RELOC_MICROMIPS_7_PCREL_S1",
|
"BFD_RELOC_MICROMIPS_10_PCREL_S1",
|
"BFD_RELOC_MICROMIPS_10_PCREL_S1",
|
"BFD_RELOC_MICROMIPS_16_PCREL_S1",
|
"BFD_RELOC_MICROMIPS_16_PCREL_S1",
|
Line 2322... |
Line 2341... |
"BFD_RELOC_LM32_COPY",
|
"BFD_RELOC_LM32_COPY",
|
"BFD_RELOC_LM32_GLOB_DAT",
|
"BFD_RELOC_LM32_GLOB_DAT",
|
"BFD_RELOC_LM32_JMP_SLOT",
|
"BFD_RELOC_LM32_JMP_SLOT",
|
"BFD_RELOC_LM32_RELATIVE",
|
"BFD_RELOC_LM32_RELATIVE",
|
"BFD_RELOC_MACH_O_SECTDIFF",
|
"BFD_RELOC_MACH_O_SECTDIFF",
|
|
"BFD_RELOC_MACH_O_LOCAL_SECTDIFF",
|
"BFD_RELOC_MACH_O_PAIR",
|
"BFD_RELOC_MACH_O_PAIR",
|
"BFD_RELOC_MACH_O_X86_64_BRANCH32",
|
"BFD_RELOC_MACH_O_X86_64_BRANCH32",
|
"BFD_RELOC_MACH_O_X86_64_BRANCH8",
|
"BFD_RELOC_MACH_O_X86_64_BRANCH8",
|
"BFD_RELOC_MACH_O_X86_64_GOT",
|
"BFD_RELOC_MACH_O_X86_64_GOT",
|
"BFD_RELOC_MACH_O_X86_64_GOT_LOAD",
|
"BFD_RELOC_MACH_O_X86_64_GOT_LOAD",
|
Line 2390... |
Line 2410... |
"BFD_RELOC_TILEPRO_MMEND_X1",
|
"BFD_RELOC_TILEPRO_MMEND_X1",
|
"BFD_RELOC_TILEPRO_SHAMT_X0",
|
"BFD_RELOC_TILEPRO_SHAMT_X0",
|
"BFD_RELOC_TILEPRO_SHAMT_X1",
|
"BFD_RELOC_TILEPRO_SHAMT_X1",
|
"BFD_RELOC_TILEPRO_SHAMT_Y0",
|
"BFD_RELOC_TILEPRO_SHAMT_Y0",
|
"BFD_RELOC_TILEPRO_SHAMT_Y1",
|
"BFD_RELOC_TILEPRO_SHAMT_Y1",
|
|
"BFD_RELOC_TILEPRO_TLS_GD_CALL",
|
|
"BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD",
|
|
"BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD",
|
|
"BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD",
|
|
"BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD",
|
|
"BFD_RELOC_TILEPRO_TLS_IE_LOAD",
|
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD",
|
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD",
|
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD",
|
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD",
|
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO",
|
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO",
|
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO",
|
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO",
|
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI",
|
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI",
|
Line 2409... |
Line 2435... |
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA",
|
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA",
|
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA",
|
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA",
|
"BFD_RELOC_TILEPRO_TLS_DTPMOD32",
|
"BFD_RELOC_TILEPRO_TLS_DTPMOD32",
|
"BFD_RELOC_TILEPRO_TLS_DTPOFF32",
|
"BFD_RELOC_TILEPRO_TLS_DTPOFF32",
|
"BFD_RELOC_TILEPRO_TLS_TPOFF32",
|
"BFD_RELOC_TILEPRO_TLS_TPOFF32",
|
|
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE",
|
|
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE",
|
|
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO",
|
|
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO",
|
|
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI",
|
|
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI",
|
|
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA",
|
|
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA",
|
"BFD_RELOC_TILEGX_HW0",
|
"BFD_RELOC_TILEGX_HW0",
|
"BFD_RELOC_TILEGX_HW1",
|
"BFD_RELOC_TILEGX_HW1",
|
"BFD_RELOC_TILEGX_HW2",
|
"BFD_RELOC_TILEGX_HW2",
|
"BFD_RELOC_TILEGX_HW3",
|
"BFD_RELOC_TILEGX_HW3",
|
"BFD_RELOC_TILEGX_HW0_LAST",
|
"BFD_RELOC_TILEGX_HW0_LAST",
|
Line 2466... |
Line 2500... |
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT",
|
|
"BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT",
|
|
"BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT",
|
|
"BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT",
|
|
"BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT",
|
|
"BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT",
|
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT",
|
|
"BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT",
|
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD",
|
|
"BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD",
|
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE",
|
|
"BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE",
|
|
"BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE",
|
|
"BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE",
|
|
"BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE",
|
|
"BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE",
|
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE",
|
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE",
|
"BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE",
|
|
"BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE",
|
|
"BFD_RELOC_TILEGX_TLS_DTPMOD64",
|
"BFD_RELOC_TILEGX_TLS_DTPMOD64",
|
"BFD_RELOC_TILEGX_TLS_DTPOFF64",
|
"BFD_RELOC_TILEGX_TLS_DTPOFF64",
|
"BFD_RELOC_TILEGX_TLS_TPOFF64",
|
"BFD_RELOC_TILEGX_TLS_TPOFF64",
|
"BFD_RELOC_TILEGX_TLS_DTPMOD32",
|
"BFD_RELOC_TILEGX_TLS_DTPMOD32",
|
"BFD_RELOC_TILEGX_TLS_DTPOFF32",
|
"BFD_RELOC_TILEGX_TLS_DTPOFF32",
|
"BFD_RELOC_TILEGX_TLS_TPOFF32",
|
"BFD_RELOC_TILEGX_TLS_TPOFF32",
|
|
"BFD_RELOC_TILEGX_TLS_GD_CALL",
|
|
"BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD",
|
|
"BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD",
|
|
"BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD",
|
|
"BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD",
|
|
"BFD_RELOC_TILEGX_TLS_IE_LOAD",
|
|
"BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD",
|
|
"BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD",
|
|
"BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD",
|
|
"BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD",
|
"BFD_RELOC_EPIPHANY_SIMM8",
|
"BFD_RELOC_EPIPHANY_SIMM8",
|
"BFD_RELOC_EPIPHANY_SIMM24",
|
"BFD_RELOC_EPIPHANY_SIMM24",
|
"BFD_RELOC_EPIPHANY_HIGH",
|
"BFD_RELOC_EPIPHANY_HIGH",
|
"BFD_RELOC_EPIPHANY_LOW",
|
"BFD_RELOC_EPIPHANY_LOW",
|
"BFD_RELOC_EPIPHANY_SIMM11",
|
"BFD_RELOC_EPIPHANY_SIMM11",
|
Line 2560... |
Line 2586... |
(const bfd_arch_info_type *a, const bfd_arch_info_type *b);
|
(const bfd_arch_info_type *a, const bfd_arch_info_type *b);
|
|
|
bfd_boolean bfd_default_scan
|
bfd_boolean bfd_default_scan
|
(const struct bfd_arch_info *info, const char *string);
|
(const struct bfd_arch_info *info, const char *string);
|
|
|
|
void *bfd_arch_default_fill (bfd_size_type count,
|
|
bfd_boolean is_bigendian,
|
|
bfd_boolean code);
|
|
|
/* Extracted from elf.c. */
|
/* Extracted from elf.c. */
|
|
|
No newline at end of file
|
No newline at end of file
|