[ELF][test] Test getImplicitAddend for R_ARM_NONE/R_RISCV_NONE/R_386_NONE/R_X86_64_NONE

Similar to f457863ae3
This commit is contained in:
Fangrui Song 2022-02-04 13:59:18 -08:00
parent 5966c2ec02
commit 3fd30958b7
4 changed files with 26 additions and 89 deletions

View File

@ -1,26 +0,0 @@
# REQUIRES: arm
# RUN: llvm-mc -filetype=obj -triple=armv7-linux-musl %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_ARM_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
# RELOC: Section ({{.*}}) .rel.text {
# RELOC-NEXT: 0x0 R_ARM_NONE .data
# RELOC-NEXT: }
.globl _start
_start:
nop
.reloc 0, R_ARM_NONE, .data
.data
.long 0

View File

@ -1,26 +0,0 @@
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=i386-linux-musl %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_386_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
# RELOC: Section ({{.*}}) .rel.text {
# RELOC-NEXT: 0x0 R_386_NONE .data
# RELOC-NEXT: }
.globl _start
_start:
ret
.reloc 0, R_386_NONE, .data
.data
.long 0

View File

@ -1,26 +0,0 @@
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-linux-musl %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_X86_64_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
# RELOC: Section ({{.*}}) .rela.text {
# RELOC-NEXT: 0x0 R_X86_64_NONE .data 0x0
# RELOC-NEXT: }
.globl _start
_start:
ret
.reloc 0, R_X86_64_NONE, .data
.data
.long 0

View File

@ -1,9 +1,8 @@
# REQUIRES: aarch64 # RUN: yaml2obj -DMACHINE=AARCH64 %s -o %t.o
# RUN: yaml2obj %s -o %t.o
# RUN: ld.lld --gc-sections %t.o -o %t # RUN: ld.lld --gc-sections %t.o -o %t
# RUN: llvm-readelf -S -r %t | FileCheck %s # RUN: llvm-readelf -S -r %t | FileCheck %s
## Test that we discard R_AARCH64_NONE, but respect the references it creates ## Test that we discard R_*_NONE, but respect the references it creates
## among sections. ## among sections.
# CHECK: .data # CHECK: .data
@ -12,24 +11,40 @@
# RUN: ld.lld -r %t.o -o %t # RUN: ld.lld -r %t.o -o %t
# RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s # 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 -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 ## Both REL and RELA are supported. .rel.llvm.call-graph-profile uses REL even
## if the prevailing format is RELA. ## if the prevailing format is RELA.
# RELOC: Section ({{.*}}) .rela.text { # RELOC: Section ({{.*}}) .rela.text {
# RELOC-NEXT: 0x0 R_AARCH64_NONE .data 0x0 # RELOC-NEXT: 0x0 R_{{.*}}_NONE .data 0x0
# RELOC-NEXT: } # RELOC-NEXT: }
# RELOC: Section ({{.*}}) .rel.nonalloc1 { # RELOC: Section ({{.*}}) .rel.nonalloc1 {
# RELOC-NEXT: 0x0 R_AARCH64_NONE .data # RELOC-NEXT: 0x0 R_{{.*}}_NONE .data
# RELOC-NEXT: } # RELOC-NEXT: }
# RELOC: Section ({{.*}}) .rela.nonalloc2 { # RELOC: Section ({{.*}}) .rela.nonalloc2 {
# RELOC-NEXT: 0x0 R_AARCH64_NONE .data 0x0 # RELOC-NEXT: 0x0 R_{{.*}}_NONE .data 0x0
# RELOC-NEXT: } # RELOC-NEXT: }
--- !ELF --- !ELF
FileHeader: FileHeader:
Class: ELFCLASS64 Class: ELFCLASS[[BITS=64]]
Data: ELFDATA2LSB Data: ELFDATA2LSB
Type: ET_REL Type: ET_REL
Machine: EM_AARCH64 Machine: EM_[[MACHINE]]
Sections: Sections:
- Name: .text - Name: .text
Type: SHT_PROGBITS Type: SHT_PROGBITS
@ -46,19 +61,19 @@ Sections:
Info: .text Info: .text
Relocations: Relocations:
- Symbol: .data - Symbol: .data
Type: R_AARCH64_NONE Type: R_[[MACHINE]]_NONE
- Name: .rel.nonalloc1 - Name: .rel.nonalloc1
Type: SHT_REL Type: SHT_REL
Info: .nonalloc1 Info: .nonalloc1
Relocations: Relocations:
- Symbol: .data - Symbol: .data
Type: R_AARCH64_NONE Type: R_[[MACHINE]]_NONE
- Name: .rela.nonalloc2 - Name: .rela.nonalloc2
Type: SHT_RELA Type: SHT_RELA
Info: .nonalloc2 Info: .nonalloc2
Relocations: Relocations:
- Symbol: .data - Symbol: .data
Type: R_AARCH64_NONE Type: R_[[MACHINE]]_NONE
Symbols: Symbols:
- Name: .data - Name: .data
Type: STT_SECTION Type: STT_SECTION