| Index: bfd/libbfd.h
|
| diff --git a/bfd/libbfd.h b/bfd/libbfd.h
|
| index d08c2ba829dfe4f04a0655f8b5a6727954b80d2d..1d95fd8352f8e8a272bb5e458236af8341f905c7 100644
|
| --- a/bfd/libbfd.h
|
| +++ b/bfd/libbfd.h
|
| @@ -8,7 +8,7 @@
|
|
|
| Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
| 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
| - 2010, 2011
|
| + 2010, 2011, 2012
|
| Free Software Foundation, Inc.
|
|
|
| Written by Cygnus Support.
|
| @@ -69,16 +69,17 @@ struct section_hash_entry
|
| /* tdata for an archive. For an input archive, cache
|
| needs to be free()'d. For an output archive, symdefs do. */
|
|
|
| -struct artdata {
|
| +struct artdata
|
| +{
|
| 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 */
|
| - bfd_size_type extended_names_size; /* Size of extended names */
|
| - /* when more compilers are standard C, this can be a time_t */
|
| + 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. */
|
| + bfd_size_type extended_names_size; /* Size of extended names. */
|
| + /* When more compilers are standard C, this can be a time_t. */
|
| long armap_timestamp; /* Timestamp value written into armap.
|
| This is used for BSD archives to check
|
| that the timestamp is recent enough
|
| @@ -93,12 +94,13 @@ struct artdata {
|
| #define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
|
|
|
| /* Goes in bfd's arelt_data slot */
|
| -struct areltdata {
|
| - char * arch_header; /* it's actually a string */
|
| - unsigned int parsed_size; /* octets of filesize not including ar_hdr */
|
| - unsigned int extra_size; /* BSD4.4: extra bytes after the header. */
|
| - char *filename; /* null-terminated */
|
| - file_ptr origin; /* for element of a thin archive */
|
| +struct areltdata
|
| +{
|
| + char * arch_header; /* It's actually a string. */
|
| + bfd_size_type parsed_size; /* Octets of filesize not including ar_hdr. */
|
| + bfd_size_type extra_size; /* BSD4.4: extra bytes after the header. */
|
| + char *filename; /* Null-terminated. */
|
| + file_ptr origin; /* For element of a thin archive. */
|
| };
|
|
|
| #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
|
| @@ -120,6 +122,7 @@ extern void *bfd_zmalloc2
|
|
|
| extern void _bfd_default_error_handler (const char *s, ...);
|
| extern bfd_error_handler_type _bfd_error_handler;
|
| +extern bfd_assert_handler_type _bfd_assert_handler;
|
|
|
| /* These routines allocate and free things on the BFD's objalloc. */
|
|
|
| @@ -208,6 +211,8 @@ extern void *_bfd_generic_read_ar_hdr
|
| (bfd *);
|
| extern void _bfd_ar_spacepad
|
| (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
|
| (bfd *, const char *);
|
| @@ -459,7 +464,7 @@ extern bfd_boolean _bfd_generic_set_section_contents
|
| ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
|
| bfd_false)
|
| #define _bfd_nolink_bfd_lookup_section_flags \
|
| - ((void (*) (struct bfd_link_info *, struct flag_info *)) \
|
| + ((bfd_boolean (*) (struct bfd_link_info *, struct flag_info *, asection *)) \
|
| bfd_0)
|
| #define _bfd_nolink_bfd_merge_sections \
|
| ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
|
| @@ -553,7 +558,15 @@ bfd_boolean _bfd_generic_find_line
|
| /* Find inliner info after calling bfd_find_nearest_line. */
|
| extern bfd_boolean _bfd_dwarf2_find_inliner_info
|
| (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. */
|
| extern struct bfd_hash_entry *bfd_section_hash_newfunc
|
| (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
|
| @@ -1002,6 +1015,10 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
| "BFD_RELOC_SPARC_M44",
|
| "BFD_RELOC_SPARC_L44",
|
| "BFD_RELOC_SPARC_REGISTER",
|
| + "BFD_RELOC_SPARC_H34",
|
| + "BFD_RELOC_SPARC_SIZE32",
|
| + "BFD_RELOC_SPARC_SIZE64",
|
| + "BFD_RELOC_SPARC_WDISP10",
|
| "BFD_RELOC_SPARC_REV32",
|
| "BFD_RELOC_SPARC_TLS_GD_HI22",
|
| "BFD_RELOC_SPARC_TLS_GD_LO10",
|
| @@ -1086,6 +1103,13 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
| "BFD_RELOC_MIPS16_HI16",
|
| "BFD_RELOC_MIPS16_HI16_S",
|
| "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_MICROMIPS_LITERAL",
|
| "BFD_RELOC_MICROMIPS_7_PCREL_S1",
|
| @@ -1206,6 +1230,17 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
| "BFD_RELOC_MN10300_RELATIVE",
|
| "BFD_RELOC_MN10300_SYM_DIFF",
|
| "BFD_RELOC_MN10300_ALIGN",
|
| + "BFD_RELOC_MN10300_TLS_GD",
|
| + "BFD_RELOC_MN10300_TLS_LD",
|
| + "BFD_RELOC_MN10300_TLS_LDO",
|
| + "BFD_RELOC_MN10300_TLS_GOTIE",
|
| + "BFD_RELOC_MN10300_TLS_IE",
|
| + "BFD_RELOC_MN10300_TLS_LE",
|
| + "BFD_RELOC_MN10300_TLS_DTPMOD",
|
| + "BFD_RELOC_MN10300_TLS_DTPOFF",
|
| + "BFD_RELOC_MN10300_TLS_TPOFF",
|
| + "BFD_RELOC_MN10300_32_PCREL",
|
| + "BFD_RELOC_MN10300_16_PCREL",
|
|
|
| "BFD_RELOC_386_GOT32",
|
| "BFD_RELOC_386_PLT32",
|
| @@ -1308,6 +1343,23 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
| "BFD_RELOC_PPC_EMB_RELST_HA",
|
| "BFD_RELOC_PPC_EMB_BIT_FLD",
|
| "BFD_RELOC_PPC_EMB_RELSDA",
|
| + "BFD_RELOC_PPC_VLE_REL8",
|
| + "BFD_RELOC_PPC_VLE_REL15",
|
| + "BFD_RELOC_PPC_VLE_REL24",
|
| + "BFD_RELOC_PPC_VLE_LO16A",
|
| + "BFD_RELOC_PPC_VLE_LO16D",
|
| + "BFD_RELOC_PPC_VLE_HI16A",
|
| + "BFD_RELOC_PPC_VLE_HI16D",
|
| + "BFD_RELOC_PPC_VLE_HA16A",
|
| + "BFD_RELOC_PPC_VLE_HA16D",
|
| + "BFD_RELOC_PPC_VLE_SDA21",
|
| + "BFD_RELOC_PPC_VLE_SDA21_LO",
|
| + "BFD_RELOC_PPC_VLE_SDAREL_LO16A",
|
| + "BFD_RELOC_PPC_VLE_SDAREL_LO16D",
|
| + "BFD_RELOC_PPC_VLE_SDAREL_HI16A",
|
| + "BFD_RELOC_PPC_VLE_SDAREL_HI16D",
|
| + "BFD_RELOC_PPC_VLE_SDAREL_HA16A",
|
| + "BFD_RELOC_PPC_VLE_SDAREL_HA16D",
|
| "BFD_RELOC_PPC64_HIGHER",
|
| "BFD_RELOC_PPC64_HIGHER_S",
|
| "BFD_RELOC_PPC64_HIGHEST",
|
| @@ -1714,8 +1766,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
| "BFD_RELOC_V850_32_GOTOFF",
|
| "BFD_RELOC_V850_CODE",
|
| "BFD_RELOC_V850_DATA",
|
| - "BFD_RELOC_MN10300_32_PCREL",
|
| - "BFD_RELOC_MN10300_16_PCREL",
|
| "BFD_RELOC_TIC30_LDP",
|
| "BFD_RELOC_TIC54X_PARTLS7",
|
| "BFD_RELOC_TIC54X_PARTMS9",
|
| @@ -1834,6 +1884,9 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
| "BFD_RELOC_AVR_LDI",
|
| "BFD_RELOC_AVR_6",
|
| "BFD_RELOC_AVR_6_ADIW",
|
| + "BFD_RELOC_AVR_8_LO",
|
| + "BFD_RELOC_AVR_8_HI",
|
| + "BFD_RELOC_AVR_8_HLO",
|
| "BFD_RELOC_RL78_NEG8",
|
| "BFD_RELOC_RL78_NEG16",
|
| "BFD_RELOC_RL78_NEG24",
|
| @@ -1943,6 +1996,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
| "BFD_RELOC_390_GOT20",
|
| "BFD_RELOC_390_GOTPLT20",
|
| "BFD_RELOC_390_TLS_GOTIE20",
|
| + "BFD_RELOC_390_IRELATIVE",
|
| "BFD_RELOC_SCORE_GPREL15",
|
| "BFD_RELOC_SCORE_DUMMY2",
|
| "BFD_RELOC_SCORE_JMP",
|
| @@ -2060,6 +2114,24 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
| "BFD_RELOC_M68HC11_PAGE",
|
| "BFD_RELOC_M68HC11_24",
|
| "BFD_RELOC_M68HC12_5B",
|
| + "BFD_RELOC_XGATE_RL_JUMP",
|
| + "BFD_RELOC_XGATE_RL_GROUP",
|
| + "BFD_RELOC_XGATE_LO16",
|
| + "BFD_RELOC_XGATE_GPAGE",
|
| + "BFD_RELOC_XGATE_24",
|
| + "BFD_RELOC_XGATE_PCREL_9",
|
| + "BFD_RELOC_XGATE_PCREL_10",
|
| + "BFD_RELOC_XGATE_IMM8_LO",
|
| + "BFD_RELOC_XGATE_IMM8_HI",
|
| + "BFD_RELOC_XGATE_IMM3",
|
| + "BFD_RELOC_XGATE_IMM4",
|
| + "BFD_RELOC_XGATE_IMM5",
|
| + "BFD_RELOC_M68HC12_9B",
|
| + "BFD_RELOC_M68HC12_16B",
|
| + "BFD_RELOC_M68HC12_9_PCREL",
|
| + "BFD_RELOC_M68HC12_10_PCREL",
|
| + "BFD_RELOC_M68HC12_LO8XG",
|
| + "BFD_RELOC_M68HC12_HI8XG",
|
| "BFD_RELOC_16C_NUM08",
|
| "BFD_RELOC_16C_NUM08_C",
|
| "BFD_RELOC_16C_NUM16",
|
| @@ -2318,6 +2390,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
| "BFD_RELOC_LM32_JMP_SLOT",
|
| "BFD_RELOC_LM32_RELATIVE",
|
| "BFD_RELOC_MACH_O_SECTDIFF",
|
| + "BFD_RELOC_MACH_O_LOCAL_SECTDIFF",
|
| "BFD_RELOC_MACH_O_PAIR",
|
| "BFD_RELOC_MACH_O_X86_64_BRANCH32",
|
| "BFD_RELOC_MACH_O_X86_64_BRANCH8",
|
| @@ -2386,6 +2459,12 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
| "BFD_RELOC_TILEPRO_SHAMT_X1",
|
| "BFD_RELOC_TILEPRO_SHAMT_Y0",
|
| "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_X1_TLS_GD",
|
| "BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO",
|
| @@ -2405,6 +2484,14 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
| "BFD_RELOC_TILEPRO_TLS_DTPMOD32",
|
| "BFD_RELOC_TILEPRO_TLS_DTPOFF32",
|
| "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_HW1",
|
| "BFD_RELOC_TILEGX_HW2",
|
| @@ -2462,52 +2549,44 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
| "BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL",
|
| "BFD_RELOC_TILEGX_IMM16_X0_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_X1_HW0_LAST_GOT",
|
| "BFD_RELOC_TILEGX_IMM16_X0_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_X1_HW0_TLS_GD",
|
| - "BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD",
|
| - "BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD",
|
| - "BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD",
|
| - "BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD",
|
| - "BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD",
|
| - "BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD",
|
| + "BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE",
|
| + "BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE",
|
| + "BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE",
|
| + "BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE",
|
| + "BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE",
|
| + "BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE",
|
| "BFD_RELOC_TILEGX_IMM16_X0_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_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_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_X1_HW0_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_X0_HW2_LAST_TLS_IE",
|
| - "BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE",
|
| "BFD_RELOC_TILEGX_TLS_DTPMOD64",
|
| "BFD_RELOC_TILEGX_TLS_DTPOFF64",
|
| "BFD_RELOC_TILEGX_TLS_TPOFF64",
|
| "BFD_RELOC_TILEGX_TLS_DTPMOD32",
|
| "BFD_RELOC_TILEGX_TLS_DTPOFF32",
|
| "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_SIMM24",
|
| "BFD_RELOC_EPIPHANY_HIGH",
|
| @@ -2531,8 +2610,8 @@ bfd_boolean bfd_generic_relax_section
|
| bfd_boolean bfd_generic_gc_sections
|
| (bfd *, struct bfd_link_info *);
|
|
|
| -void bfd_generic_lookup_section_flags
|
| - (struct bfd_link_info *, struct flag_info *);
|
| +bfd_boolean bfd_generic_lookup_section_flags
|
| + (struct bfd_link_info *, struct flag_info *, asection *);
|
|
|
| bfd_boolean bfd_generic_merge_sections
|
| (bfd *, struct bfd_link_info *);
|
| @@ -2556,4 +2635,8 @@ const bfd_arch_info_type *bfd_default_compatible
|
| bfd_boolean bfd_default_scan
|
| (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. */
|
|
|