/* libbfd.h -- Declarations used by bfd library *implementation*.
(This include file is not for users of the library.)
- Copyright (C) 1990-2018 Free Software Foundation, Inc.
+ Copyright (C) 1990-2019 Free Software Foundation, Inc.
Written by Cygnus Support.
extern void *bfd_zmalloc2
(bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN;
+static inline char *
+bfd_strdup (const char *str)
+{
+ size_t len = strlen (str) + 1;
+ char *buf = bfd_malloc (len);
+ if (buf != NULL)
+ memcpy (buf, str, len);
+ return buf;
+}
/* These routines allocate and free things on the BFD's objalloc. */
extern void *bfd_alloc2
#define _bfd_generic_close_and_cleanup _bfd_archive_close_and_cleanup
extern bfd_boolean _bfd_archive_close_and_cleanup
(bfd *) ATTRIBUTE_HIDDEN;
+extern void _bfd_unlink_from_archive_parent (bfd *) ATTRIBUTE_HIDDEN;
#define _bfd_generic_bfd_free_cached_info _bfd_bool_bfd_true
extern bfd_boolean _bfd_generic_new_section_hook
(bfd *, asection *) ATTRIBUTE_HIDDEN;
#define _bfd_nolink_bfd_merge_sections _bfd_bool_bfd_link_false_error
extern bfd_boolean _bfd_nolink_bfd_is_group_section
(bfd *, const asection *) ATTRIBUTE_HIDDEN;
+extern const char *_bfd_nolink_bfd_group_name
+ (bfd *, const asection *) ATTRIBUTE_HIDDEN;
extern bfd_boolean _bfd_nolink_bfd_discard_group
(bfd *, asection *) ATTRIBUTE_HIDDEN;
extern struct bfd_link_hash_table *_bfd_nolink_bfd_link_hash_table_create
extern const struct dwarf_debug_section dwarf_debug_sections[] ATTRIBUTE_HIDDEN;
/* Find the nearest line using DWARF 2 debugging information. */
-extern bfd_boolean _bfd_dwarf2_find_nearest_line
+extern int _bfd_dwarf2_find_nearest_line
(bfd *, asymbol **, asymbol *, asection *, bfd_vma,
const char **, const char **, unsigned int *, unsigned int *,
- const struct dwarf_debug_section *, unsigned int, void **) ATTRIBUTE_HIDDEN;
+ const struct dwarf_debug_section *, void **) ATTRIBUTE_HIDDEN;
/* Find the bias between DWARF addresses and real addresses. */
extern bfd_signed_vma _bfd_dwarf2_find_symbol_bias
(reloc_howto_type *, bfd *, bfd_vma, bfd_byte *) ATTRIBUTE_HIDDEN;
/* Clear a given location using a given howto. */
-extern void _bfd_clear_contents
- (reloc_howto_type *, bfd *, asection *, bfd_byte *) ATTRIBUTE_HIDDEN;
+extern bfd_reloc_status_type _bfd_clear_contents
+ (reloc_howto_type *, bfd *, asection *, bfd_byte *, bfd_vma) ATTRIBUTE_HIDDEN;
/* Link stabs in sections in the first pass. */
"BFD_RELOC_PPC64_PLTGOT16_LO_DS",
"BFD_RELOC_PPC64_ADDR16_HIGH",
"BFD_RELOC_PPC64_ADDR16_HIGHA",
+ "BFD_RELOC_PPC64_REL16_HIGH",
+ "BFD_RELOC_PPC64_REL16_HIGHA",
+ "BFD_RELOC_PPC64_REL16_HIGHER",
+ "BFD_RELOC_PPC64_REL16_HIGHERA",
+ "BFD_RELOC_PPC64_REL16_HIGHEST",
+ "BFD_RELOC_PPC64_REL16_HIGHESTA",
"BFD_RELOC_PPC64_ADDR64_LOCAL",
"BFD_RELOC_PPC64_ENTRY",
+ "BFD_RELOC_PPC64_REL24_NOTOC",
+ "BFD_RELOC_PPC64_D34",
+ "BFD_RELOC_PPC64_D34_LO",
+ "BFD_RELOC_PPC64_D34_HI30",
+ "BFD_RELOC_PPC64_D34_HA30",
+ "BFD_RELOC_PPC64_PCREL34",
+ "BFD_RELOC_PPC64_GOT_PCREL34",
+ "BFD_RELOC_PPC64_PLT_PCREL34",
+ "BFD_RELOC_PPC64_ADDR16_HIGHER34",
+ "BFD_RELOC_PPC64_ADDR16_HIGHERA34",
+ "BFD_RELOC_PPC64_ADDR16_HIGHEST34",
+ "BFD_RELOC_PPC64_ADDR16_HIGHESTA34",
+ "BFD_RELOC_PPC64_REL16_HIGHER34",
+ "BFD_RELOC_PPC64_REL16_HIGHERA34",
+ "BFD_RELOC_PPC64_REL16_HIGHEST34",
+ "BFD_RELOC_PPC64_REL16_HIGHESTA34",
+ "BFD_RELOC_PPC64_D28",
+ "BFD_RELOC_PPC64_PCREL28",
"BFD_RELOC_PPC_TLS",
"BFD_RELOC_PPC_TLSGD",
"BFD_RELOC_PPC_TLSLD",
"BFD_RELOC_PPC_GOT_DTPREL16_HA",
"BFD_RELOC_PPC64_TPREL16_DS",
"BFD_RELOC_PPC64_TPREL16_LO_DS",
+ "BFD_RELOC_PPC64_TPREL16_HIGH",
+ "BFD_RELOC_PPC64_TPREL16_HIGHA",
"BFD_RELOC_PPC64_TPREL16_HIGHER",
"BFD_RELOC_PPC64_TPREL16_HIGHERA",
"BFD_RELOC_PPC64_TPREL16_HIGHEST",
"BFD_RELOC_PPC64_TPREL16_HIGHESTA",
"BFD_RELOC_PPC64_DTPREL16_DS",
"BFD_RELOC_PPC64_DTPREL16_LO_DS",
+ "BFD_RELOC_PPC64_DTPREL16_HIGH",
+ "BFD_RELOC_PPC64_DTPREL16_HIGHA",
"BFD_RELOC_PPC64_DTPREL16_HIGHER",
"BFD_RELOC_PPC64_DTPREL16_HIGHERA",
"BFD_RELOC_PPC64_DTPREL16_HIGHEST",
"BFD_RELOC_PPC64_DTPREL16_HIGHESTA",
- "BFD_RELOC_PPC64_TPREL16_HIGH",
- "BFD_RELOC_PPC64_TPREL16_HIGHA",
- "BFD_RELOC_PPC64_DTPREL16_HIGH",
- "BFD_RELOC_PPC64_DTPREL16_HIGHA",
+ "BFD_RELOC_PPC64_TPREL34",
+ "BFD_RELOC_PPC64_DTPREL34",
+ "BFD_RELOC_PPC64_GOT_TLSGD34",
+ "BFD_RELOC_PPC64_GOT_TLSLD34",
+ "BFD_RELOC_PPC64_GOT_TPREL34",
+ "BFD_RELOC_PPC64_GOT_DTPREL34",
+ "BFD_RELOC_PPC64_TLS_PCREL",
"BFD_RELOC_I370_D12",
"BFD_RELOC_CTOR",
"BFD_RELOC_ARM_PCREL_BRANCH",
"BFD_RELOC_THUMB_PCREL_BLX",
"BFD_RELOC_ARM_PCREL_CALL",
"BFD_RELOC_ARM_PCREL_JUMP",
+ "BFD_RELOC_THUMB_PCREL_BRANCH5",
+ "BFD_RELOC_THUMB_PCREL_BFCSEL",
+ "BFD_RELOC_ARM_THUMB_BF17",
+ "BFD_RELOC_ARM_THUMB_BF13",
+ "BFD_RELOC_ARM_THUMB_BF19",
+ "BFD_RELOC_ARM_THUMB_LOOP12",
"BFD_RELOC_THUMB_PCREL_BRANCH7",
"BFD_RELOC_THUMB_PCREL_BRANCH9",
"BFD_RELOC_THUMB_PCREL_BRANCH12",
"BFD_RELOC_ARM_CP_OFF_IMM_S2",
"BFD_RELOC_ARM_T32_CP_OFF_IMM",
"BFD_RELOC_ARM_T32_CP_OFF_IMM_S2",
+ "BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM",
"BFD_RELOC_ARM_ADR_IMM",
"BFD_RELOC_ARM_LDR_IMM",
"BFD_RELOC_ARM_LITERAL",
"BFD_RELOC_NDS32_17IFC_PCREL",
"BFD_RELOC_NDS32_10IFCU_PCREL",
"BFD_RELOC_NDS32_TPOFF",
+ "BFD_RELOC_NDS32_GOTTPOFF",
"BFD_RELOC_NDS32_TLS_LE_HI20",
"BFD_RELOC_NDS32_TLS_LE_LO12",
- "BFD_RELOC_NDS32_TLS_LE_ADD",
- "BFD_RELOC_NDS32_TLS_LE_LS",
- "BFD_RELOC_NDS32_GOTTPOFF",
- "BFD_RELOC_NDS32_TLS_IE_HI20",
- "BFD_RELOC_NDS32_TLS_IE_LO12S2",
- "BFD_RELOC_NDS32_TLS_TPOFF",
"BFD_RELOC_NDS32_TLS_LE_20",
"BFD_RELOC_NDS32_TLS_LE_15S0",
"BFD_RELOC_NDS32_TLS_LE_15S1",
"BFD_RELOC_NDS32_TLS_LE_15S2",
+ "BFD_RELOC_NDS32_TLS_LE_ADD",
+ "BFD_RELOC_NDS32_TLS_LE_LS",
+ "BFD_RELOC_NDS32_TLS_IE_HI20",
+ "BFD_RELOC_NDS32_TLS_IE_LO12",
+ "BFD_RELOC_NDS32_TLS_IE_LO12S2",
+ "BFD_RELOC_NDS32_TLS_IEGP_HI20",
+ "BFD_RELOC_NDS32_TLS_IEGP_LO12",
+ "BFD_RELOC_NDS32_TLS_IEGP_LO12S2",
+ "BFD_RELOC_NDS32_TLS_IEGP_LW",
+ "BFD_RELOC_NDS32_TLS_DESC",
+ "BFD_RELOC_NDS32_TLS_DESC_HI20",
+ "BFD_RELOC_NDS32_TLS_DESC_LO12",
+ "BFD_RELOC_NDS32_TLS_DESC_20",
+ "BFD_RELOC_NDS32_TLS_DESC_SDA17S2",
+ "BFD_RELOC_NDS32_TLS_DESC_ADD",
+ "BFD_RELOC_NDS32_TLS_DESC_FUNC",
+ "BFD_RELOC_NDS32_TLS_DESC_CALL",
+ "BFD_RELOC_NDS32_TLS_DESC_MEM",
+ "BFD_RELOC_NDS32_REMOVE",
+ "BFD_RELOC_NDS32_GROUP",
+ "BFD_RELOC_NDS32_LSI",
"BFD_RELOC_V850_9_PCREL",
"BFD_RELOC_V850_22_PCREL",
"BFD_RELOC_V850_SDA_16_16_OFFSET",
"BFD_RELOC_M68HC12_LO8XG",
"BFD_RELOC_M68HC12_HI8XG",
"BFD_RELOC_S12Z_15_PCREL",
- "BFD_RELOC_16C_NUM08",
- "BFD_RELOC_16C_NUM08_C",
- "BFD_RELOC_16C_NUM16",
- "BFD_RELOC_16C_NUM16_C",
- "BFD_RELOC_16C_NUM32",
- "BFD_RELOC_16C_NUM32_C",
- "BFD_RELOC_16C_DISP04",
- "BFD_RELOC_16C_DISP04_C",
- "BFD_RELOC_16C_DISP08",
- "BFD_RELOC_16C_DISP08_C",
- "BFD_RELOC_16C_DISP16",
- "BFD_RELOC_16C_DISP16_C",
- "BFD_RELOC_16C_DISP24",
- "BFD_RELOC_16C_DISP24_C",
- "BFD_RELOC_16C_DISP24a",
- "BFD_RELOC_16C_DISP24a_C",
- "BFD_RELOC_16C_REG04",
- "BFD_RELOC_16C_REG04_C",
- "BFD_RELOC_16C_REG04a",
- "BFD_RELOC_16C_REG04a_C",
- "BFD_RELOC_16C_REG14",
- "BFD_RELOC_16C_REG14_C",
- "BFD_RELOC_16C_REG16",
- "BFD_RELOC_16C_REG16_C",
- "BFD_RELOC_16C_REG20",
- "BFD_RELOC_16C_REG20_C",
- "BFD_RELOC_16C_ABS20",
- "BFD_RELOC_16C_ABS20_C",
- "BFD_RELOC_16C_ABS24",
- "BFD_RELOC_16C_ABS24_C",
- "BFD_RELOC_16C_IMM04",
- "BFD_RELOC_16C_IMM04_C",
- "BFD_RELOC_16C_IMM16",
- "BFD_RELOC_16C_IMM16_C",
- "BFD_RELOC_16C_IMM20",
- "BFD_RELOC_16C_IMM20_C",
- "BFD_RELOC_16C_IMM24",
- "BFD_RELOC_16C_IMM24_C",
- "BFD_RELOC_16C_IMM32",
- "BFD_RELOC_16C_IMM32_C",
"BFD_RELOC_CR16_NUM8",
"BFD_RELOC_CR16_NUM16",
"BFD_RELOC_CR16_NUM32",
"BFD_RELOC_CRIS_DTPMOD",
"BFD_RELOC_CRIS_32_IE",
"BFD_RELOC_OR1K_REL_26",
+ "BFD_RELOC_OR1K_SLO16",
+ "BFD_RELOC_OR1K_PCREL_PG21",
+ "BFD_RELOC_OR1K_LO13",
+ "BFD_RELOC_OR1K_SLO13",
"BFD_RELOC_OR1K_GOTPC_HI16",
"BFD_RELOC_OR1K_GOTPC_LO16",
"BFD_RELOC_OR1K_GOT16",
+ "BFD_RELOC_OR1K_GOT_PG21",
+ "BFD_RELOC_OR1K_GOT_LO13",
"BFD_RELOC_OR1K_PLT26",
- "BFD_RELOC_OR1K_GOTOFF_HI16",
- "BFD_RELOC_OR1K_GOTOFF_LO16",
+ "BFD_RELOC_OR1K_PLTA26",
+ "BFD_RELOC_OR1K_GOTOFF_SLO16",
"BFD_RELOC_OR1K_COPY",
"BFD_RELOC_OR1K_GLOB_DAT",
"BFD_RELOC_OR1K_JMP_SLOT",
"BFD_RELOC_OR1K_RELATIVE",
"BFD_RELOC_OR1K_TLS_GD_HI16",
"BFD_RELOC_OR1K_TLS_GD_LO16",
+ "BFD_RELOC_OR1K_TLS_GD_PG21",
+ "BFD_RELOC_OR1K_TLS_GD_LO13",
"BFD_RELOC_OR1K_TLS_LDM_HI16",
"BFD_RELOC_OR1K_TLS_LDM_LO16",
+ "BFD_RELOC_OR1K_TLS_LDM_PG21",
+ "BFD_RELOC_OR1K_TLS_LDM_LO13",
"BFD_RELOC_OR1K_TLS_LDO_HI16",
"BFD_RELOC_OR1K_TLS_LDO_LO16",
"BFD_RELOC_OR1K_TLS_IE_HI16",
+ "BFD_RELOC_OR1K_TLS_IE_AHI16",
"BFD_RELOC_OR1K_TLS_IE_LO16",
+ "BFD_RELOC_OR1K_TLS_IE_PG21",
+ "BFD_RELOC_OR1K_TLS_IE_LO13",
"BFD_RELOC_OR1K_TLS_LE_HI16",
+ "BFD_RELOC_OR1K_TLS_LE_AHI16",
"BFD_RELOC_OR1K_TLS_LE_LO16",
+ "BFD_RELOC_OR1K_TLS_LE_SLO16",
"BFD_RELOC_OR1K_TLS_TPOFF",
"BFD_RELOC_OR1K_TLS_DTPOFF",
"BFD_RELOC_OR1K_TLS_DTPMOD",
"BFD_RELOC_MACH_O_X86_64_PCREL32_1",
"BFD_RELOC_MACH_O_X86_64_PCREL32_2",
"BFD_RELOC_MACH_O_X86_64_PCREL32_4",
+ "BFD_RELOC_MACH_O_X86_64_TLV",
"BFD_RELOC_MACH_O_ARM64_ADDEND",
"BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21",
"BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12",
"BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD",
"BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD",
"BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD",
+ "BFD_RELOC_BPF_64",
+ "BFD_RELOC_BPF_32",
+ "BFD_RELOC_BPF_16",
+ "BFD_RELOC_BPF_DISP16",
+ "BFD_RELOC_BPF_DISP32",
"BFD_RELOC_EPIPHANY_SIMM8",
"BFD_RELOC_EPIPHANY_SIMM24",
"BFD_RELOC_EPIPHANY_HIGH",
"BFD_RELOC_WASM32_CODE_POINTER",
"BFD_RELOC_WASM32_INDEX",
"BFD_RELOC_WASM32_PLT_SIG",
+ "BFD_RELOC_CKCORE_NONE",
+ "BFD_RELOC_CKCORE_ADDR32",
+ "BFD_RELOC_CKCORE_PCREL_IMM8BY4",
+ "BFD_RELOC_CKCORE_PCREL_IMM11BY2",
+ "BFD_RELOC_CKCORE_PCREL_IMM4BY2",
+ "BFD_RELOC_CKCORE_PCREL32",
+ "BFD_RELOC_CKCORE_PCREL_JSR_IMM11BY2",
+ "BFD_RELOC_CKCORE_GNU_VTINHERIT",
+ "BFD_RELOC_CKCORE_GNU_VTENTRY",
+ "BFD_RELOC_CKCORE_RELATIVE",
+ "BFD_RELOC_CKCORE_COPY",
+ "BFD_RELOC_CKCORE_GLOB_DAT",
+ "BFD_RELOC_CKCORE_JUMP_SLOT",
+ "BFD_RELOC_CKCORE_GOTOFF",
+ "BFD_RELOC_CKCORE_GOTPC",
+ "BFD_RELOC_CKCORE_GOT32",
+ "BFD_RELOC_CKCORE_PLT32",
+ "BFD_RELOC_CKCORE_ADDRGOT",
+ "BFD_RELOC_CKCORE_ADDRPLT",
+ "BFD_RELOC_CKCORE_PCREL_IMM26BY2",
+ "BFD_RELOC_CKCORE_PCREL_IMM16BY2",
+ "BFD_RELOC_CKCORE_PCREL_IMM16BY4",
+ "BFD_RELOC_CKCORE_PCREL_IMM10BY2",
+ "BFD_RELOC_CKCORE_PCREL_IMM10BY4",
+ "BFD_RELOC_CKCORE_ADDR_HI16",
+ "BFD_RELOC_CKCORE_ADDR_LO16",
+ "BFD_RELOC_CKCORE_GOTPC_HI16",
+ "BFD_RELOC_CKCORE_GOTPC_LO16",
+ "BFD_RELOC_CKCORE_GOTOFF_HI16",
+ "BFD_RELOC_CKCORE_GOTOFF_LO16",
+ "BFD_RELOC_CKCORE_GOT12",
+ "BFD_RELOC_CKCORE_GOT_HI16",
+ "BFD_RELOC_CKCORE_GOT_LO16",
+ "BFD_RELOC_CKCORE_PLT12",
+ "BFD_RELOC_CKCORE_PLT_HI16",
+ "BFD_RELOC_CKCORE_PLT_LO16",
+ "BFD_RELOC_CKCORE_ADDRGOT_HI16",
+ "BFD_RELOC_CKCORE_ADDRGOT_LO16",
+ "BFD_RELOC_CKCORE_ADDRPLT_HI16",
+ "BFD_RELOC_CKCORE_ADDRPLT_LO16",
+ "BFD_RELOC_CKCORE_PCREL_JSR_IMM26BY2",
+ "BFD_RELOC_CKCORE_TOFFSET_LO16",
+ "BFD_RELOC_CKCORE_DOFFSET_LO16",
+ "BFD_RELOC_CKCORE_PCREL_IMM18BY2",
+ "BFD_RELOC_CKCORE_DOFFSET_IMM18",
+ "BFD_RELOC_CKCORE_DOFFSET_IMM18BY2",
+ "BFD_RELOC_CKCORE_DOFFSET_IMM18BY4",
+ "BFD_RELOC_CKCORE_GOTOFF_IMM18",
+ "BFD_RELOC_CKCORE_GOT_IMM18BY4",
+ "BFD_RELOC_CKCORE_PLT_IMM18BY4",
+ "BFD_RELOC_CKCORE_PCREL_IMM7BY4",
+ "BFD_RELOC_CKCORE_TLS_LE32",
+ "BFD_RELOC_CKCORE_TLS_IE32",
+ "BFD_RELOC_CKCORE_TLS_GD32",
+ "BFD_RELOC_CKCORE_TLS_LDM32",
+ "BFD_RELOC_CKCORE_TLS_LDO32",
+ "BFD_RELOC_CKCORE_TLS_DTPMOD32",
+ "BFD_RELOC_CKCORE_TLS_DTPOFF32",
+ "BFD_RELOC_CKCORE_TLS_TPOFF32",
+ "BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4",
+ "BFD_RELOC_CKCORE_NOJSRI",
+ "BFD_RELOC_CKCORE_CALLGRAPH",
+ "BFD_RELOC_CKCORE_IRELATIVE",
+ "BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4",
+ "BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4",
+ "BFD_RELOC_S12Z_OPR",
"@@overflow: BFD_RELOC_UNUSED@@",
};
#endif