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. */ |