X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Flibbfd.h;h=44cefbd66d46de79b2358ee3a9d52ad698df4050;hb=378fd436405b3051df34ac995b2e03fe1f3d1907;hp=85f61b2ae2094a994a78d827f46cf8b5a8269e5a;hpb=ed1299fe460812ad4bbdc2192d0c0cbeba3d6b66;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 85f61b2ae2..44cefbd66d 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -6,7 +6,7 @@ /* 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. @@ -128,6 +128,15 @@ extern void *bfd_realloc2 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 @@ -282,6 +291,7 @@ extern int bfd_generic_stat_arch_elt #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; @@ -518,6 +528,8 @@ extern bfd_boolean _bfd_nolink_bfd_lookup_section_flags #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 @@ -589,10 +601,10 @@ struct dwarf_debug_section 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 @@ -701,8 +713,8 @@ extern bfd_reloc_status_type _bfd_relocate_contents (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. */ @@ -1466,8 +1478,32 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "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", @@ -1500,20 +1536,27 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "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", @@ -1521,6 +1564,12 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "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", @@ -1620,6 +1669,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "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", @@ -1994,18 +2044,34 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "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", @@ -2513,46 +2579,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "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", @@ -2640,26 +2666,41 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "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", @@ -3192,6 +3233,11 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "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", @@ -3216,6 +3262,72 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "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