7) if they are different you have to figure out which version is
right. */
relocation -= reloc_entry->addend;
- reloc_entry->addend = 0;
+ /* FIXME: There should be no target specific code here... */
+ if (strcmp (abfd->xvec->name, "coff-z8k") != 0)
+ reloc_entry->addend = 0;
}
else
{
INODE
howto manager, , typedef arelent, Relocations
-SECTION
+SUBSECTION
The howto manager
When an application wants to create a relocation, but doesn't
ENUMDOC
Low 16 bits.
+ENUM
+ BFD_RELOC_HI16_PCREL
+ENUMDOC
+ High 16 bits of 32-bit pc-relative value
+ENUM
+ BFD_RELOC_HI16_S_PCREL
+ENUMDOC
+ High 16 bits of 32-bit pc-relative value, adjusted
+ENUM
+ BFD_RELOC_LO16_PCREL
+ENUMDOC
+ Low 16 bits of pc-relative value
+
ENUM
BFD_RELOC_MIPS16_HI16
ENUMDOC
BFD_RELOC_X86_64_GOTTPOFF
ENUMX
BFD_RELOC_X86_64_TPOFF32
+ENUMX
+ BFD_RELOC_X86_64_GOTOFF64
+ENUMX
+ BFD_RELOC_X86_64_GOTPC32
ENUMDOC
x86-64/elf relocations
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.
+
ENUM
- BFD_RELOC_ARM_IMMEDIATE
+ BFD_RELOC_THUMB_PCREL_BRANCH7
ENUMX
- BFD_RELOC_ARM_ADRL_IMMEDIATE
+ BFD_RELOC_THUMB_PCREL_BRANCH9
ENUMX
+ BFD_RELOC_THUMB_PCREL_BRANCH12
+ENUMX
+ BFD_RELOC_THUMB_PCREL_BRANCH20
+ENUMX
+ BFD_RELOC_THUMB_PCREL_BRANCH23
+ENUMX
+ BFD_RELOC_THUMB_PCREL_BRANCH25
+ENUMDOC
+ Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
+ The lowest bit must be zero and is not stored in the instruction.
+ Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
+ "nn" one smaller in all cases. Note further that BRANCH23
+ corresponds to R_ARM_THM_CALL.
+
+ENUM
BFD_RELOC_ARM_OFFSET_IMM
+ENUMDOC
+ 12-bit immediate offset, used in ARM-format ldr and str instructions.
+
+ENUM
+ BFD_RELOC_ARM_THUMB_OFFSET
+ENUMDOC
+ 5-bit immediate offset, used in Thumb-format ldr and str instructions.
+
+ENUM
+ BFD_RELOC_ARM_TARGET1
+ENUMDOC
+ Pc-relative or absolute relocation depending on target. Used for
+ entries in .init_array sections.
+ENUM
+ BFD_RELOC_ARM_ROSEGREL32
+ENUMDOC
+ Read-only segment base relative address.
+ENUM
+ BFD_RELOC_ARM_SBREL32
+ENUMDOC
+ Data segment base relative address.
+ENUM
+ BFD_RELOC_ARM_TARGET2
+ENUMDOC
+ This reloc is used for references to RTTI data from exception handling
+ tables. The actual definition depends on the target. It may be a
+ pc-relative or some form of GOT-indirect relocation.
+ENUM
+ BFD_RELOC_ARM_PREL31
+ENUMDOC
+ 31-bit PC relative address.
+
+ENUM
+ BFD_RELOC_ARM_JUMP_SLOT
ENUMX
- BFD_RELOC_ARM_SHIFT_IMM
+ BFD_RELOC_ARM_GLOB_DAT
ENUMX
- BFD_RELOC_ARM_SMI
+ BFD_RELOC_ARM_GOT32
ENUMX
- BFD_RELOC_ARM_SWI
+ BFD_RELOC_ARM_PLT32
ENUMX
- BFD_RELOC_ARM_MULTI
+ BFD_RELOC_ARM_RELATIVE
ENUMX
- BFD_RELOC_ARM_CP_OFF_IMM
+ BFD_RELOC_ARM_GOTOFF
ENUMX
- BFD_RELOC_ARM_CP_OFF_IMM_S2
+ BFD_RELOC_ARM_GOTPC
+ENUMDOC
+ Relocations for setting up GOTs and PLTs for shared libraries.
+
+ENUM
+ BFD_RELOC_ARM_TLS_GD32
ENUMX
- BFD_RELOC_ARM_ADR_IMM
+ BFD_RELOC_ARM_TLS_LDO32
ENUMX
- BFD_RELOC_ARM_LDR_IMM
+ BFD_RELOC_ARM_TLS_LDM32
ENUMX
- BFD_RELOC_ARM_LITERAL
+ BFD_RELOC_ARM_TLS_DTPOFF32
ENUMX
- BFD_RELOC_ARM_IN_POOL
+ BFD_RELOC_ARM_TLS_DTPMOD32
ENUMX
- BFD_RELOC_ARM_OFFSET_IMM8
+ BFD_RELOC_ARM_TLS_TPOFF32
ENUMX
- BFD_RELOC_ARM_HWLITERAL
+ BFD_RELOC_ARM_TLS_IE32
ENUMX
- BFD_RELOC_ARM_THUMB_ADD
+ BFD_RELOC_ARM_TLS_LE32
+ENUMDOC
+ ARM thread-local storage relocations.
+
+ENUM
+ BFD_RELOC_ARM_IMMEDIATE
ENUMX
- BFD_RELOC_ARM_THUMB_IMM
+ BFD_RELOC_ARM_ADRL_IMMEDIATE
ENUMX
- BFD_RELOC_ARM_THUMB_SHIFT
+ BFD_RELOC_ARM_T32_IMMEDIATE
ENUMX
- BFD_RELOC_ARM_THUMB_OFFSET
+ BFD_RELOC_ARM_T32_IMM12
ENUMX
- BFD_RELOC_ARM_GOT12
+ BFD_RELOC_ARM_T32_ADD_PC12
ENUMX
- BFD_RELOC_ARM_GOT32
+ BFD_RELOC_ARM_SHIFT_IMM
ENUMX
- BFD_RELOC_ARM_JUMP_SLOT
+ BFD_RELOC_ARM_SMC
ENUMX
- BFD_RELOC_ARM_COPY
+ BFD_RELOC_ARM_SWI
ENUMX
- BFD_RELOC_ARM_GLOB_DAT
+ BFD_RELOC_ARM_MULTI
ENUMX
- BFD_RELOC_ARM_PLT32
+ BFD_RELOC_ARM_CP_OFF_IMM
ENUMX
- BFD_RELOC_ARM_RELATIVE
+ BFD_RELOC_ARM_CP_OFF_IMM_S2
ENUMX
- BFD_RELOC_ARM_GOTOFF
+ BFD_RELOC_ARM_T32_CP_OFF_IMM
ENUMX
- BFD_RELOC_ARM_GOTPC
+ BFD_RELOC_ARM_T32_CP_OFF_IMM_S2
ENUMX
- BFD_RELOC_ARM_TLS_GD32
+ BFD_RELOC_ARM_ADR_IMM
ENUMX
- BFD_RELOC_ARM_TLS_LDO32
+ BFD_RELOC_ARM_LDR_IMM
ENUMX
- BFD_RELOC_ARM_TLS_LDM32
+ BFD_RELOC_ARM_LITERAL
ENUMX
- BFD_RELOC_ARM_TLS_DTPOFF32
+ BFD_RELOC_ARM_IN_POOL
ENUMX
- BFD_RELOC_ARM_TLS_DTPMOD32
+ BFD_RELOC_ARM_OFFSET_IMM8
ENUMX
- BFD_RELOC_ARM_TLS_TPOFF32
+ BFD_RELOC_ARM_T32_OFFSET_U8
ENUMX
- BFD_RELOC_ARM_TLS_IE32
+ BFD_RELOC_ARM_T32_OFFSET_IMM
ENUMX
- BFD_RELOC_ARM_TLS_LE32
+ BFD_RELOC_ARM_HWLITERAL
+ENUMX
+ BFD_RELOC_ARM_THUMB_ADD
+ENUMX
+ BFD_RELOC_ARM_THUMB_IMM
+ENUMX
+ BFD_RELOC_ARM_THUMB_SHIFT
ENUMDOC
These relocs are only used within the ARM assembler. They are not
(at present) written to any object files.
-ENUM
- BFD_RELOC_ARM_TARGET1
-ENUMDOC
- Pc-relative or absolute relocation depending on target. Used for
- entries in .init_array sections.
-ENUM
- BFD_RELOC_ARM_ROSEGREL32
-ENUMDOC
- Read-only segment base relative address.
-ENUM
- BFD_RELOC_ARM_SBREL32
-ENUMDOC
- Data segment base relative address.
-ENUM
- BFD_RELOC_ARM_TARGET2
-ENUMDOC
- This reloc is used for References to RTTI dta from exception handling
- tables. The actual definition depends on the target. It may be a
- pc-relative or some form of GOT-indirect relocation.
-ENUM
- BFD_RELOC_ARM_PREL31
-ENUMDOC
- 31-bit PC relative address.
ENUM
BFD_RELOC_SH_PCDISP8BY2
ENUMDOC
Renesas / SuperH SH relocs. Not all of these appear in object files.
-ENUM
- BFD_RELOC_THUMB_PCREL_BRANCH9
-ENUMX
- BFD_RELOC_THUMB_PCREL_BRANCH12
-ENUMX
- BFD_RELOC_THUMB_PCREL_BRANCH23
-ENUMDOC
- Thumb 23-, 12- and 9-bit pc-relative branches. The lowest bit must
- be zero and is not stored in the instruction.
-
ENUM
BFD_RELOC_ARC_B22_PCREL
ENUMDOC
stored in the instruction. The high 24 bits are installed in bits 23
through 0.
+ENUM
+ BFD_RELOC_BFIN_16_IMM
+ENUMDOC
+ ADI Blackfin 16 bit immediate absolute reloc.
+ENUM
+ BFD_RELOC_BFIN_16_HIGH
+ENUMDOC
+ ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.
+ENUM
+ BFD_RELOC_BFIN_4_PCREL
+ENUMDOC
+ ADI Blackfin 'a' part of LSETUP.
+ENUM
+ BFD_RELOC_BFIN_5_PCREL
+ENUMDOC
+ ADI Blackfin.
+ENUM
+ BFD_RELOC_BFIN_16_LOW
+ENUMDOC
+ ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.
+ENUM
+ BFD_RELOC_BFIN_10_PCREL
+ENUMDOC
+ ADI Blackfin.
+ENUM
+ BFD_RELOC_BFIN_11_PCREL
+ENUMDOC
+ ADI Blackfin 'b' part of LSETUP.
+ENUM
+ BFD_RELOC_BFIN_12_PCREL_JUMP
+ENUMDOC
+ ADI Blackfin.
+ENUM
+ BFD_RELOC_BFIN_12_PCREL_JUMP_S
+ENUMDOC
+ ADI Blackfin Short jump, pcrel.
+ENUM
+ BFD_RELOC_BFIN_24_PCREL_CALL_X
+ENUMDOC
+ ADI Blackfin Call.x not implemented.
+ENUM
+ BFD_RELOC_BFIN_24_PCREL_JUMP_L
+ENUMDOC
+ ADI Blackfin Long Jump pcrel.
+ENUM
+ BFD_RELOC_BFIN_GOT
+ENUMDOC
+ ADI Blackfin GOT relocation.
+ENUM
+ BFD_RELOC_BFIN_PLTPC
+ENUMDOC
+ ADI Blackfin PLTPC relocation.
+ENUM
+ BFD_ARELOC_BFIN_PUSH
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_CONST
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_ADD
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_SUB
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_MULT
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_DIV
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_MOD
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_LSHIFT
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_RSHIFT
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_AND
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_OR
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_XOR
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_LAND
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_LOR
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_LEN
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_NEG
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_COMP
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_PAGE
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_HWPAGE
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+ENUM
+ BFD_ARELOC_BFIN_ADDR
+ENUMDOC
+ ADI Blackfin arithmetic relocation.
+
ENUM
BFD_RELOC_D10V_10_PCREL_R
ENUMDOC
ENUMDOC
DLX relocs
+ENUM
+ BFD_RELOC_M32C_HI8
+ENUMDOC
+ Renesas M16C/M32C Relocations.
+
ENUM
BFD_RELOC_M32R_24
ENUMDOC
ENUMDOC
NS CR16C Relocations.
-ENUM
+ENUM
BFD_RELOC_CRX_REL4
ENUMX
BFD_RELOC_CRX_REL8
ENUMDOC
Relocations used by VAX ELF.
+ENUM
+ BFD_RELOC_MS1_PC16
+ENUMDOC
+ Morpho MS1 - 16 bit immediate relocation.
+ENUM
+ BFD_RELOC_MS1_HI16
+ENUMDOC
+ Morpho MS1 - Hi 16 bits of an address.
+ENUM
+ BFD_RELOC_MS1_LO16
+ENUMDOC
+ Morpho MS1 - Low 16 bits of an address.
+ENUM
+ BFD_RELOC_MS1_GNU_VTINHERIT
+ENUMDOC
+ Morpho MS1 - Used to tell the linker which vtable entries are used.
+ENUM
+ BFD_RELOC_MS1_GNU_VTENTRY
+ENUMDOC
+ Morpho MS1 - Used to tell the linker which vtable entries are used.
+
ENUM
BFD_RELOC_MSP430_10_PCREL
ENUMX
internally by the linker after analysis of a
BFD_RELOC_XTENSA_ASM_EXPAND.
+ENUM
+ BFD_RELOC_Z80_DISP8
+ENUMDOC
+ 8 bit signed offset in (ix+d) or (iy+d).
+
+ENUM
+ BFD_RELOC_Z8K_DISP7
+ENUMDOC
+ DJNZ offset.
+ENUM
+ BFD_RELOC_Z8K_CALLR
+ENUMDOC
+ CALR offset.
+ENUM
+ BFD_RELOC_Z8K_IMM4L
+ENUMDOC
+ 4 bit value.
+
ENDSENUM
BFD_RELOC_UNUSED
CODE_FRAGMENT
bfd_boolean
bfd_generic_gc_sections (bfd *abfd ATTRIBUTE_UNUSED,
- struct bfd_link_info *link_info ATTRIBUTE_UNUSED)
+ struct bfd_link_info *info ATTRIBUTE_UNUSED)
{
return TRUE;
}