| ## Check obj2yaml is able to decode all PPC64 relocations. |
| |
| # RUN: yaml2obj %s -o %t |
| # RUN: obj2yaml %t | FileCheck %s |
| |
| # CHECK: --- !ELF |
| # CHECK-NEXT: FileHeader: |
| # CHECK-NEXT: Class: ELFCLASS64 |
| # CHECK-NEXT: Data: ELFDATA2MSB |
| # CHECK-NEXT: Type: ET_REL |
| # CHECK-NEXT: Machine: EM_PPC64 |
| # CHECK-NEXT: Sections: |
| # CHECK-NEXT: - Name: .rela.text |
| # CHECK-NEXT: Type: SHT_RELA |
| # CHECK-NEXT: Relocations: |
| # CHECK-NEXT: - Type: R_PPC64_NONE |
| # CHECK-NEXT: - Type: R_PPC64_ADDR32 |
| # CHECK-NEXT: - Type: R_PPC64_ADDR24 |
| # CHECK-NEXT: - Type: R_PPC64_ADDR16 |
| # CHECK-NEXT: - Type: R_PPC64_ADDR16_LO |
| # CHECK-NEXT: - Type: R_PPC64_ADDR16_HI |
| # CHECK-NEXT: - Type: R_PPC64_ADDR16_HA |
| # CHECK-NEXT: - Type: R_PPC64_ADDR14 |
| # CHECK-NEXT: - Type: R_PPC64_ADDR14_BRTAKEN |
| # CHECK-NEXT: - Type: R_PPC64_ADDR14_BRNTAKEN |
| # CHECK-NEXT: - Type: R_PPC64_REL24 |
| # CHECK-NEXT: - Type: R_PPC64_REL14 |
| # CHECK-NEXT: - Type: R_PPC64_REL14_BRTAKEN |
| # CHECK-NEXT: - Type: R_PPC64_REL14_BRNTAKEN |
| # CHECK-NEXT: - Type: R_PPC64_GOT16 |
| # CHECK-NEXT: - Type: R_PPC64_GOT16_LO |
| # CHECK-NEXT: - Type: R_PPC64_GOT16_HI |
| # CHECK-NEXT: - Type: R_PPC64_GOT16_HA |
| # CHECK-NEXT: - Type: R_PPC64_GLOB_DAT |
| # CHECK-NEXT: - Type: R_PPC64_JMP_SLOT |
| # CHECK-NEXT: - Type: R_PPC64_RELATIVE |
| # CHECK-NEXT: - Type: R_PPC64_REL32 |
| # CHECK-NEXT: - Type: R_PPC64_ADDR64 |
| # CHECK-NEXT: - Type: R_PPC64_ADDR16_HIGHER |
| # CHECK-NEXT: - Type: R_PPC64_ADDR16_HIGHERA |
| # CHECK-NEXT: - Type: R_PPC64_ADDR16_HIGHEST |
| # CHECK-NEXT: - Type: R_PPC64_ADDR16_HIGHESTA |
| # CHECK-NEXT: - Type: R_PPC64_REL64 |
| # CHECK-NEXT: - Type: R_PPC64_TOC16 |
| # CHECK-NEXT: - Type: R_PPC64_TOC16_LO |
| # CHECK-NEXT: - Type: R_PPC64_TOC16_HI |
| # CHECK-NEXT: - Type: R_PPC64_TOC16_HA |
| # CHECK-NEXT: - Type: R_PPC64_TOC |
| # CHECK-NEXT: - Type: R_PPC64_ADDR16_DS |
| # CHECK-NEXT: - Type: R_PPC64_ADDR16_LO_DS |
| # CHECK-NEXT: - Type: R_PPC64_GOT16_DS |
| # CHECK-NEXT: - Type: R_PPC64_GOT16_LO_DS |
| # CHECK-NEXT: - Type: R_PPC64_TOC16_DS |
| # CHECK-NEXT: - Type: R_PPC64_TOC16_LO_DS |
| # CHECK-NEXT: - Type: R_PPC64_TLS |
| # CHECK-NEXT: - Type: R_PPC64_DTPMOD64 |
| # CHECK-NEXT: - Type: R_PPC64_TPREL16 |
| # CHECK-NEXT: - Type: R_PPC64_TPREL16_LO |
| # CHECK-NEXT: - Type: R_PPC64_TPREL16_HI |
| # CHECK-NEXT: - Type: R_PPC64_TPREL16_HA |
| # CHECK-NEXT: - Type: R_PPC64_TPREL64 |
| # CHECK-NEXT: - Type: R_PPC64_DTPREL16 |
| # CHECK-NEXT: - Type: R_PPC64_DTPREL16_LO |
| # CHECK-NEXT: - Type: R_PPC64_DTPREL16_HI |
| # CHECK-NEXT: - Type: R_PPC64_DTPREL16_HA |
| # CHECK-NEXT: - Type: R_PPC64_DTPREL64 |
| # CHECK-NEXT: - Type: R_PPC64_GOT_TLSGD16 |
| # CHECK-NEXT: - Type: R_PPC64_GOT_TLSGD16_LO |
| # CHECK-NEXT: - Type: R_PPC64_GOT_TLSGD16_HI |
| # CHECK-NEXT: - Type: R_PPC64_GOT_TLSGD16_HA |
| # CHECK-NEXT: - Type: R_PPC64_GOT_TLSLD16 |
| # CHECK-NEXT: - Type: R_PPC64_GOT_TLSLD16_LO |
| # CHECK-NEXT: - Type: R_PPC64_GOT_TLSLD16_HI |
| # CHECK-NEXT: - Type: R_PPC64_GOT_TLSLD16_HA |
| # CHECK-NEXT: - Type: R_PPC64_GOT_TPREL16_DS |
| # CHECK-NEXT: - Type: R_PPC64_GOT_TPREL16_LO_DS |
| # CHECK-NEXT: - Type: R_PPC64_GOT_TPREL16_HI |
| # CHECK-NEXT: - Type: R_PPC64_GOT_TPREL16_HA |
| # CHECK-NEXT: - Type: R_PPC64_GOT_DTPREL16_DS |
| # CHECK-NEXT: - Type: R_PPC64_GOT_DTPREL16_LO_DS |
| # CHECK-NEXT: - Type: R_PPC64_GOT_DTPREL16_HI |
| # CHECK-NEXT: - Type: R_PPC64_GOT_DTPREL16_HA |
| # CHECK-NEXT: - Type: R_PPC64_TPREL16_DS |
| # CHECK-NEXT: - Type: R_PPC64_TPREL16_LO_DS |
| # CHECK-NEXT: - Type: R_PPC64_TPREL16_HIGHER |
| # CHECK-NEXT: - Type: R_PPC64_TPREL16_HIGHERA |
| # CHECK-NEXT: - Type: R_PPC64_TPREL16_HIGHEST |
| # CHECK-NEXT: - Type: R_PPC64_TPREL16_HIGHESTA |
| # CHECK-NEXT: - Type: R_PPC64_DTPREL16_DS |
| # CHECK-NEXT: - Type: R_PPC64_DTPREL16_LO_DS |
| # CHECK-NEXT: - Type: R_PPC64_DTPREL16_HIGHER |
| # CHECK-NEXT: - Type: R_PPC64_DTPREL16_HIGHERA |
| # CHECK-NEXT: - Type: R_PPC64_DTPREL16_HIGHEST |
| # CHECK-NEXT: - Type: R_PPC64_DTPREL16_HIGHESTA |
| # CHECK-NEXT: - Type: R_PPC64_TLSGD |
| # CHECK-NEXT: - Type: R_PPC64_TLSLD |
| # CHECK-NEXT: - Type: R_PPC64_ADDR16_HIGH |
| # CHECK-NEXT: - Type: R_PPC64_ADDR16_HIGHA |
| # CHECK-NEXT: - Type: R_PPC64_TPREL16_HIGH |
| # CHECK-NEXT: - Type: R_PPC64_TPREL16_HIGHA |
| # CHECK-NEXT: - Type: R_PPC64_DTPREL16_HIGH |
| # CHECK-NEXT: - Type: R_PPC64_DTPREL16_HIGHA |
| # CHECK-NEXT: - Type: R_PPC64_IRELATIVE |
| # CHECK-NEXT: - Type: R_PPC64_REL16 |
| # CHECK-NEXT: - Type: R_PPC64_REL16_LO |
| # CHECK-NEXT: - Type: R_PPC64_REL16_HI |
| # CHECK-NEXT: - Type: R_PPC64_REL16_HA |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2MSB |
| Type: ET_REL |
| Machine: EM_PPC64 |
| Sections: |
| - Name: .rela.text |
| Type: SHT_RELA |
| Relocations: |
| - Type: R_PPC64_NONE |
| - Type: R_PPC64_ADDR32 |
| - Type: R_PPC64_ADDR24 |
| - Type: R_PPC64_ADDR16 |
| - Type: R_PPC64_ADDR16_LO |
| - Type: R_PPC64_ADDR16_HI |
| - Type: R_PPC64_ADDR16_HA |
| - Type: R_PPC64_ADDR14 |
| - Type: R_PPC64_ADDR14_BRTAKEN |
| - Type: R_PPC64_ADDR14_BRNTAKEN |
| - Type: R_PPC64_REL24 |
| - Type: R_PPC64_REL14 |
| - Type: R_PPC64_REL14_BRTAKEN |
| - Type: R_PPC64_REL14_BRNTAKEN |
| - Type: R_PPC64_GOT16 |
| - Type: R_PPC64_GOT16_LO |
| - Type: R_PPC64_GOT16_HI |
| - Type: R_PPC64_GOT16_HA |
| - Type: R_PPC64_GLOB_DAT |
| - Type: R_PPC64_JMP_SLOT |
| - Type: R_PPC64_RELATIVE |
| - Type: R_PPC64_REL32 |
| - Type: R_PPC64_ADDR64 |
| - Type: R_PPC64_ADDR16_HIGHER |
| - Type: R_PPC64_ADDR16_HIGHERA |
| - Type: R_PPC64_ADDR16_HIGHEST |
| - Type: R_PPC64_ADDR16_HIGHESTA |
| - Type: R_PPC64_REL64 |
| - Type: R_PPC64_TOC16 |
| - Type: R_PPC64_TOC16_LO |
| - Type: R_PPC64_TOC16_HI |
| - Type: R_PPC64_TOC16_HA |
| - Type: R_PPC64_TOC |
| - Type: R_PPC64_ADDR16_DS |
| - Type: R_PPC64_ADDR16_LO_DS |
| - Type: R_PPC64_GOT16_DS |
| - Type: R_PPC64_GOT16_LO_DS |
| - Type: R_PPC64_TOC16_DS |
| - Type: R_PPC64_TOC16_LO_DS |
| - Type: R_PPC64_TLS |
| - Type: R_PPC64_DTPMOD64 |
| - Type: R_PPC64_TPREL16 |
| - Type: R_PPC64_TPREL16_LO |
| - Type: R_PPC64_TPREL16_HI |
| - Type: R_PPC64_TPREL16_HA |
| - Type: R_PPC64_TPREL64 |
| - Type: R_PPC64_DTPREL16 |
| - Type: R_PPC64_DTPREL16_LO |
| - Type: R_PPC64_DTPREL16_HI |
| - Type: R_PPC64_DTPREL16_HA |
| - Type: R_PPC64_DTPREL64 |
| - Type: R_PPC64_GOT_TLSGD16 |
| - Type: R_PPC64_GOT_TLSGD16_LO |
| - Type: R_PPC64_GOT_TLSGD16_HI |
| - Type: R_PPC64_GOT_TLSGD16_HA |
| - Type: R_PPC64_GOT_TLSLD16 |
| - Type: R_PPC64_GOT_TLSLD16_LO |
| - Type: R_PPC64_GOT_TLSLD16_HI |
| - Type: R_PPC64_GOT_TLSLD16_HA |
| - Type: R_PPC64_GOT_TPREL16_DS |
| - Type: R_PPC64_GOT_TPREL16_LO_DS |
| - Type: R_PPC64_GOT_TPREL16_HI |
| - Type: R_PPC64_GOT_TPREL16_HA |
| - Type: R_PPC64_GOT_DTPREL16_DS |
| - Type: R_PPC64_GOT_DTPREL16_LO_DS |
| - Type: R_PPC64_GOT_DTPREL16_HI |
| - Type: R_PPC64_GOT_DTPREL16_HA |
| - Type: R_PPC64_TPREL16_DS |
| - Type: R_PPC64_TPREL16_LO_DS |
| - Type: R_PPC64_TPREL16_HIGHER |
| - Type: R_PPC64_TPREL16_HIGHERA |
| - Type: R_PPC64_TPREL16_HIGHEST |
| - Type: R_PPC64_TPREL16_HIGHESTA |
| - Type: R_PPC64_DTPREL16_DS |
| - Type: R_PPC64_DTPREL16_LO_DS |
| - Type: R_PPC64_DTPREL16_HIGHER |
| - Type: R_PPC64_DTPREL16_HIGHERA |
| - Type: R_PPC64_DTPREL16_HIGHEST |
| - Type: R_PPC64_DTPREL16_HIGHESTA |
| - Type: R_PPC64_TLSGD |
| - Type: R_PPC64_TLSLD |
| - Type: R_PPC64_ADDR16_HIGH |
| - Type: R_PPC64_ADDR16_HIGHA |
| - Type: R_PPC64_TPREL16_HIGH |
| - Type: R_PPC64_TPREL16_HIGHA |
| - Type: R_PPC64_DTPREL16_HIGH |
| - Type: R_PPC64_DTPREL16_HIGHA |
| - Type: R_PPC64_IRELATIVE |
| - Type: R_PPC64_REL16 |
| - Type: R_PPC64_REL16_LO |
| - Type: R_PPC64_REL16_HI |
| - Type: R_PPC64_REL16_HA |