Index: bfd/bfd-in2.h |
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h |
index 2bb0ec7db558b80da852937ce288cea574c2f81f..c1c5e90a37b5e1f17a8f24764aeab97c3256b126 100644 |
--- a/bfd/bfd-in2.h |
+++ b/bfd/bfd-in2.h |
@@ -8,8 +8,8 @@ |
/* Main header file for the bfd library -- portable access to object files. |
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
- 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 |
- Free Software Foundation, Inc. |
+ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, |
+ 2012 Free Software Foundation, Inc. |
Contributed by Cygnus Support. |
@@ -32,6 +32,11 @@ |
#ifndef __BFD_H_SEEN__ |
#define __BFD_H_SEEN__ |
+/* PR 14072: Ensure that config.h is included first. */ |
+#if !defined PACKAGE && !defined PACKAGE_VERSION |
+#error config.h must be included before this header |
+#endif |
+ |
#ifdef __cplusplus |
extern "C" { |
#endif |
@@ -280,18 +285,19 @@ alent; |
typedef struct bfd_section *sec_ptr; |
-#define bfd_get_section_name(bfd, ptr) ((ptr)->name + 0) |
-#define bfd_get_section_vma(bfd, ptr) ((ptr)->vma + 0) |
-#define bfd_get_section_lma(bfd, ptr) ((ptr)->lma + 0) |
-#define bfd_get_section_alignment(bfd, ptr) ((ptr)->alignment_power + 0) |
+#define bfd_get_section_name(bfd, ptr) ((void) bfd, (ptr)->name) |
+#define bfd_get_section_vma(bfd, ptr) ((void) bfd, (ptr)->vma) |
+#define bfd_get_section_lma(bfd, ptr) ((void) bfd, (ptr)->lma) |
+#define bfd_get_section_alignment(bfd, ptr) ((void) bfd, \ |
+ (ptr)->alignment_power) |
#define bfd_section_name(bfd, ptr) ((ptr)->name) |
#define bfd_section_size(bfd, ptr) ((ptr)->size) |
#define bfd_get_section_size(ptr) ((ptr)->size) |
#define bfd_section_vma(bfd, ptr) ((ptr)->vma) |
#define bfd_section_lma(bfd, ptr) ((ptr)->lma) |
#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power) |
-#define bfd_get_section_flags(bfd, ptr) ((ptr)->flags + 0) |
-#define bfd_get_section_userdata(bfd, ptr) ((ptr)->userdata) |
+#define bfd_get_section_flags(bfd, ptr) ((void) bfd, (ptr)->flags) |
+#define bfd_get_section_userdata(bfd, ptr) ((void) bfd, (ptr)->userdata) |
#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) |
@@ -304,11 +310,11 @@ typedef struct bfd_section *sec_ptr; |
? (sec)->rawsize : (sec)->size) / bfd_octets_per_byte (bfd)) |
/* Return TRUE if input section SEC has been discarded. */ |
-#define elf_discarded_section(sec) \ |
+#define discarded_section(sec) \ |
(!bfd_is_abs_section (sec) \ |
&& bfd_is_abs_section ((sec)->output_section) \ |
- && (sec)->sec_info_type != ELF_INFO_TYPE_MERGE \ |
- && (sec)->sec_info_type != ELF_INFO_TYPE_JUST_SYMS) |
+ && (sec)->sec_info_type != SEC_INFO_TYPE_MERGE \ |
+ && (sec)->sec_info_type != SEC_INFO_TYPE_JUST_SYMS) |
typedef enum bfd_print_symbol |
{ |
@@ -699,19 +705,15 @@ extern int bfd_get_elf_phdrs |
the remote memory. */ |
extern bfd *bfd_elf_bfd_from_remote_memory |
(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep, |
- int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len)); |
- |
-/* Return the arch_size field of an elf bfd, or -1 if not elf. */ |
-extern int bfd_get_arch_size |
- (bfd *); |
- |
-/* Return TRUE if address "naturally" sign extends, or -1 if not elf. */ |
-extern int bfd_get_sign_extend_vma |
- (bfd *); |
+ int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, |
+ bfd_size_type len)); |
extern struct bfd_section *_bfd_elf_tls_setup |
(bfd *, struct bfd_link_info *); |
+extern struct bfd_section * |
+_bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma); |
+ |
extern void _bfd_fix_excluded_sec_syms |
(bfd *, struct bfd_link_info *); |
@@ -1383,11 +1385,11 @@ typedef struct bfd_section |
/* Type of sec_info information. */ |
unsigned int sec_info_type:3; |
-#define ELF_INFO_TYPE_NONE 0 |
-#define ELF_INFO_TYPE_STABS 1 |
-#define ELF_INFO_TYPE_MERGE 2 |
-#define ELF_INFO_TYPE_EH_FRAME 3 |
-#define ELF_INFO_TYPE_JUST_SYMS 4 |
+#define SEC_INFO_TYPE_NONE 0 |
+#define SEC_INFO_TYPE_STABS 1 |
+#define SEC_INFO_TYPE_MERGE 2 |
+#define SEC_INFO_TYPE_EH_FRAME 3 |
+#define SEC_INFO_TYPE_JUST_SYMS 4 |
/* Nonzero if this section uses RELA relocations, rather than REL. */ |
unsigned int use_rela_p:1; |
@@ -1517,9 +1519,6 @@ typedef struct bfd_section |
/* The BFD which owns the section. */ |
bfd *owner; |
- /* INPUT_SECTION_FLAGS if specified in the linker script. */ |
- struct flag_info *section_flag_info; |
- |
/* A symbol which points at this section only. */ |
struct bfd_symbol *symbol; |
struct bfd_symbol **symbol_ptr_ptr; |
@@ -1547,28 +1546,25 @@ struct relax_table { |
/* These sections are global, and are managed by BFD. The application |
and target back end are not permitted to change the values in |
- these sections. New code should use the section_ptr macros rather |
- than referring directly to the const sections. The const sections |
- may eventually vanish. */ |
+ these sections. */ |
+extern asection std_section[4]; |
+ |
#define BFD_ABS_SECTION_NAME "*ABS*" |
#define BFD_UND_SECTION_NAME "*UND*" |
#define BFD_COM_SECTION_NAME "*COM*" |
#define BFD_IND_SECTION_NAME "*IND*" |
-/* The absolute section. */ |
-extern asection bfd_abs_section; |
-#define bfd_abs_section_ptr ((asection *) &bfd_abs_section) |
-#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr) |
-/* Pointer to the undefined section. */ |
-extern asection bfd_und_section; |
-#define bfd_und_section_ptr ((asection *) &bfd_und_section) |
-#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr) |
/* Pointer to the common section. */ |
-extern asection bfd_com_section; |
-#define bfd_com_section_ptr ((asection *) &bfd_com_section) |
+#define bfd_com_section_ptr (&std_section[0]) |
+/* Pointer to the undefined section. */ |
+#define bfd_und_section_ptr (&std_section[1]) |
+/* Pointer to the absolute section. */ |
+#define bfd_abs_section_ptr (&std_section[2]) |
/* Pointer to the indirect section. */ |
-extern asection bfd_ind_section; |
-#define bfd_ind_section_ptr ((asection *) &bfd_ind_section) |
+#define bfd_ind_section_ptr (&std_section[3]) |
+ |
+#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr) |
+#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr) |
#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr) |
#define bfd_is_const_section(SEC) \ |
@@ -1683,8 +1679,8 @@ extern asection bfd_ind_section; |
/* vma, lma, size, rawsize, compressed_size, relax, relax_count, */ \ |
0, 0, 0, 0, 0, 0, 0, \ |
\ |
- /* output_offset, output_section, alignment_power, */ \ |
- 0, (struct bfd_section *) &SEC, 0, \ |
+ /* output_offset, output_section, alignment_power, */ \ |
+ 0, &SEC, 0, \ |
\ |
/* relocation, orelocation, reloc_count, filepos, rel_filepos, */ \ |
NULL, NULL, 0, 0, 0, \ |
@@ -1698,9 +1694,6 @@ extern asection bfd_ind_section; |
/* target_index, used_by_bfd, constructor_chain, owner, */ \ |
0, NULL, NULL, NULL, \ |
\ |
- /* flag_info, */ \ |
- NULL, \ |
- \ |
/* symbol, symbol_ptr_ptr, */ \ |
(struct bfd_symbol *) SYM, &SEC.symbol, \ |
\ |
@@ -1712,6 +1705,10 @@ void bfd_section_list_clear (bfd *); |
asection *bfd_get_section_by_name (bfd *abfd, const char *name); |
+asection *bfd_get_next_section_by_name (asection *sec); |
+ |
+asection *bfd_get_linker_section (bfd *abfd, const char *name); |
+ |
asection *bfd_get_section_by_name_if |
(bfd *abfd, |
const char *name, |
@@ -1947,7 +1944,10 @@ enum bfd_architecture |
#define bfd_mach_ppc_e500 500 |
#define bfd_mach_ppc_e500mc 5001 |
#define bfd_mach_ppc_e500mc64 5005 |
+#define bfd_mach_ppc_e5500 5006 |
+#define bfd_mach_ppc_e6500 5007 |
#define bfd_mach_ppc_titan 83 |
+#define bfd_mach_ppc_vle 84 |
bfd_arch_rs6000, /* IBM RS/6000 */ |
#define bfd_mach_rs6k 6000 |
#define bfd_mach_rs6k_rs1 6001 |
@@ -1969,6 +1969,8 @@ enum bfd_architecture |
#define bfd_mach_m6812_default 0 |
#define bfd_mach_m6812 1 |
#define bfd_mach_m6812s 2 |
+ bfd_arch_m9s12x, /* Freescale S12X */ |
+ bfd_arch_m9s12xg, /* Freescale XGATE */ |
bfd_arch_z8k, /* Zilog Z8000 */ |
#define bfd_mach_z8001 1 |
#define bfd_mach_z8002 2 |
@@ -2144,7 +2146,9 @@ enum bfd_architecture |
bfd_arch_xc16x, /* Infineon's XC16X Series. */ |
#define bfd_mach_xc16x 1 |
#define bfd_mach_xc16xl 2 |
-#define bfd_mach_xc16xs 3 |
+#define bfd_mach_xc16xs 3 |
+ bfd_arch_xgate, /* Freescale XGATE */ |
+#define bfd_mach_xgate 1 |
bfd_arch_xtensa, /* Tensilica's Xtensa cores. */ |
#define bfd_mach_xtensa 1 |
bfd_arch_z80, |
@@ -2159,6 +2163,7 @@ enum bfd_architecture |
bfd_arch_tilegx, /* Tilera TILE-Gx */ |
#define bfd_mach_tilepro 1 |
#define bfd_mach_tilegx 1 |
+#define bfd_mach_tilegx32 2 |
bfd_arch_last |
}; |
@@ -2181,6 +2186,12 @@ typedef struct bfd_arch_info |
bfd_boolean (*scan) (const struct bfd_arch_info *, const char *); |
+ /* Allocate via bfd_malloc and return a fill buffer of size COUNT. If |
+ IS_BIGENDIAN is TRUE, the order of bytes is big endian. If CODE is |
+ TRUE, the buffer contains code. */ |
+ void *(*fill) (bfd_size_type count, bfd_boolean is_bigendian, |
+ bfd_boolean code); |
+ |
const struct bfd_arch_info *next; |
} |
bfd_arch_info_type; |
@@ -2591,6 +2602,10 @@ relocation types already defined. */ |
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, |
/* SPARC little endian relocation */ |
BFD_RELOC_SPARC_REV32, |
@@ -2786,6 +2801,15 @@ to compensate for the borrow when the low bits are added. */ |
/* MIPS16 low 16 bits. */ |
BFD_RELOC_MIPS16_LO16, |
+/* MIPS16 TLS relocations */ |
+ 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, |
+ |
/* Relocation against a MIPS literal section. */ |
BFD_RELOC_MIPS_LITERAL, |
BFD_RELOC_MICROMIPS_LITERAL, |
@@ -2947,6 +2971,25 @@ be honoured at the offset's location, regardless of linker |
relaxation. */ |
BFD_RELOC_MN10300_ALIGN, |
+/* Various TLS-related relocations. */ |
+ 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, |
+ |
+/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the |
+instruction. */ |
+ BFD_RELOC_MN10300_32_PCREL, |
+ |
+/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the |
+instruction. */ |
+ BFD_RELOC_MN10300_16_PCREL, |
+ |
/* i386/elf relocations */ |
BFD_RELOC_386_GOT32, |
@@ -3060,6 +3103,23 @@ relaxation. */ |
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, |
@@ -3782,14 +3842,6 @@ instructions. */ |
/* start data in text. */ |
BFD_RELOC_V850_DATA, |
-/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the |
-instruction. */ |
- BFD_RELOC_MN10300_32_PCREL, |
- |
-/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the |
-instruction. */ |
- BFD_RELOC_MN10300_16_PCREL, |
- |
/* This is a 8bit DP reloc for the tms320c30, where the most |
significant 8 bits of a 24 bit word are placed into the least |
significant 8 bits of the opcode. */ |
@@ -4061,6 +4113,18 @@ instructions */ |
instructions */ |
BFD_RELOC_AVR_6_ADIW, |
+/* This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol |
+in .byte lo8(symbol) */ |
+ BFD_RELOC_AVR_8_LO, |
+ |
+/* This is a 8 bit reloc for the AVR that stores bits 8..15 of a symbol |
+in .byte hi8(symbol) */ |
+ BFD_RELOC_AVR_8_HI, |
+ |
+/* This is a 8 bit reloc for the AVR that stores bits 16..23 of a symbol |
+in .byte hlo8(symbol) */ |
+ BFD_RELOC_AVR_8_HLO, |
+ |
/* Renesas RL78 Relocations. */ |
BFD_RELOC_RL78_NEG8, |
BFD_RELOC_RL78_NEG16, |
@@ -4229,6 +4293,7 @@ instructions */ |
BFD_RELOC_390_GOT20, |
BFD_RELOC_390_GOTPLT20, |
BFD_RELOC_390_TLS_GOTIE20, |
+ BFD_RELOC_390_IRELATIVE, |
/* Score relocations |
Low 16 bit for load/store */ |
@@ -4444,6 +4509,83 @@ to follow the 16K memory bank of 68HC12 (seen as mapped in the window). */ |
This is the 5 bits of a value. */ |
BFD_RELOC_M68HC12_5B, |
+/* Freescale XGATE reloc. |
+This reloc marks the beginning of a bra/jal instruction. */ |
+ BFD_RELOC_XGATE_RL_JUMP, |
+ |
+/* Freescale XGATE reloc. |
+This reloc marks a group of several instructions that gcc generates |
+and for which the linker relaxation pass can modify and/or remove |
+some of them. */ |
+ BFD_RELOC_XGATE_RL_GROUP, |
+ |
+/* Freescale XGATE reloc. |
+This is the 16-bit lower part of an address. It is used for the '16-bit' |
+instructions. */ |
+ BFD_RELOC_XGATE_LO16, |
+ |
+/* Freescale XGATE reloc. */ |
+ BFD_RELOC_XGATE_GPAGE, |
+ |
+/* Freescale XGATE reloc. */ |
+ BFD_RELOC_XGATE_24, |
+ |
+/* Freescale XGATE reloc. |
+This is a 9-bit pc-relative reloc. */ |
+ BFD_RELOC_XGATE_PCREL_9, |
+ |
+/* Freescale XGATE reloc. |
+This is a 10-bit pc-relative reloc. */ |
+ BFD_RELOC_XGATE_PCREL_10, |
+ |
+/* Freescale XGATE reloc. |
+This is the 16-bit lower part of an address. It is used for the '16-bit' |
+instructions. */ |
+ BFD_RELOC_XGATE_IMM8_LO, |
+ |
+/* Freescale XGATE reloc. |
+This is the 16-bit higher part of an address. It is used for the '16-bit' |
+instructions. */ |
+ BFD_RELOC_XGATE_IMM8_HI, |
+ |
+/* Freescale XGATE reloc. |
+This is a 3-bit pc-relative reloc. */ |
+ BFD_RELOC_XGATE_IMM3, |
+ |
+/* Freescale XGATE reloc. |
+This is a 4-bit pc-relative reloc. */ |
+ BFD_RELOC_XGATE_IMM4, |
+ |
+/* Freescale XGATE reloc. |
+This is a 5-bit pc-relative reloc. */ |
+ BFD_RELOC_XGATE_IMM5, |
+ |
+/* Motorola 68HC12 reloc. |
+This is the 9 bits of a value. */ |
+ BFD_RELOC_M68HC12_9B, |
+ |
+/* Motorola 68HC12 reloc. |
+This is the 16 bits of a value. */ |
+ BFD_RELOC_M68HC12_16B, |
+ |
+/* Motorola 68HC12/XGATE reloc. |
+This is a PCREL9 branch. */ |
+ BFD_RELOC_M68HC12_9_PCREL, |
+ |
+/* Motorola 68HC12/XGATE reloc. |
+This is a PCREL10 branch. */ |
+ BFD_RELOC_M68HC12_10_PCREL, |
+ |
+/* Motorola 68HC12/XGATE reloc. |
+This is the 8 bit low part of an absolute address and immediately precedes |
+a matching HI8XG part. */ |
+ BFD_RELOC_M68HC12_LO8XG, |
+ |
+/* Motorola 68HC12/XGATE reloc. |
+This is the 8 bit high part of an absolute address and immediately follows |
+a matching LO8XG part. */ |
+ BFD_RELOC_M68HC12_HI8XG, |
+ |
/* NS CR16C Relocations. */ |
BFD_RELOC_16C_NUM08, |
BFD_RELOC_16C_NUM08_C, |
@@ -4810,6 +4952,9 @@ BFD_RELOC_XTENSA_ASM_EXPAND. */ |
BFD_RELOC_MACH_O_PAIR. */ |
BFD_RELOC_MACH_O_SECTDIFF, |
+/* Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol. */ |
+ BFD_RELOC_MACH_O_LOCAL_SECTDIFF, |
+ |
/* Pair of relocation. Contains the first symbol. */ |
BFD_RELOC_MACH_O_PAIR, |
@@ -4940,6 +5085,12 @@ the dynamic object into the runtime process image. */ |
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, |
@@ -4959,6 +5110,14 @@ the dynamic object into the runtime process image. */ |
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, |
/* Tilera TILE-Gx Relocations. */ |
BFD_RELOC_TILEGX_HW0, |
@@ -5018,52 +5177,44 @@ the dynamic object into the runtime process image. */ |
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, |
/* Adapteva EPIPHANY - 8 bit signed pc-relative displacement */ |
BFD_RELOC_EPIPHANY_SIMM8, |
@@ -5600,6 +5751,15 @@ void bfd_set_error_program_name (const char *); |
bfd_error_handler_type bfd_get_error_handler (void); |
+typedef void (*bfd_assert_handler_type) (const char *bfd_formatmsg, |
+ const char *bfd_version, |
+ const char *bfd_file, |
+ int bfd_line); |
+ |
+bfd_assert_handler_type bfd_set_assert_handler (bfd_assert_handler_type); |
+ |
+bfd_assert_handler_type bfd_get_assert_handler (void); |
+ |
long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect); |
long bfd_canonicalize_reloc |
@@ -5680,8 +5840,8 @@ bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags); |
#define bfd_gc_sections(abfd, link_info) \ |
BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info)) |
-#define bfd_lookup_section_flags(link_info, flag_info) \ |
- BFD_SEND (abfd, _bfd_lookup_section_flags, (link_info, flag_info)) |
+#define bfd_lookup_section_flags(link_info, flag_info, section) \ |
+ BFD_SEND (abfd, _bfd_lookup_section_flags, (link_info, flag_info, section)) |
#define bfd_merge_sections(abfd, link_info) \ |
BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info)) |
@@ -6157,8 +6317,9 @@ typedef struct bfd_target |
bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *); |
/* Sets the bitmask of allowed and disallowed section flags. */ |
- void (*_bfd_lookup_section_flags) (struct bfd_link_info *, |
- struct flag_info *); |
+ bfd_boolean (*_bfd_lookup_section_flags) (struct bfd_link_info *, |
+ struct flag_info *, |
+ asection *); |
/* Attempt to merge SEC_MERGE sections. */ |
bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *); |