| This is bfd.info, produced by makeinfo version 4.1 from bfd.texinfo. |
| |
| START-INFO-DIR-ENTRY |
| * Bfd: (bfd). The Binary File Descriptor library. |
| END-INFO-DIR-ENTRY |
| |
| This file documents the BFD library. |
| |
| Copyright (C) 1991, 2000, 2001 Free Software Foundation, Inc. |
| |
| Permission is granted to copy, distribute and/or modify this document |
| under the terms of the GNU Free Documentation License, Version 1.1 |
| or any later version published by the Free Software Foundation; |
| with no Invariant Sections, with no Front-Cover Texts, and with no |
| Back-Cover Texts. A copy of the license is included in the |
| section entitled "GNU Free Documentation License". |
| |
| |
| File: bfd.info, Node: howto manager, Prev: typedef arelent, Up: Relocations |
| |
| The howto manager |
| ================= |
| |
| When an application wants to create a relocation, but doesn't know |
| what the target machine might call it, it can find out by using this |
| bit of code. |
| |
| `bfd_reloc_code_type' |
| ..................... |
| |
| *Description* |
| The insides of a reloc code. The idea is that, eventually, there will |
| be one enumerator for every type of relocation we ever do. Pass one of |
| these values to `bfd_reloc_type_lookup', and it'll return a howto |
| pointer. |
| |
| This does mean that the application must determine the correct |
| enumerator value; you can't get a howto pointer from a random set of |
| attributes. |
| |
| Here are the possible values for `enum bfd_reloc_code_real': |
| |
| - : BFD_RELOC_64 |
| - : BFD_RELOC_32 |
| - : BFD_RELOC_26 |
| - : BFD_RELOC_24 |
| - : BFD_RELOC_16 |
| - : BFD_RELOC_14 |
| - : BFD_RELOC_8 |
| Basic absolute relocations of N bits. |
| |
| - : BFD_RELOC_64_PCREL |
| - : BFD_RELOC_32_PCREL |
| - : BFD_RELOC_24_PCREL |
| - : BFD_RELOC_16_PCREL |
| - : BFD_RELOC_12_PCREL |
| - : BFD_RELOC_8_PCREL |
| PC-relative relocations. Sometimes these are relative to the |
| address of the relocation itself; sometimes they are relative to |
| the start of the section containing the relocation. It depends on |
| the specific target. |
| |
| The 24-bit relocation is used in some Intel 960 configurations. |
| |
| - : BFD_RELOC_32_GOT_PCREL |
| - : BFD_RELOC_16_GOT_PCREL |
| - : BFD_RELOC_8_GOT_PCREL |
| - : BFD_RELOC_32_GOTOFF |
| - : BFD_RELOC_16_GOTOFF |
| - : BFD_RELOC_LO16_GOTOFF |
| - : BFD_RELOC_HI16_GOTOFF |
| - : BFD_RELOC_HI16_S_GOTOFF |
| - : BFD_RELOC_8_GOTOFF |
| - : BFD_RELOC_64_PLT_PCREL |
| - : BFD_RELOC_32_PLT_PCREL |
| - : BFD_RELOC_24_PLT_PCREL |
| - : BFD_RELOC_16_PLT_PCREL |
| - : BFD_RELOC_8_PLT_PCREL |
| - : BFD_RELOC_64_PLTOFF |
| - : BFD_RELOC_32_PLTOFF |
| - : BFD_RELOC_16_PLTOFF |
| - : BFD_RELOC_LO16_PLTOFF |
| - : BFD_RELOC_HI16_PLTOFF |
| - : BFD_RELOC_HI16_S_PLTOFF |
| - : BFD_RELOC_8_PLTOFF |
| For ELF. |
| |
| - : BFD_RELOC_68K_GLOB_DAT |
| - : BFD_RELOC_68K_JMP_SLOT |
| - : BFD_RELOC_68K_RELATIVE |
| Relocations used by 68K ELF. |
| |
| - : BFD_RELOC_32_BASEREL |
| - : BFD_RELOC_16_BASEREL |
| - : BFD_RELOC_LO16_BASEREL |
| - : BFD_RELOC_HI16_BASEREL |
| - : BFD_RELOC_HI16_S_BASEREL |
| - : BFD_RELOC_8_BASEREL |
| - : BFD_RELOC_RVA |
| Linkage-table relative. |
| |
| - : BFD_RELOC_8_FFnn |
| Absolute 8-bit relocation, but used to form an address like 0xFFnn. |
| |
| - : BFD_RELOC_32_PCREL_S2 |
| - : BFD_RELOC_16_PCREL_S2 |
| - : BFD_RELOC_23_PCREL_S2 |
| These PC-relative relocations are stored as word displacements - |
| i.e., byte displacements shifted right two bits. The 30-bit word |
| displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the |
| SPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The |
| signed 16-bit displacement is used on the MIPS, and the 23-bit |
| displacement is used on the Alpha. |
| |
| - : BFD_RELOC_HI22 |
| - : BFD_RELOC_LO10 |
| High 22 bits and low 10 bits of 32-bit value, placed into lower |
| bits of the target word. These are used on the SPARC. |
| |
| - : BFD_RELOC_GPREL16 |
| - : BFD_RELOC_GPREL32 |
| For systems that allocate a Global Pointer register, these are |
| displacements off that register. These relocation types are |
| handled specially, because the value the register will have is |
| decided relatively late. |
| |
| - : BFD_RELOC_I960_CALLJ |
| Reloc types used for i960/b.out. |
| |
| - : BFD_RELOC_NONE |
| - : BFD_RELOC_SPARC_WDISP22 |
| - : BFD_RELOC_SPARC22 |
| - : BFD_RELOC_SPARC13 |
| - : BFD_RELOC_SPARC_GOT10 |
| - : BFD_RELOC_SPARC_GOT13 |
| - : BFD_RELOC_SPARC_GOT22 |
| - : BFD_RELOC_SPARC_PC10 |
| - : BFD_RELOC_SPARC_PC22 |
| - : BFD_RELOC_SPARC_WPLT30 |
| - : BFD_RELOC_SPARC_COPY |
| - : BFD_RELOC_SPARC_GLOB_DAT |
| - : BFD_RELOC_SPARC_JMP_SLOT |
| - : BFD_RELOC_SPARC_RELATIVE |
| - : BFD_RELOC_SPARC_UA16 |
| - : BFD_RELOC_SPARC_UA32 |
| - : BFD_RELOC_SPARC_UA64 |
| SPARC ELF relocations. There is probably some overlap with other |
| relocation types already defined. |
| |
| - : BFD_RELOC_SPARC_BASE13 |
| - : BFD_RELOC_SPARC_BASE22 |
| I think these are specific to SPARC a.out (e.g., Sun 4). |
| |
| - : BFD_RELOC_SPARC_64 |
| - : BFD_RELOC_SPARC_10 |
| - : BFD_RELOC_SPARC_11 |
| - : BFD_RELOC_SPARC_OLO10 |
| - : BFD_RELOC_SPARC_HH22 |
| - : BFD_RELOC_SPARC_HM10 |
| - : BFD_RELOC_SPARC_LM22 |
| - : BFD_RELOC_SPARC_PC_HH22 |
| - : BFD_RELOC_SPARC_PC_HM10 |
| - : BFD_RELOC_SPARC_PC_LM22 |
| - : BFD_RELOC_SPARC_WDISP16 |
| - : BFD_RELOC_SPARC_WDISP19 |
| - : BFD_RELOC_SPARC_7 |
| - : BFD_RELOC_SPARC_6 |
| - : BFD_RELOC_SPARC_5 |
| - : BFD_RELOC_SPARC_DISP64 |
| - : BFD_RELOC_SPARC_PLT32 |
| - : BFD_RELOC_SPARC_PLT64 |
| - : BFD_RELOC_SPARC_HIX22 |
| - : BFD_RELOC_SPARC_LOX10 |
| - : BFD_RELOC_SPARC_H44 |
| - : BFD_RELOC_SPARC_M44 |
| - : BFD_RELOC_SPARC_L44 |
| - : BFD_RELOC_SPARC_REGISTER |
| SPARC64 relocations |
| |
| - : BFD_RELOC_SPARC_REV32 |
| SPARC little endian relocation |
| |
| - : BFD_RELOC_ALPHA_GPDISP_HI16 |
| Alpha ECOFF and ELF relocations. Some of these treat the symbol or |
| "addend" in some special way. For GPDISP_HI16 ("gpdisp") |
| relocations, the symbol is ignored when writing; when reading, it |
| will be the absolute section symbol. The addend is the |
| displacement in bytes of the "lda" instruction from the "ldah" |
| instruction (which is at the address of this reloc). |
| |
| - : BFD_RELOC_ALPHA_GPDISP_LO16 |
| For GPDISP_LO16 ("ignore") relocations, the symbol is handled as |
| with GPDISP_HI16 relocs. The addend is ignored when writing the |
| relocations out, and is filled in with the file's GP value on |
| reading, for convenience. |
| |
| - : BFD_RELOC_ALPHA_GPDISP |
| The ELF GPDISP relocation is exactly the same as the GPDISP_HI16 |
| relocation except that there is no accompanying GPDISP_LO16 |
| relocation. |
| |
| - : BFD_RELOC_ALPHA_LITERAL |
| - : BFD_RELOC_ALPHA_ELF_LITERAL |
| - : BFD_RELOC_ALPHA_LITUSE |
| The Alpha LITERAL/LITUSE relocs are produced by a symbol reference; |
| the assembler turns it into a LDQ instruction to load the address |
| of the symbol, and then fills in a register in the real |
| instruction. |
| |
| The LITERAL reloc, at the LDQ instruction, refers to the .lita |
| section symbol. The addend is ignored when writing, but is filled |
| in with the file's GP value on reading, for convenience, as with |
| the GPDISP_LO16 reloc. |
| |
| The ELF_LITERAL reloc is somewhere between 16_GOTOFF and |
| GPDISP_LO16. It should refer to the symbol to be referenced, as |
| with 16_GOTOFF, but it generates output not based on the position |
| within the .got section, but relative to the GP value chosen for |
| the file during the final link stage. |
| |
| The LITUSE reloc, on the instruction using the loaded address, |
| gives information to the linker that it might be able to use to |
| optimize away some literal section references. The symbol is |
| ignored (read as the absolute section symbol), and the "addend" |
| indicates the type of instruction using the register: 1 - "memory" |
| fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target |
| of branch) |
| |
| - : BFD_RELOC_ALPHA_HINT |
| The HINT relocation indicates a value that should be filled into |
| the "hint" field of a jmp/jsr/ret instruction, for possible branch- |
| prediction logic which may be provided on some processors. |
| |
| - : BFD_RELOC_ALPHA_LINKAGE |
| The LINKAGE relocation outputs a linkage pair in the object file, |
| which is filled by the linker. |
| |
| - : BFD_RELOC_ALPHA_CODEADDR |
| The CODEADDR relocation outputs a STO_CA in the object file, which |
| is filled by the linker. |
| |
| - : BFD_RELOC_ALPHA_GPREL_HI16 |
| - : BFD_RELOC_ALPHA_GPREL_LO16 |
| The GPREL_HI/LO relocations together form a 32-bit offset from the |
| GP register. |
| |
| - : BFD_RELOC_ALPHA_BRSGP |
| Like BFD_RELOC_23_PCREL_S2, except that the source and target must |
| share a common GP, and the target address is adjusted for |
| STO_ALPHA_STD_GPLOAD. |
| |
| - : BFD_RELOC_MIPS_JMP |
| Bits 27..2 of the relocation address shifted right 2 bits; simple |
| reloc otherwise. |
| |
| - : BFD_RELOC_MIPS16_JMP |
| The MIPS16 jump instruction. |
| |
| - : BFD_RELOC_MIPS16_GPREL |
| MIPS16 GP relative reloc. |
| |
| - : BFD_RELOC_HI16 |
| High 16 bits of 32-bit value; simple reloc. |
| |
| - : BFD_RELOC_HI16_S |
| High 16 bits of 32-bit value but the low 16 bits will be sign |
| extended and added to form the final result. If the low 16 bits |
| form a negative number, we need to add one to the high value to |
| compensate for the borrow when the low bits are added. |
| |
| - : BFD_RELOC_LO16 |
| Low 16 bits. |
| |
| - : BFD_RELOC_PCREL_HI16_S |
| Like BFD_RELOC_HI16_S, but PC relative. |
| |
| - : BFD_RELOC_PCREL_LO16 |
| Like BFD_RELOC_LO16, but PC relative. |
| |
| - : BFD_RELOC_MIPS_LITERAL |
| Relocation against a MIPS literal section. |
| |
| - : BFD_RELOC_MIPS_GOT16 |
| - : BFD_RELOC_MIPS_CALL16 |
| - : BFD_RELOC_MIPS_GOT_HI16 |
| - : BFD_RELOC_MIPS_GOT_LO16 |
| - : BFD_RELOC_MIPS_CALL_HI16 |
| - : BFD_RELOC_MIPS_CALL_LO16 |
| - : BFD_RELOC_MIPS_SUB |
| - : BFD_RELOC_MIPS_GOT_PAGE |
| - : BFD_RELOC_MIPS_GOT_OFST |
| - : BFD_RELOC_MIPS_GOT_DISP |
| - : BFD_RELOC_MIPS_SHIFT5 |
| - : BFD_RELOC_MIPS_SHIFT6 |
| - : BFD_RELOC_MIPS_INSERT_A |
| - : BFD_RELOC_MIPS_INSERT_B |
| - : BFD_RELOC_MIPS_DELETE |
| - : BFD_RELOC_MIPS_HIGHEST |
| - : BFD_RELOC_MIPS_HIGHER |
| - : BFD_RELOC_MIPS_SCN_DISP |
| - : BFD_RELOC_MIPS_REL16 |
| - : BFD_RELOC_MIPS_RELGOT |
| - : BFD_RELOC_MIPS_JALR |
| MIPS ELF relocations. |
| |
| - : BFD_RELOC_386_GOT32 |
| - : BFD_RELOC_386_PLT32 |
| - : BFD_RELOC_386_COPY |
| - : BFD_RELOC_386_GLOB_DAT |
| - : BFD_RELOC_386_JUMP_SLOT |
| - : BFD_RELOC_386_RELATIVE |
| - : BFD_RELOC_386_GOTOFF |
| - : BFD_RELOC_386_GOTPC |
| i386/elf relocations |
| |
| - : BFD_RELOC_X86_64_GOT32 |
| - : BFD_RELOC_X86_64_PLT32 |
| - : BFD_RELOC_X86_64_COPY |
| - : BFD_RELOC_X86_64_GLOB_DAT |
| - : BFD_RELOC_X86_64_JUMP_SLOT |
| - : BFD_RELOC_X86_64_RELATIVE |
| - : BFD_RELOC_X86_64_GOTPCREL |
| - : BFD_RELOC_X86_64_32S |
| x86-64/elf relocations |
| |
| - : BFD_RELOC_NS32K_IMM_8 |
| - : BFD_RELOC_NS32K_IMM_16 |
| - : BFD_RELOC_NS32K_IMM_32 |
| - : BFD_RELOC_NS32K_IMM_8_PCREL |
| - : BFD_RELOC_NS32K_IMM_16_PCREL |
| - : BFD_RELOC_NS32K_IMM_32_PCREL |
| - : BFD_RELOC_NS32K_DISP_8 |
| - : BFD_RELOC_NS32K_DISP_16 |
| - : BFD_RELOC_NS32K_DISP_32 |
| - : BFD_RELOC_NS32K_DISP_8_PCREL |
| - : BFD_RELOC_NS32K_DISP_16_PCREL |
| - : BFD_RELOC_NS32K_DISP_32_PCREL |
| ns32k relocations |
| |
| - : BFD_RELOC_PDP11_DISP_8_PCREL |
| - : BFD_RELOC_PDP11_DISP_6_PCREL |
| PDP11 relocations |
| |
| - : BFD_RELOC_PJ_CODE_HI16 |
| - : BFD_RELOC_PJ_CODE_LO16 |
| - : BFD_RELOC_PJ_CODE_DIR16 |
| - : BFD_RELOC_PJ_CODE_DIR32 |
| - : BFD_RELOC_PJ_CODE_REL16 |
| - : BFD_RELOC_PJ_CODE_REL32 |
| Picojava relocs. Not all of these appear in object files. |
| |
| - : BFD_RELOC_PPC_B26 |
| - : BFD_RELOC_PPC_BA26 |
| - : BFD_RELOC_PPC_TOC16 |
| - : BFD_RELOC_PPC_B16 |
| - : BFD_RELOC_PPC_B16_BRTAKEN |
| - : BFD_RELOC_PPC_B16_BRNTAKEN |
| - : BFD_RELOC_PPC_BA16 |
| - : BFD_RELOC_PPC_BA16_BRTAKEN |
| - : BFD_RELOC_PPC_BA16_BRNTAKEN |
| - : BFD_RELOC_PPC_COPY |
| - : BFD_RELOC_PPC_GLOB_DAT |
| - : BFD_RELOC_PPC_JMP_SLOT |
| - : BFD_RELOC_PPC_RELATIVE |
| - : BFD_RELOC_PPC_LOCAL24PC |
| - : BFD_RELOC_PPC_EMB_NADDR32 |
| - : BFD_RELOC_PPC_EMB_NADDR16 |
| - : BFD_RELOC_PPC_EMB_NADDR16_LO |
| - : BFD_RELOC_PPC_EMB_NADDR16_HI |
| - : BFD_RELOC_PPC_EMB_NADDR16_HA |
| - : BFD_RELOC_PPC_EMB_SDAI16 |
| - : BFD_RELOC_PPC_EMB_SDA2I16 |
| - : BFD_RELOC_PPC_EMB_SDA2REL |
| - : BFD_RELOC_PPC_EMB_SDA21 |
| - : BFD_RELOC_PPC_EMB_MRKREF |
| - : BFD_RELOC_PPC_EMB_RELSEC16 |
| - : BFD_RELOC_PPC_EMB_RELST_LO |
| - : BFD_RELOC_PPC_EMB_RELST_HI |
| - : BFD_RELOC_PPC_EMB_RELST_HA |
| - : BFD_RELOC_PPC_EMB_BIT_FLD |
| - : BFD_RELOC_PPC_EMB_RELSDA |
| - : BFD_RELOC_PPC64_HIGHER |
| - : BFD_RELOC_PPC64_HIGHER_S |
| - : BFD_RELOC_PPC64_HIGHEST |
| - : BFD_RELOC_PPC64_HIGHEST_S |
| - : BFD_RELOC_PPC64_TOC16_LO |
| - : BFD_RELOC_PPC64_TOC16_HI |
| - : BFD_RELOC_PPC64_TOC16_HA |
| - : BFD_RELOC_PPC64_TOC |
| - : BFD_RELOC_PPC64_PLTGOT16 |
| - : BFD_RELOC_PPC64_PLTGOT16_LO |
| - : BFD_RELOC_PPC64_PLTGOT16_HI |
| - : BFD_RELOC_PPC64_PLTGOT16_HA |
| - : BFD_RELOC_PPC64_ADDR16_DS |
| - : BFD_RELOC_PPC64_ADDR16_LO_DS |
| - : BFD_RELOC_PPC64_GOT16_DS |
| - : BFD_RELOC_PPC64_GOT16_LO_DS |
| - : BFD_RELOC_PPC64_PLT16_LO_DS |
| - : BFD_RELOC_PPC64_SECTOFF_DS |
| - : BFD_RELOC_PPC64_SECTOFF_LO_DS |
| - : BFD_RELOC_PPC64_TOC16_DS |
| - : BFD_RELOC_PPC64_TOC16_LO_DS |
| - : BFD_RELOC_PPC64_PLTGOT16_DS |
| - : BFD_RELOC_PPC64_PLTGOT16_LO_DS |
| Power(rs6000) and PowerPC relocations. |
| |
| - : BFD_RELOC_I370_D12 |
| IBM 370/390 relocations |
| |
| - : BFD_RELOC_CTOR |
| The type of reloc used to build a contructor table - at the moment |
| probably a 32 bit wide absolute relocation, but the target can |
| choose. It generally does map to one of the other relocation |
| types. |
| |
| - : BFD_RELOC_ARM_PCREL_BRANCH |
| ARM 26 bit pc-relative branch. The lowest two bits must be zero |
| and are not stored in the instruction. |
| |
| - : BFD_RELOC_ARM_PCREL_BLX |
| ARM 26 bit pc-relative branch. The lowest bit must be zero and is |
| not stored in the instruction. The 2nd lowest bit comes from a 1 |
| bit field in the instruction. |
| |
| - : BFD_RELOC_THUMB_PCREL_BLX |
| Thumb 22 bit pc-relative branch. The lowest bit must be zero and |
| is not stored in the instruction. The 2nd lowest bit comes from a |
| 1 bit field in the instruction. |
| |
| - : BFD_RELOC_ARM_IMMEDIATE |
| - : BFD_RELOC_ARM_ADRL_IMMEDIATE |
| - : BFD_RELOC_ARM_OFFSET_IMM |
| - : BFD_RELOC_ARM_SHIFT_IMM |
| - : BFD_RELOC_ARM_SWI |
| - : BFD_RELOC_ARM_MULTI |
| - : BFD_RELOC_ARM_CP_OFF_IMM |
| - : BFD_RELOC_ARM_ADR_IMM |
| - : BFD_RELOC_ARM_LDR_IMM |
| - : BFD_RELOC_ARM_LITERAL |
| - : BFD_RELOC_ARM_IN_POOL |
| - : BFD_RELOC_ARM_OFFSET_IMM8 |
| - : BFD_RELOC_ARM_HWLITERAL |
| - : BFD_RELOC_ARM_THUMB_ADD |
| - : BFD_RELOC_ARM_THUMB_IMM |
| - : BFD_RELOC_ARM_THUMB_SHIFT |
| - : BFD_RELOC_ARM_THUMB_OFFSET |
| - : BFD_RELOC_ARM_GOT12 |
| - : BFD_RELOC_ARM_GOT32 |
| - : BFD_RELOC_ARM_JUMP_SLOT |
| - : BFD_RELOC_ARM_COPY |
| - : BFD_RELOC_ARM_GLOB_DAT |
| - : BFD_RELOC_ARM_PLT32 |
| - : BFD_RELOC_ARM_RELATIVE |
| - : BFD_RELOC_ARM_GOTOFF |
| - : BFD_RELOC_ARM_GOTPC |
| These relocs are only used within the ARM assembler. They are not |
| (at present) written to any object files. |
| |
| - : BFD_RELOC_SH_PCDISP8BY2 |
| - : BFD_RELOC_SH_PCDISP12BY2 |
| - : BFD_RELOC_SH_IMM4 |
| - : BFD_RELOC_SH_IMM4BY2 |
| - : BFD_RELOC_SH_IMM4BY4 |
| - : BFD_RELOC_SH_IMM8 |
| - : BFD_RELOC_SH_IMM8BY2 |
| - : BFD_RELOC_SH_IMM8BY4 |
| - : BFD_RELOC_SH_PCRELIMM8BY2 |
| - : BFD_RELOC_SH_PCRELIMM8BY4 |
| - : BFD_RELOC_SH_SWITCH16 |
| - : BFD_RELOC_SH_SWITCH32 |
| - : BFD_RELOC_SH_USES |
| - : BFD_RELOC_SH_COUNT |
| - : BFD_RELOC_SH_ALIGN |
| - : BFD_RELOC_SH_CODE |
| - : BFD_RELOC_SH_DATA |
| - : BFD_RELOC_SH_LABEL |
| - : BFD_RELOC_SH_LOOP_START |
| - : BFD_RELOC_SH_LOOP_END |
| - : BFD_RELOC_SH_COPY |
| - : BFD_RELOC_SH_GLOB_DAT |
| - : BFD_RELOC_SH_JMP_SLOT |
| - : BFD_RELOC_SH_RELATIVE |
| - : BFD_RELOC_SH_GOTPC |
| - : BFD_RELOC_SH_GOT_LOW16 |
| - : BFD_RELOC_SH_GOT_MEDLOW16 |
| - : BFD_RELOC_SH_GOT_MEDHI16 |
| - : BFD_RELOC_SH_GOT_HI16 |
| - : BFD_RELOC_SH_GOTPLT_LOW16 |
| - : BFD_RELOC_SH_GOTPLT_MEDLOW16 |
| - : BFD_RELOC_SH_GOTPLT_MEDHI16 |
| - : BFD_RELOC_SH_GOTPLT_HI16 |
| - : BFD_RELOC_SH_PLT_LOW16 |
| - : BFD_RELOC_SH_PLT_MEDLOW16 |
| - : BFD_RELOC_SH_PLT_MEDHI16 |
| - : BFD_RELOC_SH_PLT_HI16 |
| - : BFD_RELOC_SH_GOTOFF_LOW16 |
| - : BFD_RELOC_SH_GOTOFF_MEDLOW16 |
| - : BFD_RELOC_SH_GOTOFF_MEDHI16 |
| - : BFD_RELOC_SH_GOTOFF_HI16 |
| - : BFD_RELOC_SH_GOTPC_LOW16 |
| - : BFD_RELOC_SH_GOTPC_MEDLOW16 |
| - : BFD_RELOC_SH_GOTPC_MEDHI16 |
| - : BFD_RELOC_SH_GOTPC_HI16 |
| - : BFD_RELOC_SH_COPY64 |
| - : BFD_RELOC_SH_GLOB_DAT64 |
| - : BFD_RELOC_SH_JMP_SLOT64 |
| - : BFD_RELOC_SH_RELATIVE64 |
| - : BFD_RELOC_SH_GOT10BY4 |
| - : BFD_RELOC_SH_GOT10BY8 |
| - : BFD_RELOC_SH_GOTPLT10BY4 |
| - : BFD_RELOC_SH_GOTPLT10BY8 |
| - : BFD_RELOC_SH_GOTPLT32 |
| - : BFD_RELOC_SH_SHMEDIA_CODE |
| - : BFD_RELOC_SH_IMMU5 |
| - : BFD_RELOC_SH_IMMS6 |
| - : BFD_RELOC_SH_IMMS6BY32 |
| - : BFD_RELOC_SH_IMMU6 |
| - : BFD_RELOC_SH_IMMS10 |
| - : BFD_RELOC_SH_IMMS10BY2 |
| - : BFD_RELOC_SH_IMMS10BY4 |
| - : BFD_RELOC_SH_IMMS10BY8 |
| - : BFD_RELOC_SH_IMMS16 |
| - : BFD_RELOC_SH_IMMU16 |
| - : BFD_RELOC_SH_IMM_LOW16 |
| - : BFD_RELOC_SH_IMM_LOW16_PCREL |
| - : BFD_RELOC_SH_IMM_MEDLOW16 |
| - : BFD_RELOC_SH_IMM_MEDLOW16_PCREL |
| - : BFD_RELOC_SH_IMM_MEDHI16 |
| - : BFD_RELOC_SH_IMM_MEDHI16_PCREL |
| - : BFD_RELOC_SH_IMM_HI16 |
| - : BFD_RELOC_SH_IMM_HI16_PCREL |
| - : BFD_RELOC_SH_PT_16 |
| Hitachi SH relocs. Not all of these appear in object files. |
| |
| - : BFD_RELOC_THUMB_PCREL_BRANCH9 |
| - : BFD_RELOC_THUMB_PCREL_BRANCH12 |
| - : BFD_RELOC_THUMB_PCREL_BRANCH23 |
| Thumb 23-, 12- and 9-bit pc-relative branches. The lowest bit must |
| be zero and is not stored in the instruction. |
| |
| - : BFD_RELOC_ARC_B22_PCREL |
| ARC Cores relocs. ARC 22 bit pc-relative branch. The lowest two |
| bits must be zero and are not stored in the instruction. The high |
| 20 bits are installed in bits 26 through 7 of the instruction. |
| |
| - : BFD_RELOC_ARC_B26 |
| ARC 26 bit absolute branch. The lowest two bits must be zero and |
| are not stored in the instruction. The high 24 bits are installed |
| in bits 23 through 0. |
| |
| - : BFD_RELOC_D10V_10_PCREL_R |
| Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 |
| bits assumed to be 0. |
| |
| - : BFD_RELOC_D10V_10_PCREL_L |
| Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 |
| bits assumed to be 0. This is the same as the previous reloc |
| except it is in the left container, i.e., shifted left 15 bits. |
| |
| - : BFD_RELOC_D10V_18 |
| This is an 18-bit reloc with the right 2 bits assumed to be 0. |
| |
| - : BFD_RELOC_D10V_18_PCREL |
| This is an 18-bit reloc with the right 2 bits assumed to be 0. |
| |
| - : BFD_RELOC_D30V_6 |
| Mitsubishi D30V relocs. This is a 6-bit absolute reloc. |
| |
| - : BFD_RELOC_D30V_9_PCREL |
| This is a 6-bit pc-relative reloc with the right 3 bits assumed to |
| be 0. |
| |
| - : BFD_RELOC_D30V_9_PCREL_R |
| This is a 6-bit pc-relative reloc with the right 3 bits assumed to |
| be 0. Same as the previous reloc but on the right side of the |
| container. |
| |
| - : BFD_RELOC_D30V_15 |
| This is a 12-bit absolute reloc with the right 3 bitsassumed to be |
| 0. |
| |
| - : BFD_RELOC_D30V_15_PCREL |
| This is a 12-bit pc-relative reloc with the right 3 bits assumed |
| to be 0. |
| |
| - : BFD_RELOC_D30V_15_PCREL_R |
| This is a 12-bit pc-relative reloc with the right 3 bits assumed |
| to be 0. Same as the previous reloc but on the right side of the |
| container. |
| |
| - : BFD_RELOC_D30V_21 |
| This is an 18-bit absolute reloc with the right 3 bits assumed to |
| be 0. |
| |
| - : BFD_RELOC_D30V_21_PCREL |
| This is an 18-bit pc-relative reloc with the right 3 bits assumed |
| to be 0. |
| |
| - : BFD_RELOC_D30V_21_PCREL_R |
| This is an 18-bit pc-relative reloc with the right 3 bits assumed |
| to be 0. Same as the previous reloc but on the right side of the |
| container. |
| |
| - : BFD_RELOC_D30V_32 |
| This is a 32-bit absolute reloc. |
| |
| - : BFD_RELOC_D30V_32_PCREL |
| This is a 32-bit pc-relative reloc. |
| |
| - : BFD_RELOC_M32R_24 |
| Mitsubishi M32R relocs. This is a 24 bit absolute address. |
| |
| - : BFD_RELOC_M32R_10_PCREL |
| This is a 10-bit pc-relative reloc with the right 2 bits assumed |
| to be 0. |
| |
| - : BFD_RELOC_M32R_18_PCREL |
| This is an 18-bit reloc with the right 2 bits assumed to be 0. |
| |
| - : BFD_RELOC_M32R_26_PCREL |
| This is a 26-bit reloc with the right 2 bits assumed to be 0. |
| |
| - : BFD_RELOC_M32R_HI16_ULO |
| This is a 16-bit reloc containing the high 16 bits of an address |
| used when the lower 16 bits are treated as unsigned. |
| |
| - : BFD_RELOC_M32R_HI16_SLO |
| This is a 16-bit reloc containing the high 16 bits of an address |
| used when the lower 16 bits are treated as signed. |
| |
| - : BFD_RELOC_M32R_LO16 |
| This is a 16-bit reloc containing the lower 16 bits of an address. |
| |
| - : BFD_RELOC_M32R_SDA16 |
| This is a 16-bit reloc containing the small data area offset for |
| use in add3, load, and store instructions. |
| |
| - : BFD_RELOC_V850_9_PCREL |
| This is a 9-bit reloc |
| |
| - : BFD_RELOC_V850_22_PCREL |
| This is a 22-bit reloc |
| |
| - : BFD_RELOC_V850_SDA_16_16_OFFSET |
| This is a 16 bit offset from the short data area pointer. |
| |
| - : BFD_RELOC_V850_SDA_15_16_OFFSET |
| This is a 16 bit offset (of which only 15 bits are used) from the |
| short data area pointer. |
| |
| - : BFD_RELOC_V850_ZDA_16_16_OFFSET |
| This is a 16 bit offset from the zero data area pointer. |
| |
| - : BFD_RELOC_V850_ZDA_15_16_OFFSET |
| This is a 16 bit offset (of which only 15 bits are used) from the |
| zero data area pointer. |
| |
| - : BFD_RELOC_V850_TDA_6_8_OFFSET |
| This is an 8 bit offset (of which only 6 bits are used) from the |
| tiny data area pointer. |
| |
| - : BFD_RELOC_V850_TDA_7_8_OFFSET |
| This is an 8bit offset (of which only 7 bits are used) from the |
| tiny data area pointer. |
| |
| - : BFD_RELOC_V850_TDA_7_7_OFFSET |
| This is a 7 bit offset from the tiny data area pointer. |
| |
| - : BFD_RELOC_V850_TDA_16_16_OFFSET |
| This is a 16 bit offset from the tiny data area pointer. |
| |
| - : BFD_RELOC_V850_TDA_4_5_OFFSET |
| This is a 5 bit offset (of which only 4 bits are used) from the |
| tiny data area pointer. |
| |
| - : BFD_RELOC_V850_TDA_4_4_OFFSET |
| This is a 4 bit offset from the tiny data area pointer. |
| |
| - : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET |
| This is a 16 bit offset from the short data area pointer, with the |
| bits placed non-contigously in the instruction. |
| |
| - : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET |
| This is a 16 bit offset from the zero data area pointer, with the |
| bits placed non-contigously in the instruction. |
| |
| - : BFD_RELOC_V850_CALLT_6_7_OFFSET |
| This is a 6 bit offset from the call table base pointer. |
| |
| - : BFD_RELOC_V850_CALLT_16_16_OFFSET |
| This is a 16 bit offset from the call table base pointer. |
| |
| - : BFD_RELOC_MN10300_32_PCREL |
| This is a 32bit pcrel reloc for the mn10300, offset by two bytes |
| in the instruction. |
| |
| - : BFD_RELOC_MN10300_16_PCREL |
| This is a 16bit pcrel reloc for the mn10300, offset by two bytes |
| in the instruction. |
| |
| - : BFD_RELOC_TIC30_LDP |
| 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. |
| |
| - : BFD_RELOC_TIC54X_PARTLS7 |
| This is a 7bit reloc for the tms320c54x, where the least |
| significant 7 bits of a 16 bit word are placed into the least |
| significant 7 bits of the opcode. |
| |
| - : BFD_RELOC_TIC54X_PARTMS9 |
| This is a 9bit DP reloc for the tms320c54x, where the most |
| significant 9 bits of a 16 bit word are placed into the least |
| significant 9 bits of the opcode. |
| |
| - : BFD_RELOC_TIC54X_23 |
| This is an extended address 23-bit reloc for the tms320c54x. |
| |
| - : BFD_RELOC_TIC54X_16_OF_23 |
| This is a 16-bit reloc for the tms320c54x, where the least |
| significant 16 bits of a 23-bit extended address are placed into |
| the opcode. |
| |
| - : BFD_RELOC_TIC54X_MS7_OF_23 |
| This is a reloc for the tms320c54x, where the most significant 7 |
| bits of a 23-bit extended address are placed into the opcode. |
| |
| - : BFD_RELOC_FR30_48 |
| This is a 48 bit reloc for the FR30 that stores 32 bits. |
| |
| - : BFD_RELOC_FR30_20 |
| This is a 32 bit reloc for the FR30 that stores 20 bits split up |
| into two sections. |
| |
| - : BFD_RELOC_FR30_6_IN_4 |
| This is a 16 bit reloc for the FR30 that stores a 6 bit word |
| offset in 4 bits. |
| |
| - : BFD_RELOC_FR30_8_IN_8 |
| This is a 16 bit reloc for the FR30 that stores an 8 bit byte |
| offset into 8 bits. |
| |
| - : BFD_RELOC_FR30_9_IN_8 |
| This is a 16 bit reloc for the FR30 that stores a 9 bit short |
| offset into 8 bits. |
| |
| - : BFD_RELOC_FR30_10_IN_8 |
| This is a 16 bit reloc for the FR30 that stores a 10 bit word |
| offset into 8 bits. |
| |
| - : BFD_RELOC_FR30_9_PCREL |
| This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative |
| short offset into 8 bits. |
| |
| - : BFD_RELOC_FR30_12_PCREL |
| This is a 16 bit reloc for the FR30 that stores a 12 bit pc |
| relative short offset into 11 bits. |
| |
| - : BFD_RELOC_MCORE_PCREL_IMM8BY4 |
| - : BFD_RELOC_MCORE_PCREL_IMM11BY2 |
| - : BFD_RELOC_MCORE_PCREL_IMM4BY2 |
| - : BFD_RELOC_MCORE_PCREL_32 |
| - : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2 |
| - : BFD_RELOC_MCORE_RVA |
| Motorola Mcore relocations. |
| |
| - : BFD_RELOC_MMIX_GETA |
| - : BFD_RELOC_MMIX_GETA_1 |
| - : BFD_RELOC_MMIX_GETA_2 |
| - : BFD_RELOC_MMIX_GETA_3 |
| These are relocations for the GETA instruction. |
| |
| - : BFD_RELOC_MMIX_CBRANCH |
| - : BFD_RELOC_MMIX_CBRANCH_J |
| - : BFD_RELOC_MMIX_CBRANCH_1 |
| - : BFD_RELOC_MMIX_CBRANCH_2 |
| - : BFD_RELOC_MMIX_CBRANCH_3 |
| These are relocations for a conditional branch instruction. |
| |
| - : BFD_RELOC_MMIX_PUSHJ |
| - : BFD_RELOC_MMIX_PUSHJ_1 |
| - : BFD_RELOC_MMIX_PUSHJ_2 |
| - : BFD_RELOC_MMIX_PUSHJ_3 |
| These are relocations for the PUSHJ instruction. |
| |
| - : BFD_RELOC_MMIX_JMP |
| - : BFD_RELOC_MMIX_JMP_1 |
| - : BFD_RELOC_MMIX_JMP_2 |
| - : BFD_RELOC_MMIX_JMP_3 |
| These are relocations for the JMP instruction. |
| |
| - : BFD_RELOC_MMIX_ADDR19 |
| This is a relocation for a relative address as in a GETA |
| instruction or a branch. |
| |
| - : BFD_RELOC_MMIX_ADDR27 |
| This is a relocation for a relative address as in a JMP |
| instruction. |
| |
| - : BFD_RELOC_MMIX_REG_OR_BYTE |
| This is a relocation for an instruction field that may be a general |
| register or a value 0..255. |
| |
| - : BFD_RELOC_MMIX_REG |
| This is a relocation for an instruction field that may be a general |
| register. |
| |
| - : BFD_RELOC_MMIX_BASE_PLUS_OFFSET |
| This is a relocation for two instruction fields holding a register |
| and an offset, the equivalent of the relocation. |
| |
| - : BFD_RELOC_MMIX_LOCAL |
| This relocation is an assertion that the expression is not |
| allocated as a global register. It does not modify contents. |
| |
| - : BFD_RELOC_AVR_7_PCREL |
| This is a 16 bit reloc for the AVR that stores 8 bit pc relative |
| short offset into 7 bits. |
| |
| - : BFD_RELOC_AVR_13_PCREL |
| This is a 16 bit reloc for the AVR that stores 13 bit pc relative |
| short offset into 12 bits. |
| |
| - : BFD_RELOC_AVR_16_PM |
| This is a 16 bit reloc for the AVR that stores 17 bit value |
| (usually program memory address) into 16 bits. |
| |
| - : BFD_RELOC_AVR_LO8_LDI |
| This is a 16 bit reloc for the AVR that stores 8 bit value (usually |
| data memory address) into 8 bit immediate value of LDI insn. |
| |
| - : BFD_RELOC_AVR_HI8_LDI |
| This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 |
| bit of data memory address) into 8 bit immediate value of LDI insn. |
| |
| - : BFD_RELOC_AVR_HH8_LDI |
| This is a 16 bit reloc for the AVR that stores 8 bit value (most |
| high 8 bit of program memory address) into 8 bit immediate value |
| of LDI insn. |
| |
| - : BFD_RELOC_AVR_LO8_LDI_NEG |
| This is a 16 bit reloc for the AVR that stores negated 8 bit value |
| (usually data memory address) into 8 bit immediate value of SUBI |
| insn. |
| |
| - : BFD_RELOC_AVR_HI8_LDI_NEG |
| This is a 16 bit reloc for the AVR that stores negated 8 bit value |
| (high 8 bit of data memory address) into 8 bit immediate value of |
| SUBI insn. |
| |
| - : BFD_RELOC_AVR_HH8_LDI_NEG |
| This is a 16 bit reloc for the AVR that stores negated 8 bit value |
| (most high 8 bit of program memory address) into 8 bit immediate |
| value of LDI or SUBI insn. |
| |
| - : BFD_RELOC_AVR_LO8_LDI_PM |
| This is a 16 bit reloc for the AVR that stores 8 bit value (usually |
| command address) into 8 bit immediate value of LDI insn. |
| |
| - : BFD_RELOC_AVR_HI8_LDI_PM |
| This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 |
| bit of command address) into 8 bit immediate value of LDI insn. |
| |
| - : BFD_RELOC_AVR_HH8_LDI_PM |
| This is a 16 bit reloc for the AVR that stores 8 bit value (most |
| high 8 bit of command address) into 8 bit immediate value of LDI |
| insn. |
| |
| - : BFD_RELOC_AVR_LO8_LDI_PM_NEG |
| This is a 16 bit reloc for the AVR that stores negated 8 bit value |
| (usually command address) into 8 bit immediate value of SUBI insn. |
| |
| - : BFD_RELOC_AVR_HI8_LDI_PM_NEG |
| This is a 16 bit reloc for the AVR that stores negated 8 bit value |
| (high 8 bit of 16 bit command address) into 8 bit immediate value |
| of SUBI insn. |
| |
| - : BFD_RELOC_AVR_HH8_LDI_PM_NEG |
| This is a 16 bit reloc for the AVR that stores negated 8 bit value |
| (high 6 bit of 22 bit command address) into 8 bit immediate value |
| of SUBI insn. |
| |
| - : BFD_RELOC_AVR_CALL |
| This is a 32 bit reloc for the AVR that stores 23 bit value into |
| 22 bits. |
| |
| - : BFD_RELOC_390_12 |
| Direct 12 bit. |
| |
| - : BFD_RELOC_390_GOT12 |
| 12 bit GOT offset. |
| |
| - : BFD_RELOC_390_PLT32 |
| 32 bit PC relative PLT address. |
| |
| - : BFD_RELOC_390_COPY |
| Copy symbol at runtime. |
| |
| - : BFD_RELOC_390_GLOB_DAT |
| Create GOT entry. |
| |
| - : BFD_RELOC_390_JMP_SLOT |
| Create PLT entry. |
| |
| - : BFD_RELOC_390_RELATIVE |
| Adjust by program base. |
| |
| - : BFD_RELOC_390_GOTPC |
| 32 bit PC relative offset to GOT. |
| |
| - : BFD_RELOC_390_GOT16 |
| 16 bit GOT offset. |
| |
| - : BFD_RELOC_390_PC16DBL |
| PC relative 16 bit shifted by 1. |
| |
| - : BFD_RELOC_390_PLT16DBL |
| 16 bit PC rel. PLT shifted by 1. |
| |
| - : BFD_RELOC_390_PC32DBL |
| PC relative 32 bit shifted by 1. |
| |
| - : BFD_RELOC_390_PLT32DBL |
| 32 bit PC rel. PLT shifted by 1. |
| |
| - : BFD_RELOC_390_GOTPCDBL |
| 32 bit PC rel. GOT shifted by 1. |
| |
| - : BFD_RELOC_390_GOT64 |
| 64 bit GOT offset. |
| |
| - : BFD_RELOC_390_PLT64 |
| 64 bit PC relative PLT address. |
| |
| - : BFD_RELOC_390_GOTENT |
| 32 bit rel. offset to GOT entry. |
| |
| - : BFD_RELOC_VTABLE_INHERIT |
| - : BFD_RELOC_VTABLE_ENTRY |
| These two relocations are used by the linker to determine which of |
| the entries in a C++ virtual function table are actually used. |
| When the -gc-sections option is given, the linker will zero out |
| the entries that are not used, so that the code for those |
| functions need not be included in the output. |
| |
| VTABLE_INHERIT is a zero-space relocation used to describe to the |
| linker the inheritence tree of a C++ virtual function table. The |
| relocation's symbol should be the parent class' vtable, and the |
| relocation should be located at the child vtable. |
| |
| VTABLE_ENTRY is a zero-space relocation that describes the use of a |
| virtual function table entry. The reloc's symbol should refer to |
| the table of the class mentioned in the code. Off of that base, |
| an offset describes the entry that is being used. For Rela hosts, |
| this offset is stored in the reloc's addend. For Rel hosts, we |
| are forced to put this offset in the reloc's section offset. |
| |
| - : BFD_RELOC_IA64_IMM14 |
| - : BFD_RELOC_IA64_IMM22 |
| - : BFD_RELOC_IA64_IMM64 |
| - : BFD_RELOC_IA64_DIR32MSB |
| - : BFD_RELOC_IA64_DIR32LSB |
| - : BFD_RELOC_IA64_DIR64MSB |
| - : BFD_RELOC_IA64_DIR64LSB |
| - : BFD_RELOC_IA64_GPREL22 |
| - : BFD_RELOC_IA64_GPREL64I |
| - : BFD_RELOC_IA64_GPREL32MSB |
| - : BFD_RELOC_IA64_GPREL32LSB |
| - : BFD_RELOC_IA64_GPREL64MSB |
| - : BFD_RELOC_IA64_GPREL64LSB |
| - : BFD_RELOC_IA64_LTOFF22 |
| - : BFD_RELOC_IA64_LTOFF64I |
| - : BFD_RELOC_IA64_PLTOFF22 |
| - : BFD_RELOC_IA64_PLTOFF64I |
| - : BFD_RELOC_IA64_PLTOFF64MSB |
| - : BFD_RELOC_IA64_PLTOFF64LSB |
| - : BFD_RELOC_IA64_FPTR64I |
| - : BFD_RELOC_IA64_FPTR32MSB |
| - : BFD_RELOC_IA64_FPTR32LSB |
| - : BFD_RELOC_IA64_FPTR64MSB |
| - : BFD_RELOC_IA64_FPTR64LSB |
| - : BFD_RELOC_IA64_PCREL21B |
| - : BFD_RELOC_IA64_PCREL21BI |
| - : BFD_RELOC_IA64_PCREL21M |
| - : BFD_RELOC_IA64_PCREL21F |
| - : BFD_RELOC_IA64_PCREL22 |
| - : BFD_RELOC_IA64_PCREL60B |
| - : BFD_RELOC_IA64_PCREL64I |
| - : BFD_RELOC_IA64_PCREL32MSB |
| - : BFD_RELOC_IA64_PCREL32LSB |
| - : BFD_RELOC_IA64_PCREL64MSB |
| - : BFD_RELOC_IA64_PCREL64LSB |
| - : BFD_RELOC_IA64_LTOFF_FPTR22 |
| - : BFD_RELOC_IA64_LTOFF_FPTR64I |
| - : BFD_RELOC_IA64_LTOFF_FPTR32MSB |
| - : BFD_RELOC_IA64_LTOFF_FPTR32LSB |
| - : BFD_RELOC_IA64_LTOFF_FPTR64MSB |
| - : BFD_RELOC_IA64_LTOFF_FPTR64LSB |
| - : BFD_RELOC_IA64_SEGREL32MSB |
| - : BFD_RELOC_IA64_SEGREL32LSB |
| - : BFD_RELOC_IA64_SEGREL64MSB |
| - : BFD_RELOC_IA64_SEGREL64LSB |
| - : BFD_RELOC_IA64_SECREL32MSB |
| - : BFD_RELOC_IA64_SECREL32LSB |
| - : BFD_RELOC_IA64_SECREL64MSB |
| - : BFD_RELOC_IA64_SECREL64LSB |
| - : BFD_RELOC_IA64_REL32MSB |
| - : BFD_RELOC_IA64_REL32LSB |
| - : BFD_RELOC_IA64_REL64MSB |
| - : BFD_RELOC_IA64_REL64LSB |
| - : BFD_RELOC_IA64_LTV32MSB |
| - : BFD_RELOC_IA64_LTV32LSB |
| - : BFD_RELOC_IA64_LTV64MSB |
| - : BFD_RELOC_IA64_LTV64LSB |
| - : BFD_RELOC_IA64_IPLTMSB |
| - : BFD_RELOC_IA64_IPLTLSB |
| - : BFD_RELOC_IA64_COPY |
| - : BFD_RELOC_IA64_TPREL22 |
| - : BFD_RELOC_IA64_TPREL64MSB |
| - : BFD_RELOC_IA64_TPREL64LSB |
| - : BFD_RELOC_IA64_LTOFF_TP22 |
| - : BFD_RELOC_IA64_LTOFF22X |
| - : BFD_RELOC_IA64_LDXMOV |
| Intel IA64 Relocations. |
| |
| - : BFD_RELOC_M68HC11_HI8 |
| Motorola 68HC11 reloc. This is the 8 bits high part of an |
| absolute address. |
| |
| - : BFD_RELOC_M68HC11_LO8 |
| Motorola 68HC11 reloc. This is the 8 bits low part of an absolute |
| address. |
| |
| - : BFD_RELOC_M68HC11_3B |
| Motorola 68HC11 reloc. This is the 3 bits of a value. |
| |
| - : BFD_RELOC_CRIS_BDISP8 |
| - : BFD_RELOC_CRIS_UNSIGNED_5 |
| - : BFD_RELOC_CRIS_SIGNED_6 |
| - : BFD_RELOC_CRIS_UNSIGNED_6 |
| - : BFD_RELOC_CRIS_UNSIGNED_4 |
| These relocs are only used within the CRIS assembler. They are not |
| (at present) written to any object files. |
| |
| - : BFD_RELOC_CRIS_COPY |
| - : BFD_RELOC_CRIS_GLOB_DAT |
| - : BFD_RELOC_CRIS_JUMP_SLOT |
| - : BFD_RELOC_CRIS_RELATIVE |
| Relocs used in ELF shared libraries for CRIS. |
| |
| - : BFD_RELOC_CRIS_32_GOT |
| 32-bit offset to symbol-entry within GOT. |
| |
| - : BFD_RELOC_CRIS_16_GOT |
| 16-bit offset to symbol-entry within GOT. |
| |
| - : BFD_RELOC_CRIS_32_GOTPLT |
| 32-bit offset to symbol-entry within GOT, with PLT handling. |
| |
| - : BFD_RELOC_CRIS_16_GOTPLT |
| 16-bit offset to symbol-entry within GOT, with PLT handling. |
| |
| - : BFD_RELOC_CRIS_32_GOTREL |
| 32-bit offset to symbol, relative to GOT. |
| |
| - : BFD_RELOC_CRIS_32_PLT_GOTREL |
| 32-bit offset to symbol with PLT entry, relative to GOT. |
| |
| - : BFD_RELOC_CRIS_32_PLT_PCREL |
| 32-bit offset to symbol with PLT entry, relative to this |
| relocation. |
| |
| - : BFD_RELOC_860_COPY |
| - : BFD_RELOC_860_GLOB_DAT |
| - : BFD_RELOC_860_JUMP_SLOT |
| - : BFD_RELOC_860_RELATIVE |
| - : BFD_RELOC_860_PC26 |
| - : BFD_RELOC_860_PLT26 |
| - : BFD_RELOC_860_PC16 |
| - : BFD_RELOC_860_LOW0 |
| - : BFD_RELOC_860_SPLIT0 |
| - : BFD_RELOC_860_LOW1 |
| - : BFD_RELOC_860_SPLIT1 |
| - : BFD_RELOC_860_LOW2 |
| - : BFD_RELOC_860_SPLIT2 |
| - : BFD_RELOC_860_LOW3 |
| - : BFD_RELOC_860_LOGOT0 |
| - : BFD_RELOC_860_SPGOT0 |
| - : BFD_RELOC_860_LOGOT1 |
| - : BFD_RELOC_860_SPGOT1 |
| - : BFD_RELOC_860_LOGOTOFF0 |
| - : BFD_RELOC_860_SPGOTOFF0 |
| - : BFD_RELOC_860_LOGOTOFF1 |
| - : BFD_RELOC_860_SPGOTOFF1 |
| - : BFD_RELOC_860_LOGOTOFF2 |
| - : BFD_RELOC_860_LOGOTOFF3 |
| - : BFD_RELOC_860_LOPC |
| - : BFD_RELOC_860_HIGHADJ |
| - : BFD_RELOC_860_HAGOT |
| - : BFD_RELOC_860_HAGOTOFF |
| - : BFD_RELOC_860_HAPC |
| - : BFD_RELOC_860_HIGH |
| - : BFD_RELOC_860_HIGOT |
| - : BFD_RELOC_860_HIGOTOFF |
| Intel i860 Relocations. |
| |
| - : BFD_RELOC_OPENRISC_ABS_26 |
| - : BFD_RELOC_OPENRISC_REL_26 |
| OpenRISC Relocations. |
| |
| - : BFD_RELOC_H8_DIR16A8 |
| - : BFD_RELOC_H8_DIR16R8 |
| - : BFD_RELOC_H8_DIR24A8 |
| - : BFD_RELOC_H8_DIR24R8 |
| - : BFD_RELOC_H8_DIR32A16 |
| H8 elf Relocations. |
| |
| - : BFD_RELOC_XSTORMY16_REL_12 |
| - : BFD_RELOC_XSTORMY16_24 |
| - : BFD_RELOC_XSTORMY16_FPTR16 |
| Sony Xstormy16 Relocations. |
| |
| |
| typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; |
| |
| `bfd_reloc_type_lookup' |
| ....................... |
| |
| *Synopsis* |
| reloc_howto_type * |
| bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code); |
| *Description* |
| Return a pointer to a howto structure which, when invoked, will perform |
| the relocation CODE on data from the architecture noted. |
| |
| `bfd_default_reloc_type_lookup' |
| ............................... |
| |
| *Synopsis* |
| reloc_howto_type *bfd_default_reloc_type_lookup |
| (bfd *abfd, bfd_reloc_code_real_type code); |
| *Description* |
| Provides a default relocation lookup routine for any architecture. |
| |
| `bfd_get_reloc_code_name' |
| ......................... |
| |
| *Synopsis* |
| const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code); |
| *Description* |
| Provides a printable name for the supplied relocation code. Useful |
| mainly for printing error messages. |
| |
| `bfd_generic_relax_section' |
| ........................... |
| |
| *Synopsis* |
| boolean bfd_generic_relax_section |
| (bfd *abfd, |
| asection *section, |
| struct bfd_link_info *, |
| boolean *); |
| *Description* |
| Provides default handling for relaxing for back ends which don't do |
| relaxing - i.e., does nothing. |
| |
| `bfd_generic_gc_sections' |
| ......................... |
| |
| *Synopsis* |
| boolean bfd_generic_gc_sections |
| (bfd *, struct bfd_link_info *); |
| *Description* |
| Provides default handling for relaxing for back ends which don't do |
| section gc - i.e., does nothing. |
| |
| `bfd_generic_merge_sections' |
| ............................ |
| |
| *Synopsis* |
| boolean bfd_generic_merge_sections |
| (bfd *, struct bfd_link_info *); |
| *Description* |
| Provides default handling for SEC_MERGE section merging for back ends |
| which don't have SEC_MERGE support - i.e., does nothing. |
| |
| `bfd_generic_get_relocated_section_contents' |
| ............................................ |
| |
| *Synopsis* |
| bfd_byte * |
| bfd_generic_get_relocated_section_contents (bfd *abfd, |
| struct bfd_link_info *link_info, |
| struct bfd_link_order *link_order, |
| bfd_byte *data, |
| boolean relocateable, |
| asymbol **symbols); |
| *Description* |
| Provides default handling of relocation effort for back ends which |
| can't be bothered to do it efficiently. |
| |
| |
| File: bfd.info, Node: Core Files, Next: Targets, Prev: Relocations, Up: BFD front end |
| |
| Core files |
| ========== |
| |
| *Description* |
| These are functions pertaining to core files. |
| |
| `bfd_core_file_failing_command' |
| ............................... |
| |
| *Synopsis* |
| const char *bfd_core_file_failing_command(bfd *abfd); |
| *Description* |
| Return a read-only string explaining which program was running when it |
| failed and produced the core file ABFD. |
| |
| `bfd_core_file_failing_signal' |
| .............................. |
| |
| *Synopsis* |
| int bfd_core_file_failing_signal(bfd *abfd); |
| *Description* |
| Returns the signal number which caused the core dump which generated |
| the file the BFD ABFD is attached to. |
| |
| `core_file_matches_executable_p' |
| ................................ |
| |
| *Synopsis* |
| boolean core_file_matches_executable_p |
| (bfd *core_bfd, bfd *exec_bfd); |
| *Description* |
| Return `true' if the core file attached to CORE_BFD was generated by a |
| run of the executable file attached to EXEC_BFD, `false' otherwise. |
| |
| |
| File: bfd.info, Node: Targets, Next: Architectures, Prev: Core Files, Up: BFD front end |
| |
| Targets |
| ======= |
| |
| *Description* |
| Each port of BFD to a different machine requries the creation of a |
| target back end. All the back end provides to the root part of BFD is a |
| structure containing pointers to functions which perform certain low |
| level operations on files. BFD translates the applications's requests |
| through a pointer into calls to the back end routines. |
| |
| When a file is opened with `bfd_openr', its format and target are |
| unknown. BFD uses various mechanisms to determine how to interpret the |
| file. The operations performed are: |
| |
| * Create a BFD by calling the internal routine `_bfd_new_bfd', then |
| call `bfd_find_target' with the target string supplied to |
| `bfd_openr' and the new BFD pointer. |
| |
| * If a null target string was provided to `bfd_find_target', look up |
| the environment variable `GNUTARGET' and use that as the target |
| string. |
| |
| * If the target string is still `NULL', or the target string is |
| `default', then use the first item in the target vector as the |
| target type, and set `target_defaulted' in the BFD to cause |
| `bfd_check_format' to loop through all the targets. *Note |
| bfd_target::. *Note Formats::. |
| |
| * Otherwise, inspect the elements in the target vector one by one, |
| until a match on target name is found. When found, use it. |
| |
| * Otherwise return the error `bfd_error_invalid_target' to |
| `bfd_openr'. |
| |
| * `bfd_openr' attempts to open the file using `bfd_open_file', and |
| returns the BFD. |
| Once the BFD has been opened and the target selected, the file |
| format may be determined. This is done by calling `bfd_check_format' on |
| the BFD with a suggested format. If `target_defaulted' has been set, |
| each possible target type is tried to see if it recognizes the |
| specified format. `bfd_check_format' returns `true' when the caller |
| guesses right. |
| |
| * Menu: |
| |
| * bfd_target:: |
| |