| # RUN: yaml2obj -DMACHINE=AARCH64 %s -o %t.o | |
| # RUN: ld.lld --gc-sections %t.o -o %t | |
| # RUN: llvm-readelf -S -r %t | FileCheck %s | |
| ## Test that we discard R_*_NONE, but respect the references it creates | |
| ## among sections. | |
| # CHECK: .data | |
| # CHECK: There are no relocations in this file. | |
| # RUN: ld.lld -r %t.o -o %t | |
| # RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s | |
| # RUN: yaml2obj -DBITS=32 -DMACHINE=ARM %s -o %t.o | |
| # RUN: ld.lld -r %t.o -o %t | |
| # RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s | |
| # RUN: yaml2obj -DBITS=32 -DMACHINE=PPC %s -o %t.o | |
| # RUN: ld.lld -r %t.o -o %t | |
| # RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s | |
| # RUN: yaml2obj -DMACHINE=PPC64 %s -o %t.o | |
| # RUN: ld.lld -r %t.o -o %t | |
| # RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s | |
| # RUN: yaml2obj -DMACHINE=RISCV %s -o %t.o | |
| # RUN: ld.lld -r %t.o -o %t | |
| # RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s | |
| # RUN: yaml2obj -DBITS=32 -DMACHINE=386 %s -o %t.o | |
| # RUN: ld.lld -r %t.o -o %t | |
| # RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s | |
| # RUN: yaml2obj -DMACHINE=X86_64 %s -o %t.o | |
| # RUN: ld.lld -r %t.o -o %t | |
| # RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s | |
| ## Both REL and RELA are supported. .rel.llvm.call-graph-profile uses REL even | |
| ## if the prevailing format is RELA. | |
| # RELOC: Section ({{.*}}) .rela.text { | |
| # RELOC-NEXT: 0x0 R_{{.*}}_NONE .data 0x0 | |
| # RELOC-NEXT: } | |
| # RELOC: Section ({{.*}}) .rel.nonalloc1 { | |
| # RELOC-NEXT: 0x0 R_{{.*}}_NONE .data | |
| # RELOC-NEXT: } | |
| # RELOC: Section ({{.*}}) .rela.nonalloc2 { | |
| # RELOC-NEXT: 0x0 R_{{.*}}_NONE .data 0x0 | |
| # RELOC-NEXT: } | |
| --- !ELF | |
| FileHeader: | |
| Class: ELFCLASS[[BITS=64]] | |
| Data: ELFDATA2LSB | |
| Type: ET_REL | |
| Machine: EM_[[MACHINE]] | |
| Sections: | |
| - Name: .text | |
| Type: SHT_PROGBITS | |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] | |
| - Name: .data | |
| Type: SHT_PROGBITS | |
| Flags: [ SHF_WRITE, SHF_ALLOC ] | |
| - Name: .nonalloc1 | |
| Type: SHT_PROGBITS | |
| - Name: .nonalloc2 | |
| Type: SHT_PROGBITS | |
| - Name: .rela.text | |
| Type: SHT_RELA | |
| Info: .text | |
| Relocations: | |
| - Symbol: .data | |
| Type: R_[[MACHINE]]_NONE | |
| - Name: .rel.nonalloc1 | |
| Type: SHT_REL | |
| Info: .nonalloc1 | |
| Relocations: | |
| - Symbol: .data | |
| Type: R_[[MACHINE]]_NONE | |
| - Name: .rela.nonalloc2 | |
| Type: SHT_RELA | |
| Info: .nonalloc2 | |
| Relocations: | |
| - Symbol: .data | |
| Type: R_[[MACHINE]]_NONE | |
| Symbols: | |
| - Name: .data | |
| Type: STT_SECTION | |
| Section: .data | |
| - Name: _start | |
| Section: .text | |
| Binding: STB_GLOBAL | |
| ... |