| ## Test certain REL relocation types generated by legacy armasm. |
| # RUN: yaml2obj %s -o %t.o |
| # RUN: not ld.lld %t.o -o /dev/null 2>&1 | FileCheck %s |
| |
| # CHECK-COUNT-17: internal linker error: cannot read addend |
| |
| --- |
| !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_AARCH64 |
| Sections: |
| - Name: .abs |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| Content: fffffefffffffdfffffffffffffffcffffffffffffff |
| - Name: .rel.abs |
| Type: SHT_REL |
| Link: .symtab |
| Info: .abs |
| Relocations: |
| - {Offset: 0, Symbol: abs, Type: R_AARCH64_ABS16} |
| - {Offset: 2, Symbol: abs, Type: R_AARCH64_ABS32} |
| - {Offset: 6, Symbol: abs, Type: R_AARCH64_ABS64} |
| - {Offset: 14, Symbol: abs, Type: R_AARCH64_ADD_ABS_LO12_NC} |
| |
| - Name: .uabs |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| AddressAlign: 4 |
| Content: 00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff |
| - Name: .rel.uabs |
| Type: SHT_REL |
| Link: .symtab |
| Info: .uabs |
| Relocations: |
| - {Offset: 0, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G0} |
| - {Offset: 4, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G0_NC} |
| - {Offset: 8, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G1} |
| - {Offset: 12, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G1_NC} |
| - {Offset: 16, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G2} |
| - {Offset: 20, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G2_NC} |
| |
| - Name: .prel |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| AddressAlign: 4 |
| Content: 00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff |
| - Name: .rel.prel |
| Type: SHT_REL |
| Link: .symtab |
| Info: .prel |
| Relocations: |
| - {Offset: 0, Symbol: .prel, Type: R_AARCH64_PREL64} |
| - {Offset: 4, Symbol: .prel, Type: R_AARCH64_PREL32} |
| - {Offset: 8, Symbol: .prel, Type: R_AARCH64_PREL16} |
| - {Offset: 12, Symbol: .prel, Type: R_AARCH64_LD_PREL_LO19} |
| - {Offset: 16, Symbol: .prel, Type: R_AARCH64_ADR_PREL_PG_HI21} |
| - {Offset: 20, Symbol: .prel, Type: R_AARCH64_ADR_PREL_PG_HI21_NC} |
| |
| - Name: .branch |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| AddressAlign: 4 |
| Content: f0fffffff0fffffff0fffffff0ffffff |
| - Name: .rel.branch |
| Type: SHT_REL |
| Link: .symtab |
| Info: .branch |
| Relocations: |
| - {Offset: 0, Symbol: .branch, Type: R_AARCH64_TSTBR14} |
| - {Offset: 4, Symbol: .branch, Type: R_AARCH64_CONDBR19} |
| - {Offset: 8, Symbol: .branch, Type: R_AARCH64_CALL26} |
| - {Offset: 12, Symbol: .branch, Type: R_AARCH64_JUMP26} |
| |
| Symbols: |
| - Name: .branch |
| Section: .branch |
| - Name: .prel |
| Section: .prel |
| - Name: abs |
| Index: SHN_ABS |
| Value: 42 |
| Binding: STB_GLOBAL |