## Test that llvm-readobj shows proper relocation type
## names and values for ppc target.
# RUN: yaml2obj %s -o %t-ppc.o
# RUN: llvm-readobj -r --expand-relocs %t-ppc.o | FileCheck %s
# CHECK: Type: R_PPC_NONE (0)
# CHECK: Type: R_PPC_ADDR32 (1)
# CHECK: Type: R_PPC_ADDR24 (2)
# CHECK: Type: R_PPC_ADDR16 (3)
# CHECK: Type: R_PPC_ADDR16_LO (4)
# CHECK: Type: R_PPC_ADDR16_HI (5)
# CHECK: Type: R_PPC_ADDR16_HA (6)
# CHECK: Type: R_PPC_ADDR14 (7)
# CHECK: Type: R_PPC_ADDR14_BRTAKEN (8)
# CHECK: Type: R_PPC_ADDR14_BRNTAKEN (9)
# CHECK: Type: R_PPC_REL24 (10)
# CHECK: Type: R_PPC_REL14 (11)
# CHECK: Type: R_PPC_REL14_BRTAKEN (12)
# CHECK: Type: R_PPC_REL14_BRNTAKEN (13)
# CHECK: Type: R_PPC_GOT16 (14)
# CHECK: Type: R_PPC_GOT16_LO (15)
# CHECK: Type: R_PPC_GOT16_HI (16)
# CHECK: Type: R_PPC_GOT16_HA (17)
# CHECK: Type: R_PPC_PLTREL24 (18)
# CHECK: Type: R_PPC_COPY (19)
# CHECK: Type: R_PPC_GLOB_DAT (20)
# CHECK: Type: R_PPC_JMP_SLOT (21)
# CHECK: Type: R_PPC_RELATIVE (22)
# CHECK: Type: R_PPC_LOCAL24PC (23)
# CHECK: Type: R_PPC_UADDR32 (24)
# CHECK: Type: R_PPC_UADDR16 (25)
# CHECK: Type: R_PPC_REL32 (26)
# CHECK: Type: R_PPC_PLT32 (27)
# CHECK: Type: R_PPC_PLTREL32 (28)
# CHECK: Type: R_PPC_PLT16_LO (29)
# CHECK: Type: R_PPC_PLT16_HI (30)
# CHECK: Type: R_PPC_PLT16_HA (31)
# CHECK: Type: R_PPC_SDAREL16 (32)
# CHECK: Type: R_PPC_SECTOFF (33)
# CHECK: Type: R_PPC_SECTOFF_LO (34)
# CHECK: Type: R_PPC_SECTOFF_HI (35)
# CHECK: Type: R_PPC_SECTOFF_HA (36)
# CHECK: Type: R_PPC_ADDR30 (37)
# CHECK: Type: R_PPC_TLS (67)
# CHECK: Type: R_PPC_DTPMOD32 (68)
# CHECK: Type: R_PPC_TPREL16 (69)
# CHECK: Type: R_PPC_TPREL16_LO (70)
# CHECK: Type: R_PPC_TPREL16_HI (71)
# CHECK: Type: R_PPC_TPREL16_HA (72)
# CHECK: Type: R_PPC_TPREL32 (73)
# CHECK: Type: R_PPC_DTPREL16 (74)
# CHECK: Type: R_PPC_DTPREL16_LO (75)
# CHECK: Type: R_PPC_DTPREL16_HI (76)
# CHECK: Type: R_PPC_DTPREL16_HA (77)
# CHECK: Type: R_PPC_DTPREL32 (78)
# CHECK: Type: R_PPC_GOT_TLSGD16 (79)
# CHECK: Type: R_PPC_GOT_TLSGD16_LO (80)
# CHECK: Type: R_PPC_GOT_TLSGD16_HI (81)
# CHECK: Type: R_PPC_GOT_TLSGD16_HA (82)
# CHECK: Type: R_PPC_GOT_TLSLD16 (83)
# CHECK: Type: R_PPC_GOT_TLSLD16_LO (84)
# CHECK: Type: R_PPC_GOT_TLSLD16_HI (85)
# CHECK: Type: R_PPC_GOT_TLSLD16_HA (86)
# CHECK: Type: R_PPC_GOT_TPREL16 (87)
# CHECK: Type: R_PPC_GOT_TPREL16_LO (88)
# CHECK: Type: R_PPC_GOT_TPREL16_HI (89)
# CHECK: Type: R_PPC_GOT_TPREL16_HA (90)
# CHECK: Type: R_PPC_GOT_DTPREL16 (91)
# CHECK: Type: R_PPC_GOT_DTPREL16_LO (92)
# CHECK: Type: R_PPC_GOT_DTPREL16_HI (93)
# CHECK: Type: R_PPC_GOT_DTPREL16_HA (94)
# CHECK: Type: R_PPC_TLSGD (95)
# CHECK: Type: R_PPC_TLSLD (96)
# CHECK: Type: R_PPC_IRELATIVE (248)
# CHECK: Type: R_PPC_REL16 (249)
# CHECK: Type: R_PPC_REL16_LO (250)
# CHECK: Type: R_PPC_REL16_HI (251)
# CHECK: Type: R_PPC_REL16_HA (252)
--- !ELF
FileHeader:
Class: ELFCLASS32
Data: ELFDATA2MSB
Type: ET_REL
Machine: EM_PPC
Sections:
- Name: .rela.text
Type: SHT_RELA
Relocations:
- Type: R_PPC_NONE
- Type: R_PPC_ADDR32
- Type: R_PPC_ADDR24
- Type: R_PPC_ADDR16
- Type: R_PPC_ADDR16_LO
- Type: R_PPC_ADDR16_HI
- Type: R_PPC_ADDR16_HA
- Type: R_PPC_ADDR14
- Type: R_PPC_ADDR14_BRTAKEN
- Type: R_PPC_ADDR14_BRNTAKEN
- Type: R_PPC_REL24
- Type: R_PPC_REL14
- Type: R_PPC_REL14_BRTAKEN
- Type: R_PPC_REL14_BRNTAKEN
- Type: R_PPC_GOT16
- Type: R_PPC_GOT16_LO
- Type: R_PPC_GOT16_HI
- Type: R_PPC_GOT16_HA
- Type: R_PPC_PLTREL24
- Type: R_PPC_COPY
- Type: R_PPC_GLOB_DAT
- Type: R_PPC_JMP_SLOT
- Type: R_PPC_RELATIVE
- Type: R_PPC_LOCAL24PC
- Type: R_PPC_UADDR32
- Type: R_PPC_UADDR16
- Type: R_PPC_REL32
- Type: R_PPC_PLT32
- Type: R_PPC_PLTREL32
- Type: R_PPC_PLT16_LO
- Type: R_PPC_PLT16_HI
- Type: R_PPC_PLT16_HA
- Type: R_PPC_SDAREL16
- Type: R_PPC_SECTOFF
- Type: R_PPC_SECTOFF_LO
- Type: R_PPC_SECTOFF_HI
- Type: R_PPC_SECTOFF_HA
- Type: R_PPC_ADDR30
- Type: R_PPC_TLS
- Type: R_PPC_DTPMOD32
- Type: R_PPC_TPREL16
- Type: R_PPC_TPREL16_LO
- Type: R_PPC_TPREL16_HI
- Type: R_PPC_TPREL16_HA
- Type: R_PPC_TPREL32
- Type: R_PPC_DTPREL16
- Type: R_PPC_DTPREL16_LO
- Type: R_PPC_DTPREL16_HI
- Type: R_PPC_DTPREL16_HA
- Type: R_PPC_DTPREL32
- Type: R_PPC_GOT_TLSGD16
- Type: R_PPC_GOT_TLSGD16_LO
- Type: R_PPC_GOT_TLSGD16_HI
- Type: R_PPC_GOT_TLSGD16_HA
- Type: R_PPC_GOT_TLSLD16
- Type: R_PPC_GOT_TLSLD16_LO
- Type: R_PPC_GOT_TLSLD16_HI
- Type: R_PPC_GOT_TLSLD16_HA
- Type: R_PPC_GOT_TPREL16
- Type: R_PPC_GOT_TPREL16_LO
- Type: R_PPC_GOT_TPREL16_HI
- Type: R_PPC_GOT_TPREL16_HA
- Type: R_PPC_GOT_DTPREL16
- Type: R_PPC_GOT_DTPREL16_LO
- Type: R_PPC_GOT_DTPREL16_HI
- Type: R_PPC_GOT_DTPREL16_HA
- Type: R_PPC_TLSGD
- Type: R_PPC_TLSLD
- Type: R_PPC_IRELATIVE
- Type: R_PPC_REL16
- Type: R_PPC_REL16_LO
- Type: R_PPC_REL16_HI
- Type: R_PPC_REL16_HA