X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Flibbfd.h;h=c0006bfd0a12f64e6b6f50618ac56eec82904216;hb=418009c200310bee330ac27ab44cd9390a72bfef;hp=d08c2ba829dfe4f04a0655f8b5a6727954b80d2d;hpb=99c513f6aced67d96eb2979128b612cfc5f2bc0d;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/libbfd.h b/bfd/libbfd.h index d08c2ba829..c0006bfd0a 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,15 @@ 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. */ + void *parent_cache; /* Where and how to find this member. */ + file_ptr key; }; #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size) @@ -120,6 +124,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. */ @@ -162,8 +167,6 @@ extern bfd *_bfd_generic_get_elt_at_index (bfd *, symindex); bfd * _bfd_new_bfd (void); -void _bfd_delete_bfd - (bfd *); bfd_boolean _bfd_free_cached_info (bfd *); @@ -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 *); @@ -232,7 +237,9 @@ int bfd_generic_stat_arch_elt /* Generic routines to use for BFD_JUMP_TABLE_GENERIC. Use BFD_JUMP_TABLE_GENERIC (_bfd_generic). */ -#define _bfd_generic_close_and_cleanup bfd_true +#define _bfd_generic_close_and_cleanup _bfd_archive_close_and_cleanup +extern bfd_boolean _bfd_archive_close_and_cleanup + (bfd *); #define _bfd_generic_bfd_free_cached_info bfd_true extern bfd_boolean _bfd_generic_new_section_hook (bfd *, asection *); @@ -459,7 +466,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 *)) \ @@ -540,20 +547,33 @@ extern const struct dwarf_debug_section dwarf_debug_sections[]; /* Find the nearest line using DWARF 2 debugging information. */ extern bfd_boolean _bfd_dwarf2_find_nearest_line (bfd *, const struct dwarf_debug_section *, asection *, asymbol **, bfd_vma, - const char **, const char **, unsigned int *, unsigned int, void **); + const char **, const char **, unsigned int *, unsigned int *, unsigned int, + void **); /* Find the line using DWARF 2 debugging information. */ extern bfd_boolean _bfd_dwarf2_find_line (bfd *, asymbol **, asymbol *, const char **, - unsigned int *, unsigned int, void **); + unsigned int *, unsigned int *, unsigned int, void **); bfd_boolean _bfd_generic_find_line (bfd *, asymbol **, asymbol *, const char **, unsigned int *); +bfd_boolean _bfd_generic_find_nearest_line_discriminator + (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, + unsigned int *, unsigned int *); + /* 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 *); @@ -692,6 +712,10 @@ extern bfd_boolean _bfd_write_merged_section extern bfd_vma _bfd_merged_section_offset (bfd *, asection **, void *, bfd_vma); +/* Tidy up when done. */ + +extern void _bfd_merge_sections_free (void *); + /* Create a string table. */ extern struct bfd_strtab_hash *_bfd_stringtab_init (void); @@ -920,6 +944,8 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_HI16_PLTOFF", "BFD_RELOC_HI16_S_PLTOFF", "BFD_RELOC_8_PLTOFF", + "BFD_RELOC_SIZE32", + "BFD_RELOC_SIZE64", "BFD_RELOC_68K_GLOB_DAT", "BFD_RELOC_68K_JMP_SLOT", "BFD_RELOC_68K_RELATIVE", @@ -1002,6 +1028,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 +1116,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 +1243,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 +1356,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 +1779,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", @@ -1787,6 +1850,44 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_MEP_GNU_VTINHERIT", "BFD_RELOC_MEP_GNU_VTENTRY", + "BFD_RELOC_METAG_HIADDR16", + "BFD_RELOC_METAG_LOADDR16", + "BFD_RELOC_METAG_RELBRANCH", + "BFD_RELOC_METAG_GETSETOFF", + "BFD_RELOC_METAG_HIOG", + "BFD_RELOC_METAG_LOOG", + "BFD_RELOC_METAG_REL8", + "BFD_RELOC_METAG_REL16", + "BFD_RELOC_METAG_HI16_GOTOFF", + "BFD_RELOC_METAG_LO16_GOTOFF", + "BFD_RELOC_METAG_GETSET_GOTOFF", + "BFD_RELOC_METAG_GETSET_GOT", + "BFD_RELOC_METAG_HI16_GOTPC", + "BFD_RELOC_METAG_LO16_GOTPC", + "BFD_RELOC_METAG_HI16_PLT", + "BFD_RELOC_METAG_LO16_PLT", + "BFD_RELOC_METAG_RELBRANCH_PLT", + "BFD_RELOC_METAG_GOTOFF", + "BFD_RELOC_METAG_PLT", + "BFD_RELOC_METAG_COPY", + "BFD_RELOC_METAG_JMP_SLOT", + "BFD_RELOC_METAG_RELATIVE", + "BFD_RELOC_METAG_GLOB_DAT", + "BFD_RELOC_METAG_TLS_GD", + "BFD_RELOC_METAG_TLS_LDM", + "BFD_RELOC_METAG_TLS_LDO_HI16", + "BFD_RELOC_METAG_TLS_LDO_LO16", + "BFD_RELOC_METAG_TLS_LDO", + "BFD_RELOC_METAG_TLS_IE", + "BFD_RELOC_METAG_TLS_IENONPIC", + "BFD_RELOC_METAG_TLS_IENONPIC_HI16", + "BFD_RELOC_METAG_TLS_IENONPIC_LO16", + "BFD_RELOC_METAG_TLS_TPOFF", + "BFD_RELOC_METAG_TLS_DTPMOD", + "BFD_RELOC_METAG_TLS_DTPOFF", + "BFD_RELOC_METAG_TLS_LE", + "BFD_RELOC_METAG_TLS_LE_HI16", + "BFD_RELOC_METAG_TLS_LE_LO16", "BFD_RELOC_MMIX_GETA", "BFD_RELOC_MMIX_GETA_1", "BFD_RELOC_MMIX_GETA_2", @@ -1834,6 +1935,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", @@ -1866,6 +1970,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_RL78_HI16", "BFD_RELOC_RL78_HI8", "BFD_RELOC_RL78_LO16", + "BFD_RELOC_RL78_CODE", "BFD_RELOC_RX_NEG8", "BFD_RELOC_RX_NEG16", "BFD_RELOC_RX_NEG24", @@ -1943,6 +2048,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 +2166,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", @@ -2225,6 +2349,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_H8_DIR24A8", "BFD_RELOC_H8_DIR24R8", "BFD_RELOC_H8_DIR32A16", + "BFD_RELOC_H8_DISP32A16", "BFD_RELOC_XSTORMY16_REL_12", "BFD_RELOC_XSTORMY16_12", "BFD_RELOC_XSTORMY16_24", @@ -2251,6 +2376,55 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_MSP430_16_BYTE", "BFD_RELOC_MSP430_2X_PCREL", "BFD_RELOC_MSP430_RL_PCREL", + "BFD_RELOC_MSP430_ABS8", + "BFD_RELOC_MSP430X_PCR20_EXT_SRC", + "BFD_RELOC_MSP430X_PCR20_EXT_DST", + "BFD_RELOC_MSP430X_PCR20_EXT_ODST", + "BFD_RELOC_MSP430X_ABS20_EXT_SRC", + "BFD_RELOC_MSP430X_ABS20_EXT_DST", + "BFD_RELOC_MSP430X_ABS20_EXT_ODST", + "BFD_RELOC_MSP430X_ABS20_ADR_SRC", + "BFD_RELOC_MSP430X_ABS20_ADR_DST", + "BFD_RELOC_MSP430X_PCR16", + "BFD_RELOC_MSP430X_PCR20_CALL", + "BFD_RELOC_MSP430X_ABS16", + "BFD_RELOC_MSP430_ABS_HI16", + "BFD_RELOC_MSP430_PREL31", + "BFD_RELOC_MSP430_SYM_DIFF", + "BFD_RELOC_NIOS2_S16", + "BFD_RELOC_NIOS2_U16", + "BFD_RELOC_NIOS2_CALL26", + "BFD_RELOC_NIOS2_IMM5", + "BFD_RELOC_NIOS2_CACHE_OPX", + "BFD_RELOC_NIOS2_IMM6", + "BFD_RELOC_NIOS2_IMM8", + "BFD_RELOC_NIOS2_HI16", + "BFD_RELOC_NIOS2_LO16", + "BFD_RELOC_NIOS2_HIADJ16", + "BFD_RELOC_NIOS2_GPREL", + "BFD_RELOC_NIOS2_UJMP", + "BFD_RELOC_NIOS2_CJMP", + "BFD_RELOC_NIOS2_CALLR", + "BFD_RELOC_NIOS2_ALIGN", + "BFD_RELOC_NIOS2_GOT16", + "BFD_RELOC_NIOS2_CALL16", + "BFD_RELOC_NIOS2_GOTOFF_LO", + "BFD_RELOC_NIOS2_GOTOFF_HA", + "BFD_RELOC_NIOS2_PCREL_LO", + "BFD_RELOC_NIOS2_PCREL_HA", + "BFD_RELOC_NIOS2_TLS_GD16", + "BFD_RELOC_NIOS2_TLS_LDM16", + "BFD_RELOC_NIOS2_TLS_LDO16", + "BFD_RELOC_NIOS2_TLS_IE16", + "BFD_RELOC_NIOS2_TLS_LE16", + "BFD_RELOC_NIOS2_TLS_DTPMOD", + "BFD_RELOC_NIOS2_TLS_DTPREL", + "BFD_RELOC_NIOS2_TLS_TPREL", + "BFD_RELOC_NIOS2_COPY", + "BFD_RELOC_NIOS2_GLOB_DAT", + "BFD_RELOC_NIOS2_JUMP_SLOT", + "BFD_RELOC_NIOS2_RELATIVE", + "BFD_RELOC_NIOS2_GOTOFF", "BFD_RELOC_IQ2000_OFFSET_16", "BFD_RELOC_IQ2000_OFFSET_21", "BFD_RELOC_IQ2000_UHI16", @@ -2318,6 +2492,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", @@ -2340,6 +2515,72 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_MICROBLAZE_64_GOTOFF", "BFD_RELOC_MICROBLAZE_32_GOTOFF", "BFD_RELOC_MICROBLAZE_COPY", + "BFD_RELOC_MICROBLAZE_64_TLS", + "BFD_RELOC_MICROBLAZE_64_TLSGD", + "BFD_RELOC_MICROBLAZE_64_TLSLD", + "BFD_RELOC_MICROBLAZE_32_TLSDTPMOD", + "BFD_RELOC_MICROBLAZE_32_TLSDTPREL", + "BFD_RELOC_MICROBLAZE_64_TLSDTPREL", + "BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL", + "BFD_RELOC_MICROBLAZE_64_TLSTPREL", + "BFD_RELOC_AARCH64_ADD_LO12", + "BFD_RELOC_AARCH64_GOT_LD_PREL19", + "BFD_RELOC_AARCH64_ADR_GOT_PAGE", + "BFD_RELOC_AARCH64_ADR_HI21_PCREL", + "BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL", + "BFD_RELOC_AARCH64_ADR_LO21_PCREL", + "BFD_RELOC_AARCH64_BRANCH19", + "BFD_RELOC_AARCH64_CALL26", + "BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP", + "BFD_RELOC_AARCH64_JUMP26", + "BFD_RELOC_AARCH64_LD_LO19_PCREL", + "BFD_RELOC_AARCH64_LD64_GOT_LO12_NC", + "BFD_RELOC_AARCH64_LDST_LO12", + "BFD_RELOC_AARCH64_LDST8_LO12", + "BFD_RELOC_AARCH64_LDST16_LO12", + "BFD_RELOC_AARCH64_LDST32_LO12", + "BFD_RELOC_AARCH64_LDST64_LO12", + "BFD_RELOC_AARCH64_LDST128_LO12", + "BFD_RELOC_AARCH64_MOVW_G0", + "BFD_RELOC_AARCH64_MOVW_G0_S", + "BFD_RELOC_AARCH64_MOVW_G0_NC", + "BFD_RELOC_AARCH64_MOVW_G1", + "BFD_RELOC_AARCH64_MOVW_G1_NC", + "BFD_RELOC_AARCH64_MOVW_G1_S", + "BFD_RELOC_AARCH64_MOVW_G2", + "BFD_RELOC_AARCH64_MOVW_G2_NC", + "BFD_RELOC_AARCH64_MOVW_G2_S", + "BFD_RELOC_AARCH64_MOVW_G3", + "BFD_RELOC_AARCH64_TLSDESC", + "BFD_RELOC_AARCH64_TLSDESC_ADD", + "BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC", + "BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21", + "BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21", + "BFD_RELOC_AARCH64_TLSDESC_CALL", + "BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC", + "BFD_RELOC_AARCH64_TLSDESC_LD_PREL19", + "BFD_RELOC_AARCH64_TLSDESC_LDR", + "BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC", + "BFD_RELOC_AARCH64_TLSDESC_OFF_G1", + "BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC", + "BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21", + "BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21", + "BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19", + "BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC", + "BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC", + "BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1", + "BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12", + "BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12", + "BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC", + "BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0", + "BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC", + "BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1", + "BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC", + "BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2", + "BFD_RELOC_AARCH64_TLS_DTPMOD64", + "BFD_RELOC_AARCH64_TLS_DTPREL64", + "BFD_RELOC_AARCH64_TLS_TPREL64", + "BFD_RELOC_AARCH64_TSTBR14", "BFD_RELOC_TILEPRO_COPY", "BFD_RELOC_TILEPRO_GLOB_DAT", "BFD_RELOC_TILEPRO_JMP_SLOT", @@ -2386,6 +2627,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 +2652,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 +2717,58 @@ 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_PLT_PCREL", + "BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL", + "BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL", + "BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL", + "BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL", + "BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL", "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_HW3_PLT_PCREL", + "BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL", "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_PLT_PCREL", + "BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL", + "BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL", + "BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL", + "BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL", + "BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL", "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 +2792,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 +2817,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. */