Module goblin::elf::reloc
[−]
[src]
Relocation computations
Below are some common x86_64 relocation computations you might find useful:
Relocation | Value | Size | Formula |
---|---|---|---|
R_X86_64_NONE | 0 | none | none |
R_X86_64_64 | 1 | word64 | S + A |
R_X86_64_PC32 | 2 | word32 | S + A - P |
R_X86_64_GOT32 | 3 | word32 | G + A |
R_X86_64_PLT32 | 4 | word32 | L + A - P |
R_X86_64_COPY | 5 | none | none |
R_X86_64_GLOB_DAT | 6 | word64 | S |
R_X86_64_JUMP_SLOT | 7 | word64 | S |
R_X86_64_RELATIVE | 8 | word64 | B + A |
R_X86_64_GOTPCREL | 9 | word32 | G + GOT + A - P |
R_X86_64_32 | 10 | word32 | S + A |
R_X86_64_32S | 11 | word32 | S + A |
R_X86_64_16 | 12 | word16 | S + A |
R_X86_64_PC16 | 13 | word16 | S + A - P |
R_X86_64_8 | 14 | word8 | S + A |
R_X86_64_PC8 | 15 | word8 | S + A - P |
R_X86_64_DTPMOD64 | 16 | word64 | |
R_X86_64_DTPOFF64 | 17 | word64 | |
R_X86_64_TPOFF64 | 18 | word64 | |
R_X86_64_TLSGD | 19 | word32 | |
R_X86_64_TLSLD | 20 | word32 | |
R_X86_64_DTPOFF32 | 21 | word32 | |
R_X86_64_GOTTPOFF | 22 | word32 | |
R_X86_64_TPOFF32 | 23 | word32 | |
R_X86_64_PC64 | 24 | word64 | S + A - P |
R_X86_64_GOTOFF64 | 25 | word64 | S + A - GOT |
R_X86_64_GOTPC32 | 26 | word32 | GOT + A - P |
R_X86_64_SIZE32 | 32 | word32 | Z + A |
R_X86_64_SIZE64 | 33 | word64 | Z + A |
R_X86_64_GOTPC32_TLSDESC | 34 | word32 | |
R_X86_64_TLSDESC_CALL | 35 | none | |
R_X86_64_TLSDESC | 36 | word64×2 | |
R_X86_64_IRELATIVE | 37 | word64 | indirect (B + A) |
TLS information is at http://people.redhat.com/aoliva/writeups/TLS/RFC-TLSDESC-x86.txt
R_X86_64_IRELATIVE
is similar to R_X86_64_RELATIVE
except that
the value used in this relocation is the program address returned by the function,
which takes no arguments, at the address of the result of the corresponding
R_X86_64_RELATIVE
relocation.
Modules
reloc32 | |
reloc64 |
Structs
Reloc |
A unified ELF relocation structure |
Constants
R_386_8 | |
R_386_16 | |
R_386_32 |
Direct 32 bit |
R_386_32PLT | |
R_386_COPY |
Copy symbol at runtime |
R_386_GLOB_DAT |
Create GOT entry |
R_386_GOT32 |
32 bit GOT entry |
R_386_GOT32X |
Load from 32 bit GOT entry, relaxable |
R_386_GOTOFF |
32 bit offset to GOT |
R_386_GOTPC |
32 bit PC relative offset to GOT |
R_386_IRELATIVE |
Adjust indirectly by program base |
R_386_JMP_SLOT |
Create PLT entry |
R_386_NONE |
No reloc |
R_386_NUM |
Keep this the last entry |
R_386_PC8 | |
R_386_PC16 | |
R_386_PC32 |
PC relative 32 bit |
R_386_PLT32 |
32 bit PLT address |
R_386_RELATIVE |
Adjust by program base |
R_386_SIZE32 |
32-bit symbol size |
R_386_TLS_DESC |
TLS descriptor containing pointer to code and to argument, returning the TLS offset for the symbol |
R_386_TLS_DESC_CALL |
Marker of call through TLS descriptor for relaxation |
R_386_TLS_DTPMOD32 |
ID of module containing symbol |
R_386_TLS_DTPOFF32 |
Offset in TLS block |
R_386_TLS_GD |
Direct 32 bit for GNU version of general dynamic thread local data |
R_386_TLS_GD_32 |
Direct 32 bit for general dynamic thread local data |
R_386_TLS_GD_CALL |
Relocation for call to __tls_get_addr() |
R_386_TLS_GD_POP |
Tag for popl in GD TLS code |
R_386_TLS_GD_PUSH |
Tag for pushl in GD TLS code |
R_386_TLS_GOTDESC |
GOT offset for TLS descriptor. |
R_386_TLS_GOTIE |
GOT entry for static TLS block offset |
R_386_TLS_IE |
Address of GOT entry for static TLS block offset |
R_386_TLS_IE_32 |
GOT entry for negated static TLS block offset |
R_386_TLS_LDM |
Direct 32 bit for GNU version of local dynamic thread local data in LE code |
R_386_TLS_LDM_32 |
Direct 32 bit for local dynamic thread local data in LE code |
R_386_TLS_LDM_CALL |
Relocation for call to __tls_get_addr() in LDM code |
R_386_TLS_LDM_POP |
Tag for popl in LDM TLS code |
R_386_TLS_LDM_PUSH |
Tag for pushl in LDM TLS code |
R_386_TLS_LDO_32 |
Offset relative to TLS block |
R_386_TLS_LE |
Offset relative to static TLS block |
R_386_TLS_LE_32 |
Negated offset relative to static TLS block |
R_386_TLS_TPOFF |
Offset in static TLS block |
R_386_TLS_TPOFF32 |
Negated offset in static TLS block |
R_AARCH64_ABS16 |
Direct 16-bit |
R_AARCH64_ABS32 |
Direct 32 bit |
R_AARCH64_ABS64 |
Direct 64 bit |
R_AARCH64_ADD_ABS_LO12_NC |
Dir. ADD imm. from bits 11:0 |
R_AARCH64_ADR_GOT_PAGE |
P-page-rel. GOT off. ADRP 32:12 |
R_AARCH64_ADR_PREL_LO21 |
PC-rel. ADR imm. from bits 20:0 |
R_AARCH64_ADR_PREL_PG_HI21 |
Page-rel. ADRP imm. from 32:12 |
R_AARCH64_ADR_PREL_PG_HI21_NC |
Likewise; no overflow check |
R_AARCH64_CALL26 |
Likewise for CALL |
R_AARCH64_CONDBR19 |
PC-rel. cond. br. imm. from 20:2. |
R_AARCH64_COPY |
Copy symbol at runtime |
R_AARCH64_GLOB_DAT |
Create GOT entry |
R_AARCH64_GOTREL32 |
GOT-relative 32-bit |
R_AARCH64_GOTREL64 |
GOT-relative 64-bit |
R_AARCH64_GOT_LD_PREL19 |
PC-rel. GOT off. load imm. 20:2 |
R_AARCH64_IRELATIVE |
STT_GNU_IFUNC relocation |
R_AARCH64_JUMP26 |
PC-rel. B imm. from bits 27:2 |
R_AARCH64_JUMP_SLOT |
Create PLT entry |
R_AARCH64_LD64_GOTOFF_LO15 |
GOT-rel. off. LD/ST imm. 14:3 |
R_AARCH64_LD64_GOTPAGE_LO15 |
GOT-page-rel. GOT off. LD/ST 14:3 |
R_AARCH64_LD64_GOT_LO12_NC |
Dir. GOT off. LD/ST imm. 11:3 |
R_AARCH64_LDST128_ABS_LO12_NC |
Dir. ADD imm. from bits 11:4 |
R_AARCH64_LDST16_ABS_LO12_NC |
Dir. ADD imm. from bits 11:1 |
R_AARCH64_LDST32_ABS_LO12_NC |
Likewise for bits 11:2 |
R_AARCH64_LDST64_ABS_LO12_NC |
Likewise for bits 11:3 |
R_AARCH64_LDST8_ABS_LO12_NC |
Likewise for LD/ST; no check. |
R_AARCH64_LD_PREL_LO19 |
PC-rel. LD imm. from bits 20:2 |
R_AARCH64_MOVW_GOTOFF_G0 |
GOT-rel. off. MOV{N,Z} imm. 15:0. |
R_AARCH64_MOVW_GOTOFF_G1 |
GOT-rel. o. MOV{N,Z} imm. 31:16 |
R_AARCH64_MOVW_GOTOFF_G2 |
GOT-rel. o. MOV{N,Z} imm. 47:32 |
R_AARCH64_MOVW_GOTOFF_G3 |
GOT-rel. o. MOV{N,Z} imm. 63:48 |
R_AARCH64_MOVW_GOTOFF_G0_NC |
Likewise for MOVK; no check |
R_AARCH64_MOVW_GOTOFF_G1_NC |
Likewise for MOVK; no check |
R_AARCH64_MOVW_GOTOFF_G2_NC |
Likewise for MOVK; no check |
R_AARCH64_MOVW_PREL_G0 |
PC-rel. MOV{N,Z} imm. from 15:0 |
R_AARCH64_MOVW_PREL_G1 |
PC-rel. MOV{N,Z} imm. from 31:16. |
R_AARCH64_MOVW_PREL_G2 |
PC-rel. MOV{N,Z} imm. from 47:32. |
R_AARCH64_MOVW_PREL_G3 |
PC-rel. MOV{N,Z} imm. from 63:48. |
R_AARCH64_MOVW_PREL_G0_NC |
Likewise for MOVK; no check |
R_AARCH64_MOVW_PREL_G1_NC |
Likewise for MOVK; no check |
R_AARCH64_MOVW_PREL_G2_NC |
Likewise for MOVK; no check |
R_AARCH64_MOVW_SABS_G0 |
Dir. MOV{N,Z} imm. from 15:0 |
R_AARCH64_MOVW_SABS_G1 |
Dir. MOV{N,Z} imm. from 31:16 |
R_AARCH64_MOVW_SABS_G2 |
Dir. MOV{N,Z} imm. from 47:32 |
R_AARCH64_MOVW_UABS_G0 |
Dir. MOVZ imm. from bits 15:0 |
R_AARCH64_MOVW_UABS_G1 |
Dir. MOVZ imm. from bits 31:16 |
R_AARCH64_MOVW_UABS_G2 |
Dir. MOVZ imm. from bits 47:32 |
R_AARCH64_MOVW_UABS_G3 |
Dir. MOV{K,Z} imm. from 63:48 |
R_AARCH64_MOVW_UABS_G0_NC |
Likewise for MOVK; no check |
R_AARCH64_MOVW_UABS_G1_NC |
Likewise for MOVK; no check |
R_AARCH64_MOVW_UABS_G2_NC |
Likewise for MOVK; no check |
R_AARCH64_NONE |
No relocation |
R_AARCH64_P32_ABS32 |
Direct 32 bit |
R_AARCH64_P32_COPY |
Copy symbol at runtime |
R_AARCH64_P32_GLOB_DAT |
Create GOT entry |
R_AARCH64_P32_IRELATIVE |
STT_GNU_IFUNC relocation |
R_AARCH64_P32_JUMP_SLOT |
Create PLT entry |
R_AARCH64_P32_RELATIVE |
Adjust by program base |
R_AARCH64_P32_TLSDESC |
TLS Descriptor |
R_AARCH64_P32_TLS_DTPMOD |
Module number, 32 bit |
R_AARCH64_P32_TLS_DTPREL |
Module-relative offset, 32 bit |
R_AARCH64_P32_TLS_TPREL |
TP-relative offset, 32 bit |
R_AARCH64_PREL16 |
PC-relative 16-bit |
R_AARCH64_PREL32 |
PC-relative 32-bit |
R_AARCH64_PREL64 |
PC-relative 64-bit |
R_AARCH64_RELATIVE |
Adjust by program base |
R_AARCH64_TLSDESC |
TLS Descriptor |
R_AARCH64_TLSDESC_ADD |
Relax ADD |
R_AARCH64_TLSDESC_ADD_LO12 |
Direct ADD imm. from 11:0 |
R_AARCH64_TLSDESC_ADR_PAGE21 |
Page-rel. ADRP imm. 32:12 |
R_AARCH64_TLSDESC_ADR_PREL21 |
PC-rel. ADR immediate 20:0 |
R_AARCH64_TLSDESC_CALL |
Relax BLR |
R_AARCH64_TLSDESC_LD64_LO12 |
Direct LD off. from 11:3 |
R_AARCH64_TLSDESC_LDR |
Relax LDR |
R_AARCH64_TLSDESC_LD_PREL19 |
PC-rel. load immediate 20:2 |
R_AARCH64_TLSDESC_OFF_G1 |
GOT-rel. MOV{N,Z} imm. 31:16 |
R_AARCH64_TLSDESC_OFF_G0_NC |
GOT-rel. MOVK imm. 15:0; no ck |
R_AARCH64_TLSGD_ADD_LO12_NC |
direct ADD imm. from 11:0 |
R_AARCH64_TLSGD_ADR_PAGE21 |
page-rel. ADRP imm. 32:12 |
R_AARCH64_TLSGD_ADR_PREL21 |
PC-relative ADR imm. 20:0 |
R_AARCH64_TLSGD_MOVW_G1 |
GOT-rel. MOV{N,Z} 31:16 |
R_AARCH64_TLSGD_MOVW_G0_NC |
GOT-rel. MOVK imm. 15:0 |
R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 |
Page-rel. ADRP 32:12 |
R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC |
Direct LD off. 11:3 |
R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 |
PC-rel. load imm. 20:2 |
R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 |
GOT-rel. MOV{N,Z} 31:16 |
R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC |
GOT-rel. MOVK 15:0 |
R_AARCH64_TLSLD_ADD_DTPREL_HI12 |
DTP-rel. ADD imm. from 23:12. |
R_AARCH64_TLSLD_ADD_DTPREL_LO12 |
DTP-rel. ADD imm. from 11:0 |
R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC |
Likewise; no ovfl. check |
R_AARCH64_TLSLD_ADD_LO12_NC |
Like 514; local dynamic model |
R_AARCH64_TLSLD_ADR_PAGE21 |
Like 513; local dynamic model |
R_AARCH64_TLSLD_ADR_PREL21 |
Like 512; local dynamic model |
R_AARCH64_TLSLD_LDST128_DTPREL_LO12 |
DTP-rel. LD/ST imm. 11:4. |
R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC |
Likewise; no check |
R_AARCH64_TLSLD_LDST16_DTPREL_LO12 |
DTP-rel. LD/ST imm. 11:1 |
R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC |
Likewise; no check |
R_AARCH64_TLSLD_LDST32_DTPREL_LO12 |
DTP-rel. LD/ST imm. 11:2 |
R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC |
Likewise; no check |
R_AARCH64_TLSLD_LDST64_DTPREL_LO12 |
DTP-rel. LD/ST imm. 11:3 |
R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC |
Likewise; no check |
R_AARCH64_TLSLD_LDST8_DTPREL_LO12 |
DTP-rel. LD/ST imm. 11:0 |
R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC |
Likewise; no check |
R_AARCH64_TLSLD_LD_PREL19 |
TLS PC-rel. load imm. 20:2 |
R_AARCH64_TLSLD_MOVW_DTPREL_G0 |
TLS DTP-rel. MOV{N,Z} 15:0 |
R_AARCH64_TLSLD_MOVW_DTPREL_G1 |
TLS DTP-rel. MOV{N,Z} 31:16 |
R_AARCH64_TLSLD_MOVW_DTPREL_G2 |
TLS DTP-rel. MOV{N,Z} 47:32 |
R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC |
Likewise; MOVK; no check |
R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC |
Likewise; MOVK; no check |
R_AARCH64_TLSLD_MOVW_G1 |
Like 515; local dynamic model |
R_AARCH64_TLSLD_MOVW_G0_NC |
Like 516; local dynamic model |
R_AARCH64_TLSLE_ADD_TPREL_HI12 |
TP-rel. ADD imm. 23:12 |
R_AARCH64_TLSLE_ADD_TPREL_LO12 |
TP-rel. ADD imm. 11:0 |
R_AARCH64_TLSLE_ADD_TPREL_LO12_NC |
Likewise; no ovfl. check |
R_AARCH64_TLSLE_LDST128_TPREL_LO12 |
TP-rel. LD/ST off. 11:4 |
R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC |
Likewise; no check |
R_AARCH64_TLSLE_LDST16_TPREL_LO12 |
TP-rel. LD/ST off. 11:1 |
R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC |
Likewise; no check |
R_AARCH64_TLSLE_LDST32_TPREL_LO12 |
TP-rel. LD/ST off. 11:2 |
R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC |
Likewise; no check |
R_AARCH64_TLSLE_LDST64_TPREL_LO12 |
TP-rel. LD/ST off. 11:3 |
R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC |
Likewise; no check |
R_AARCH64_TLSLE_LDST8_TPREL_LO12 |
TP-rel. LD/ST off. 11:0 |
R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC |
Likewise; no ovfl. check. |
R_AARCH64_TLSLE_MOVW_TPREL_G0 |
TLS TP-rel. MOV{N,Z} 15:0 |
R_AARCH64_TLSLE_MOVW_TPREL_G1 |
TLS TP-rel. MOV{N,Z} 31:16 |
R_AARCH64_TLSLE_MOVW_TPREL_G2 |
TLS TP-rel. MOV{N,Z} 47:32 |
R_AARCH64_TLSLE_MOVW_TPREL_G0_NC |
Likewise; MOVK; no check |
R_AARCH64_TLSLE_MOVW_TPREL_G1_NC |
Likewise; MOVK; no check |
R_AARCH64_TLS_DTPMOD |
Module number, 64 bit |
R_AARCH64_TLS_DTPREL |
Module-relative offset, 64 bit |
R_AARCH64_TLS_TPREL |
TP-relative offset, 64 bit |
R_AARCH64_TSTBR14 |
PC-rel. TBZ/TBNZ imm. from 15:2 |
R_ARM_ABS8 |
Direct 8 bit |
R_ARM_ABS12 |
Direct 12 bit |
R_ARM_ABS16 |
Direct 16 bit |
R_ARM_ABS32 |
Direct 32 bit |
R_ARM_ABS32_NOI |
Direct 32-bit |
R_ARM_ALU_PCREL_15_8 |
Obsolete |
R_ARM_ALU_PCREL_23_15 |
Obsolete |
R_ARM_ALU_PCREL_7_0 |
Obsolete |
R_ARM_ALU_PC_G0 |
PC relative (ADD, SUB) |
R_ARM_ALU_PC_G1 |
PC relative (ADD, SUB) |
R_ARM_ALU_PC_G2 |
PC relative (ADD, SUB) |
R_ARM_ALU_PC_G0_NC |
PC relative (ADD, SUB) |
R_ARM_ALU_PC_G1_NC |
PC relative (ADD, SUB) |
R_ARM_ALU_SBREL_19_12 |
Deprecated, prog. base relative |
R_ARM_ALU_SBREL_27_20 |
Deprecated, prog. base relative |
R_ARM_ALU_SB_G0 |
Program base relative (ADD,SUB) |
R_ARM_ALU_SB_G1 |
Program base relative (ADD,SUB) |
R_ARM_ALU_SB_G2 |
Program base relative (ADD,SUB) |
R_ARM_ALU_SB_G0_NC |
Program base relative (ADD,SUB) |
R_ARM_ALU_SB_G1_NC |
Program base relative (ADD,SUB) |
R_ARM_AMP_VCALL9 | |
R_ARM_BASE_ABS |
Adjust by program base |
R_ARM_CALL |
PC relative 24 bit (BL, BLX) |
R_ARM_COPY |
Copy symbol at runtime |
R_ARM_GLOB_DAT |
Create GOT entry |
R_ARM_GNU_VTENTRY | |
R_ARM_GNU_VTINHERIT | |
R_ARM_GOT32 |
32 bit GOT entry |
R_ARM_GOTOFF |
32 bit offset to GOT |
R_ARM_GOTOFF12 |
12 bit, GOT entry relative to GOT origin (LDR, STR) |
R_ARM_GOTPC |
32 bit PC relative offset to GOT |
R_ARM_GOTRELAX | |
R_ARM_GOT_ABS |
GOT entry |
R_ARM_GOT_BREL12 |
GOT entry relative to GOT origin (LDR) |
R_ARM_GOT_PREL |
PC relative GOT entry |
R_ARM_IRELATIVE | |
R_ARM_JUMP24 |
PC relative 24 bit (B, BL |
R_ARM_JUMP_SLOT |
Create PLT entry |
R_ARM_LDC_PC_G0 |
PC relative (LDC, STC) |
R_ARM_LDC_PC_G1 |
PC relative (LDC, STC) |
R_ARM_LDC_PC_G2 |
PC relative (LDC, STC) |
R_ARM_LDC_SB_G0 |
Program base relative (LDC,STC) |
R_ARM_LDC_SB_G1 |
Program base relative (LDC,STC) |
R_ARM_LDC_SB_G2 |
Program base relative (LDC,STC) |
R_ARM_LDRS_PC_G0 |
PC relative (STR{D,H},LDR{D,SB,H,SH}) |
R_ARM_LDRS_PC_G1 |
PC relative (STR{D,H},LDR{D,SB,H,SH}) |
R_ARM_LDRS_PC_G2 |
PC relative (STR{D,H},LDR{D,SB,H,SH}) |
R_ARM_LDRS_SB_G0 |
Program base relative (LDR, STR, LDRB, STRB) |
R_ARM_LDRS_SB_G1 |
Program base relative (LDR, STR, LDRB, STRB) |
R_ARM_LDRS_SB_G2 |
Program base relative (LDR, STR, LDRB, STRB) |
R_ARM_LDR_PC_G1 |
PC relative (LDR,STR,LDRB,STRB) |
R_ARM_LDR_PC_G2 |
PC relative (LDR,STR,LDRB,STRB) |
R_ARM_LDR_SBREL_11_0 |
Deprecated, prog. base relative |
R_ARM_LDR_SB_G0 |
Program base relative (LDR,STR, LDRB, STRB) |
R_ARM_LDR_SB_G1 |
Program base relative (LDR, STR, LDRB, STRB) |
R_ARM_LDR_SB_G2 |
Program base relative (LDR, STR, LDRB, STRB) |
R_ARM_ME_TOO |
Obsolete |
R_ARM_MOVT_ABS |
Direct high 16-bit (MOVT) |
R_ARM_MOVT_BREL |
Program base relative high 16 bit (MOVT) |
R_ARM_MOVT_PREL |
PC relative (MOVT) |
R_ARM_MOVW_ABS_NC |
Direct 16-bit (MOVW) |
R_ARM_MOVW_BREL |
Program base relative 16 bit (MOVW) |
R_ARM_MOVW_BREL_NC |
Program base relative 16 bit (MOVW) |
R_ARM_MOVW_PREL_NC |
PC relative 16-bit (MOVW) |
R_ARM_NONE |
No reloc |
R_ARM_NUM |
Keep this the last entry |
R_ARM_PC13 | |
R_ARM_PC24 |
Deprecated PC relative 26 bit branch |
R_ARM_PLT32 |
Deprecated, 32 bit PLT address |
R_ARM_PLT32_ABS | |
R_ARM_PREL31 |
32 bit PC relative |
R_ARM_RABS22 | |
R_ARM_RBASE | |
R_ARM_REL32 |
PC relative 32 bit |
R_ARM_REL32_NOI |
PC relative 32-bit |
R_ARM_RELATIVE |
Adjust by program base |
R_ARM_RPC24 | |
R_ARM_RREL32 | |
R_ARM_RSBREL32 | |
R_ARM_RXPC25 | |
R_ARM_SBREL31 |
Program base relative |
R_ARM_SBREL32 | |
R_ARM_SWI24 |
Obsolete static relocation |
R_ARM_TARGET1 | |
R_ARM_TARGET2 | |
R_ARM_THM_ABS5 |
Direct & 0x7C (LDR, STR) |
R_ARM_THM_ALU_PREL_11_0 |
PC relative 12 bit (Thumb32 ADR.W) |
R_ARM_THM_GOT_BREL12 |
GOT entry relative to GOT origin, 12 bit (Thumb32 LDR) |
R_ARM_THM_JUMP6 |
PC relative X & 0x7E (Thumb16 CBZ, CBNZ) |
R_ARM_THM_JUMP19 |
PC relative 20 bit (Thumb32 B |
R_ARM_THM_JUMP24 |
PC relative 24 bit (Thumb32 B.W) |
R_ARM_THM_MOVT_ABS |
Direct high 16 bit (Thumb32 MOVT) |
R_ARM_THM_MOVT_BREL |
Program base relative high 16 bit (Thumb32 MOVT) |
R_ARM_THM_MOVT_PREL |
PC relative high 16 bit (Thumb32 MOVT) |
R_ARM_THM_MOVW_ABS_NC |
Direct 16 bit (Thumb32 MOVW) |
R_ARM_THM_MOVW_BREL |
Program base relative 16 bit (Thumb32 MOVW) |
R_ARM_THM_MOVW_BREL_NC |
Program base relative 16 bit (Thumb32 MOVW) |
R_ARM_THM_MOVW_PREL_NC |
PC relative 16 bit (Thumb32 MOVW) |
R_ARM_THM_PC8 |
PC relative & 0x3FC(Thumb16 LDR, ADD, ADR). |
R_ARM_THM_PC9 |
PC relative & 0x1FE (Thumb16 B/B |
R_ARM_THM_PC11 |
PC relative & 0xFFE (Thumb16 B) |
R_ARM_THM_PC12 |
PC relative 12 bit (Thumb32 LDR{D,SB,H,SH}) |
R_ARM_THM_PC22 |
PC relative 24 bit (Thumb32 BL) |
R_ARM_THM_RPC22 | |
R_ARM_THM_SWI8 |
Reserved |
R_ARM_THM_TLS_CALL | |
R_ARM_THM_TLS_DESCSEQ | |
R_ARM_THM_TLS_DESCSEQ16 | |
R_ARM_THM_TLS_DESCSEQ32 | |
R_ARM_THM_XPC22 |
Reserved |
R_ARM_TLS_CALL | |
R_ARM_TLS_DESC |
Dynamic relocation |
R_ARM_TLS_DESCSEQ |
TLS relaxation |
R_ARM_TLS_DTPMOD32 |
ID of module containing symbol |
R_ARM_TLS_DTPOFF32 |
Offset in TLS block |
R_ARM_TLS_GD32 |
PC-rel 32 bit for global dynamic thread local data |
R_ARM_TLS_GOTDESC | |
R_ARM_TLS_IE32 |
PC-rel 32 bit for GOT entry of static TLS block offset |
R_ARM_TLS_IE12GP |
12 bit GOT entry relative to GOT origin (LDR) |
R_ARM_TLS_LDM32 |
PC-rel 32 bit for local dynamic thread local data |
R_ARM_TLS_LDO12 |
12 bit relative to TLS block (LDR, STR) |
R_ARM_TLS_LDO32 |
32 bit offset relative to TLS block |
R_ARM_TLS_LE12 |
12 bit relative to static TLS block (LDR, STR) |
R_ARM_TLS_LE32 |
32 bit offset relative to static TLS block |
R_ARM_TLS_TPOFF32 |
Offset in static TLS block |
R_ARM_V4BX | |
R_ARM_XPC25 |
Reserved |
R_MIPS_16 |
Direct 16 bit |
R_MIPS_26 |
Direct 26 bit shifted |
R_MIPS_32 |
Direct 32 bit |
R_MIPS_64 | |
R_MIPS_ADD_IMMEDIATE | |
R_MIPS_CALL16 |
16 bit GOT entry for function |
R_MIPS_CALL_HI16 | |
R_MIPS_CALL_LO16 | |
R_MIPS_COPY | |
R_MIPS_DELETE | |
R_MIPS_GLOB_DAT | |
R_MIPS_GOT16 |
16 bit GOT entry |
R_MIPS_GOT_DISP | |
R_MIPS_GOT_HI16 | |
R_MIPS_GOT_LO16 | |
R_MIPS_GOT_OFST | |
R_MIPS_GOT_PAGE | |
R_MIPS_GPREL16 |
GP relative 16 bit |
R_MIPS_GPREL32 |
GP relative 32 bit |
R_MIPS_HI16 |
High 16 bit |
R_MIPS_HIGHER | |
R_MIPS_HIGHEST | |
R_MIPS_INSERT_A | |
R_MIPS_INSERT_B | |
R_MIPS_JALR | |
R_MIPS_JUMP_SLOT | |
R_MIPS_LITERAL |
16 bit literal entry |
R_MIPS_LO16 |
Low 16 bit |
R_MIPS_NONE |
No reloc |
R_MIPS_NUM | |
R_MIPS_PC16 |
PC relative 16 bit |
R_MIPS_PJUMP | |
R_MIPS_REL16 | |
R_MIPS_REL32 |
PC relative 32 bit |
R_MIPS_RELGOT | |
R_MIPS_SCN_DISP | |
R_MIPS_SHIFT5 | |
R_MIPS_SHIFT6 | |
R_MIPS_SUB | |
R_MIPS_TLS_DTPMOD32 |
Module number 32 bit |
R_MIPS_TLS_DTPMOD64 |
Module number 64 bit |
R_MIPS_TLS_DTPREL32 |
Module-relative offset 32 bit |
R_MIPS_TLS_DTPREL64 |
Module-relative offset 64 bit |
R_MIPS_TLS_DTPREL_HI16 |
Module-relative offset, high 16 bits |
R_MIPS_TLS_DTPREL_LO16 |
Module-relative offset, low 16 bits |
R_MIPS_TLS_GD |
16 bit GOT offset for GD |
R_MIPS_TLS_GOTTPREL |
16 bit GOT offset for IE |
R_MIPS_TLS_LDM |
16 bit GOT offset for LDM |
R_MIPS_TLS_TPREL32 |
TP-relative offset, 32 bit6 |
R_MIPS_TLS_TPREL64 |
TP-relative offset, 64 bit |
R_MIPS_TLS_TPREL_HI16 |
TP-relative offset, high 16 bits |
R_MIPS_TLS_TPREL_LO16 |
TP-relative offset, low 16 bits |
R_OR1K_8 | |
R_OR1K_16 | |
R_OR1K_32 | |
R_OR1K_16_PCREL | |
R_OR1K_32_PCREL | |
R_OR1K_8_PCREL | |
R_OR1K_COPY | |
R_OR1K_GLOB_DAT | |
R_OR1K_GNU_VTENTRY | |
R_OR1K_GNU_VTINHERIT | |
R_OR1K_GOT16 | |
R_OR1K_GOTOFF_HI16 | |
R_OR1K_GOTOFF_LO16 | |
R_OR1K_GOTPC_HI16 | |
R_OR1K_GOTPC_LO16 | |
R_OR1K_HI_16_IN_INSN | |
R_OR1K_INSN_REL_26 | |
R_OR1K_JMP_SLOT | |
R_OR1K_LO_16_IN_INSN | |
R_OR1K_NONE | |
R_OR1K_NUM | |
R_OR1K_PLT26 | |
R_OR1K_RELATIVE | |
R_OR1K_TLS_DTPMOD | |
R_OR1K_TLS_DTPOFF | |
R_OR1K_TLS_GD_HI16 | |
R_OR1K_TLS_GD_LO16 | |
R_OR1K_TLS_IE_HI16 | |
R_OR1K_TLS_IE_LO16 | |
R_OR1K_TLS_LDM_HI16 | |
R_OR1K_TLS_LDM_LO16 | |
R_OR1K_TLS_LDO_HI16 | |
R_OR1K_TLS_LDO_LO16 | |
R_OR1K_TLS_LE_HI16 | |
R_OR1K_TLS_LE_LO16 | |
R_OR1K_TLS_TPOFF | |
R_X86_64_8 |
Direct 8 bit sign extended. |
R_X86_64_16 |
Direct 16 bit zero extended. |
R_X86_64_32 |
Direct 32 bit zero extended. |
R_X86_64_64 |
Direct 64 bit. |
R_X86_64_32S |
Direct 32 bit sign extended. |
R_X86_64_COPY |
Copy symbol at runtime. |
R_X86_64_DTPMOD64 |
ID of module containing symbol. |
R_X86_64_DTPOFF32 |
Offset in TLS block. |
R_X86_64_DTPOFF64 |
Offset in module's TLS block. |
R_X86_64_GLOB_DAT |
Create GOT entry. |
R_X86_64_GOT32 |
32 bit GOT entry. |
R_X86_64_GOT64 |
64-bit GOT entry offset. |
R_X86_64_GOTOFF64 |
64 bit offset to GOT. |
R_X86_64_GOTPC32 |
32 bit signed pc relative offset to GOT. |
R_X86_64_GOTPC64 |
64-bit PC relative offset to GOT. |
R_X86_64_GOTPC32_TLSDESC |
GOT offset for TLS descriptor.. |
R_X86_64_GOTPCREL |
32 bit signed PC relative offset to GOT. |
R_X86_64_GOTPCREL64 |
64-bit PC relative offset to GOT entry. |
R_X86_64_GOTPCRELX |
Load from 32 bit signed pc relative offset to GOT entry without REX prefix, relaxable. |
R_X86_64_GOTPLT64 |
like GOT64, says PLT entry needed. |
R_X86_64_GOTTPOFF |
32 bit signed PC relative offset to GOT entry for IE symbol. |
R_X86_64_IRELATIVE |
Adjust indirectly by program base. |
R_X86_64_JUMP_SLOT |
Create PLT entry. |
R_X86_64_NONE |
No reloc. |
R_X86_64_NUM | |
R_X86_64_PC8 |
8 bit sign extended pc relative. |
R_X86_64_PC16 |
16 bit sign extended pc relative. |
R_X86_64_PC32 |
PC relative 32 bit signed. |
R_X86_64_PC64 |
PC relative 64 bit. |
R_X86_64_PLT32 |
32 bit PLT address. |
R_X86_64_PLTOFF64 |
64-bit GOT relative offset to PLT entry. |
R_X86_64_RELATIVE |
Adjust by program base. |
R_X86_64_RELATIVE64 |
64-bit adjust by program base. |
R_X86_64_REX_GOTPCRELX |
Load from 32 bit signed pc relative offset to GOT entry with REX prefix, relaxable. |
R_X86_64_SIZE32 |
Size of symbol plus 32-bit addend. |
R_X86_64_SIZE64 |
Size of symbol plus 64-bit addend. |
R_X86_64_TLSDESC |
TLS descriptor.. |
R_X86_64_TLSDESC_CALL |
Marker for call through TLS descriptor.. |
R_X86_64_TLSGD |
32 bit signed PC relative offset to two GOT entries for GD symbol. |
R_X86_64_TLSLD |
32 bit signed PC relative offset to two GOT entries for LD symbol. |
R_X86_64_TPOFF32 |
Offset in initial TLS block. |
R_X86_64_TPOFF64 |
Offset in initial TLS block. |
Functions
r_to_str |