## Test that llvm-readobj/llvm-readelf shows proper relocation type
## names and values for i386 target.
# RUN: yaml2obj %s -o %t-i386.o
# RUN: llvm-readobj -r --expand-relocs %t-i386.o | FileCheck %s --check-prefix=LLVM
# RUN: llvm-readelf -r --expand-relocs %t-i386.o | FileCheck %s --check-prefix=GNU
# LLVM: Type: R_386_NONE (0)
# LLVM: Type: R_386_32 (1)
# LLVM: Type: R_386_PC32 (2)
# LLVM: Type: R_386_GOT32 (3)
# LLVM: Type: R_386_PLT32 (4)
# LLVM: Type: R_386_COPY (5)
# LLVM: Type: R_386_GLOB_DAT (6)
# LLVM: Type: R_386_JUMP_SLOT (7)
# LLVM: Type: R_386_RELATIVE (8)
# LLVM: Type: R_386_GOTOFF (9)
# LLVM: Type: R_386_GOTPC (10)
# LLVM: Type: R_386_32PLT (11)
# LLVM: Type: R_386_TLS_TPOFF (14)
# LLVM: Type: R_386_TLS_IE (15)
# LLVM: Type: R_386_TLS_GOTIE (16)
# LLVM: Type: R_386_TLS_LE (17)
# LLVM: Type: R_386_TLS_GD (18)
# LLVM: Type: R_386_TLS_LDM (19)
# LLVM: Type: R_386_16 (20)
# LLVM: Type: R_386_PC16 (21)
# LLVM: Type: R_386_8 (22)
# LLVM: Type: R_386_PC8 (23)
# LLVM: Type: R_386_TLS_GD_32 (24)
# LLVM: Type: R_386_TLS_GD_PUSH (25)
# LLVM: Type: R_386_TLS_GD_CALL (26)
# LLVM: Type: R_386_TLS_GD_POP (27)
# LLVM: Type: R_386_TLS_LDM_32 (28)
# LLVM: Type: R_386_TLS_LDM_PUSH (29)
# LLVM: Type: R_386_TLS_LDM_CALL (30)
# LLVM: Type: R_386_TLS_LDM_POP (31)
# LLVM: Type: R_386_TLS_LDO_32 (32)
# LLVM: Type: R_386_TLS_IE_32 (33)
# LLVM: Type: R_386_TLS_LE_32 (34)
# LLVM: Type: R_386_TLS_DTPMOD32 (35)
# LLVM: Type: R_386_TLS_DTPOFF32 (36)
# LLVM: Type: R_386_TLS_TPOFF32 (37)
# LLVM: Type: R_386_TLS_GOTDESC (39)
# LLVM: Type: R_386_TLS_DESC_CALL (40)
# LLVM: Type: R_386_TLS_DESC (41)
# LLVM: Type: R_386_IRELATIVE (42)
# LLVM: Type: R_386_GOT32X (43)
# GNU: Relocation section '.rel.text' at offset 0x34 contains 41 entries:
# GNU-NEXT: Offset Info Type Sym. Value Symbol's Name
# GNU-NEXT: 00000002 00000100 R_386_NONE 00000000 foo
# GNU-NEXT: 00000008 00000101 R_386_32 00000000 foo
# GNU-NEXT: 0000000e 00000102 R_386_PC32 00000000 foo
# GNU-NEXT: 00000014 00000103 R_386_GOT32 00000000 foo
# GNU-NEXT: 0000001a 00000104 R_386_PLT32 00000000 foo
# GNU-NEXT: 00000020 00000105 R_386_COPY 00000000 foo
# GNU-NEXT: 00000026 00000106 R_386_GLOB_DAT 00000000 foo
# GNU-NEXT: 0000002c 00000107 R_386_JUMP_SLOT 00000000 foo
# GNU-NEXT: 00000032 00000108 R_386_RELATIVE 00000000 foo
# GNU-NEXT: 00000038 00000109 R_386_GOTOFF 00000000 foo
# GNU-NEXT: 0000003e 0000010a R_386_GOTPC 00000000 foo
# GNU-NEXT: 00000044 0000010b R_386_32PLT 00000000 foo
# GNU-NEXT: 0000004a 0000010e R_386_TLS_TPOFF 00000000 foo
# GNU-NEXT: 00000050 0000010f R_386_TLS_IE 00000000 foo
# GNU-NEXT: 00000056 00000110 R_386_TLS_GOTIE 00000000 foo
# GNU-NEXT: 0000005c 00000111 R_386_TLS_LE 00000000 foo
# GNU-NEXT: 00000062 00000112 R_386_TLS_GD 00000000 foo
# GNU-NEXT: 00000068 00000113 R_386_TLS_LDM 00000000 foo
# GNU-NEXT: 0000006e 00000114 R_386_16 00000000 foo
# GNU-NEXT: 00000074 00000115 R_386_PC16 00000000 foo
# GNU-NEXT: 0000007a 00000116 R_386_8 00000000 foo
# GNU-NEXT: 00000080 00000117 R_386_PC8 00000000 foo
# GNU-NEXT: 00000086 00000118 R_386_TLS_GD_32 00000000 foo
# GNU-NEXT: 0000008c 00000119 R_386_TLS_GD_PUSH 00000000 foo
# GNU-NEXT: 00000092 0000011a R_386_TLS_GD_CALL 00000000 foo
# GNU-NEXT: 00000098 0000011b R_386_TLS_GD_POP 00000000 foo
# GNU-NEXT: 0000009e 0000011c R_386_TLS_LDM_32 00000000 foo
# GNU-NEXT: 000000a4 0000011d R_386_TLS_LDM_PUSH 00000000 foo
# GNU-NEXT: 000000aa 0000011e R_386_TLS_LDM_CALL 00000000 foo
# GNU-NEXT: 000000b0 0000011f R_386_TLS_LDM_POP 00000000 foo
# GNU-NEXT: 000000b6 00000120 R_386_TLS_LDO_32 00000000 foo
# GNU-NEXT: 000000bc 00000121 R_386_TLS_IE_32 00000000 foo
# GNU-NEXT: 000000c2 00000122 R_386_TLS_LE_32 00000000 foo
# GNU-NEXT: 000000c8 00000123 R_386_TLS_DTPMOD32 00000000 foo
# GNU-NEXT: 000000ce 00000124 R_386_TLS_DTPOFF32 00000000 foo
# GNU-NEXT: 000000d4 00000125 R_386_TLS_TPOFF32 00000000 foo
# GNU-NEXT: 000000da 00000127 R_386_TLS_GOTDESC 00000000 foo
# GNU-NEXT: 000000e0 00000128 R_386_TLS_DESC_CALL 00000000 foo
# GNU-NEXT: 000000e6 00000129 R_386_TLS_DESC 00000000 foo
# GNU-NEXT: 000000ec 0000012a R_386_IRELATIVE 00000000 foo
# GNU-NEXT: 000000f2 0000012b R_386_GOT32X 00000000 foo
--- !ELF
FileHeader:
Class: ELFCLASS32
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_386
Sections:
- Name: .rel.text
Type: SHT_REL
Link: .symtab
Relocations:
- Offset: 0x0000000000000002
Type: R_386_NONE
Symbol: foo
- Offset: 0x0000000000000008
Type: R_386_32
Symbol: foo
- Offset: 0x000000000000000E
Type: R_386_PC32
Symbol: foo
- Offset: 0x0000000000000014
Type: R_386_GOT32
Symbol: foo
- Offset: 0x000000000000001A
Type: R_386_PLT32
Symbol: foo
- Offset: 0x0000000000000020
Type: R_386_COPY
Symbol: foo
- Offset: 0x0000000000000026
Type: R_386_GLOB_DAT
Symbol: foo
- Offset: 0x000000000000002C
Type: R_386_JUMP_SLOT
Symbol: foo
- Offset: 0x0000000000000032
Type: R_386_RELATIVE
Symbol: foo
- Offset: 0x0000000000000038
Type: R_386_GOTOFF
Symbol: foo
- Offset: 0x000000000000003E
Type: R_386_GOTPC
Symbol: foo
- Offset: 0x0000000000000044
Type: R_386_32PLT
Symbol: foo
- Offset: 0x000000000000004A
Type: R_386_TLS_TPOFF
Symbol: foo
- Offset: 0x0000000000000050
Type: R_386_TLS_IE
Symbol: foo
- Offset: 0x0000000000000056
Type: R_386_TLS_GOTIE
Symbol: foo
- Offset: 0x000000000000005C
Type: R_386_TLS_LE
Symbol: foo
- Offset: 0x0000000000000062
Type: R_386_TLS_GD
Symbol: foo
- Offset: 0x0000000000000068
Type: R_386_TLS_LDM
Symbol: foo
- Offset: 0x000000000000006E
Type: R_386_16
Symbol: foo
- Offset: 0x0000000000000074
Type: R_386_PC16
Symbol: foo
- Offset: 0x000000000000007A
Type: R_386_8
Symbol: foo
- Offset: 0x0000000000000080
Type: R_386_PC8
Symbol: foo
- Offset: 0x0000000000000086
Type: R_386_TLS_GD_32
Symbol: foo
- Offset: 0x000000000000008C
Type: R_386_TLS_GD_PUSH
Symbol: foo
- Offset: 0x0000000000000092
Type: R_386_TLS_GD_CALL
Symbol: foo
- Offset: 0x0000000000000098
Type: R_386_TLS_GD_POP
Symbol: foo
- Offset: 0x000000000000009E
Type: R_386_TLS_LDM_32
Symbol: foo
- Offset: 0x00000000000000A4
Type: R_386_TLS_LDM_PUSH
Symbol: foo
- Offset: 0x00000000000000AA
Type: R_386_TLS_LDM_CALL
Symbol: foo
- Offset: 0x00000000000000B0
Type: R_386_TLS_LDM_POP
Symbol: foo
- Offset: 0x00000000000000B6
Type: R_386_TLS_LDO_32
Symbol: foo
- Offset: 0x00000000000000BC
Type: R_386_TLS_IE_32
Symbol: foo
- Offset: 0x00000000000000C2
Type: R_386_TLS_LE_32
Symbol: foo
- Offset: 0x00000000000000C8
Type: R_386_TLS_DTPMOD32
Symbol: foo
- Offset: 0x00000000000000CE
Type: R_386_TLS_DTPOFF32
Symbol: foo
- Offset: 0x00000000000000D4
Type: R_386_TLS_TPOFF32
Symbol: foo
- Offset: 0x00000000000000DA
Type: R_386_TLS_GOTDESC
Symbol: foo
- Offset: 0x00000000000000E0
Type: R_386_TLS_DESC_CALL
Symbol: foo
- Offset: 0x00000000000000E6
Type: R_386_TLS_DESC
Symbol: foo
- Offset: 0x00000000000000EC
Type: R_386_IRELATIVE
Symbol: foo
- Offset: 0x00000000000000F2
Type: R_386_GOT32X
Symbol: foo
Symbols:
- Name: foo
Binding: STB_GLOBAL