{
COMPRESS_DEBUG_NONE = 0,
COMPRESS_DEBUG = 1 << 0,
- COMPRESS_DEBUG_ZLIB = COMPRESS_DEBUG | 1 << 1,
- COMPRESS_DEBUG_GNU_ZLIB = COMPRESS_DEBUG | 1 << 2,
- COMPRESS_DEBUG_GABI_ZLIB = COMPRESS_DEBUG | 1 << 3
+ COMPRESS_DEBUG_GNU_ZLIB = COMPRESS_DEBUG | 1 << 1,
+ COMPRESS_DEBUG_GABI_ZLIB = COMPRESS_DEBUG | 1 << 2
};
/* This structure is used to keep track of stabs in sections
TMS320C54X only. */
#define SEC_TIC54X_BLOCK 0x10000000
+ /* This section should be renamed. This is for ELF linker
+ internal use only. */
+#define SEC_ELF_RENAME 0x10000000
+
/* Conditionally link this section; do not link if there are no
references found to any symbol in the section. This is for TI
TMS320C54X only. */
#define SEC_TIC54X_CLINK 0x20000000
+ /* This section contains vliw code. This is for Toshiba MeP only. */
+#define SEC_MEP_VLIW 0x20000000
+
/* Indicate that section has the no read flag set. This happens
when memory read flag isn't set. */
#define SEC_COFF_NOREAD 0x40000000
#define SEC_INFO_TYPE_EH_FRAME 3
#define SEC_INFO_TYPE_JUST_SYMS 4
#define SEC_INFO_TYPE_TARGET 5
+#define SEC_INFO_TYPE_EH_FRAME_ENTRY 6
/* Nonzero if this section uses RELA relocations, rather than REL. */
unsigned int use_rela_p:1;
#define bfd_mach_i386_i386_nacl (bfd_mach_i386_i386 | bfd_mach_i386_nacl)
#define bfd_mach_x86_64_nacl (bfd_mach_x86_64 | bfd_mach_i386_nacl)
#define bfd_mach_x64_32_nacl (bfd_mach_x64_32 | bfd_mach_i386_nacl)
+ bfd_arch_iamcu, /* Intel MCU */
+#define bfd_mach_iamcu (1 << 8)
+#define bfd_mach_i386_iamcu (bfd_mach_i386_i386 | bfd_mach_iamcu)
+#define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax)
bfd_arch_we32k, /* AT&T WE32xxx */
bfd_arch_tahoe, /* CCI/Harris Tahoe */
bfd_arch_i860, /* Intel 860 */
bfd_arch_aarch64, /* AArch64 */
#define bfd_mach_aarch64 0
#define bfd_mach_aarch64_ilp32 32
- bfd_arch_nios2,
-#define bfd_mach_nios2 0
+ bfd_arch_nios2, /* Nios II */
+#define bfd_mach_nios2 0
+#define bfd_mach_nios2r1 1
+#define bfd_mach_nios2r2 2
bfd_arch_visium, /* Visium */
#define bfd_mach_visium 1
bfd_arch_last
BFD_RELOC_RL78_HI8,
BFD_RELOC_RL78_LO16,
BFD_RELOC_RL78_CODE,
+ BFD_RELOC_RL78_SADDR,
/* Renesas RX Relocations. */
BFD_RELOC_RX_NEG8,
BFD_RELOC_NIOS2_GOT_HA,
BFD_RELOC_NIOS2_CALL_LO,
BFD_RELOC_NIOS2_CALL_HA,
+ BFD_RELOC_NIOS2_R2_S12,
+ BFD_RELOC_NIOS2_R2_I10_1_PCREL,
+ BFD_RELOC_NIOS2_R2_T1I7_1_PCREL,
+ BFD_RELOC_NIOS2_R2_T1I7_2,
+ BFD_RELOC_NIOS2_R2_T2I4,
+ BFD_RELOC_NIOS2_R2_T2I4_1,
+ BFD_RELOC_NIOS2_R2_T2I4_2,
+ BFD_RELOC_NIOS2_R2_X1I7_2,
+ BFD_RELOC_NIOS2_R2_X2L5,
+ BFD_RELOC_NIOS2_R2_F1I5_2,
+ BFD_RELOC_NIOS2_R2_L5I4X1,
+ BFD_RELOC_NIOS2_R2_T1X1I6,
+ BFD_RELOC_NIOS2_R2_T1X1I6_2,
/* IQ2000 Relocations. */
BFD_RELOC_IQ2000_OFFSET_16,
BFD_RELOC_AARCH64_ADR_GOTPAGE. Valid in ILP32 ABI only. */
BFD_RELOC_AARCH64_LD32_GOT_LO12_NC,
+/* Unsigned 15 bit byte offset for 64 bit load/store from the page of
+the GOT entry for this symbol. Valid in ILP64 ABI only. */
+ BFD_RELOC_AARCH64_LD64_GOTOFF_LO15,
+
+/* Scaled 14 bit byte offset to the page base of the global offset table. */
+ BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14,
+
+/* Scaled 15 bit byte offset to the page base of the global offset table. */
+ BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15,
+
/* Get to the page base of the global offset table entry for a symbols
tls_index structure as part of an adrp instruction using a 21 bit PC
relative value. Used in conjunction with
/* AArch64 TLS INITIAL EXEC relocation. */
BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19,
+/* GOT entry page address for AArch64 TLS Local Dynamic, used with ADRP
+instruction. */
+ BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21,
+
+/* GOT entry address for AArch64 TLS Local Dynamic, used with ADR instruction. */
+ BFD_RELOC_AARCH64_TLSLD_ADR_PREL21,
+
/* AArch64 TLS LOCAL EXEC relocation. */
BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2,
bfd_plugin_no = 2
};
+struct bfd_build_id
+ {
+ bfd_size_type size;
+ bfd_byte data[1];
+ };
+
struct bfd
{
/* The filename the application opened the BFD with. */
/* Set if this is the linker output BFD. */
unsigned int is_linker_output : 1;
+ /* Set if this is the linker input BFD. */
+ unsigned int is_linker_input : 1;
+
/* If this is an input for a compiler plug-in library. */
ENUM_BITFIELD (bfd_plugin_format) plugin_format : 2;
struct objalloc *, but we use void * to avoid requiring the inclusion
of objalloc.h. */
void *memory;
+
+ /* For input BFDs, the build ID, if the object has one. */
+ const struct bfd_build_id *build_id;
};
/* See note beside bfd_set_section_userdata. */
bfd_boolean bfd_check_compression_header
(bfd *abfd, bfd_byte *contents, asection *sec,
- bfd_size_type uncompressed_size);
+ bfd_size_type *uncompressed_size);
int bfd_get_compression_header_size (bfd *abfd, asection *sec);
+bfd_size_type bfd_convert_section_size
+ (bfd *ibfd, asection *isec, bfd *obfd, bfd_size_type size);
+
+bfd_boolean bfd_convert_section_contents
+ (bfd *ibfd, asection *isec, bfd *obfd, bfd_byte **ptr);
+
/* Extracted from archive.c. */
symindex bfd_get_next_mapent
(bfd *abfd, symindex previous, carsym **sym);
bfd_boolean bfd_is_section_compressed_with_header
(bfd *abfd, asection *section,
- int *compression_header_size_p);
+ int *compression_header_size_p,
+ bfd_size_type *uncompressed_size_p);
bfd_boolean bfd_is_section_compressed
(bfd *abfd, asection *section);