brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.9 KiB · 0b47d9e Raw
150 lines · plain
1## Check how llvm-readobj and llvm-readelf tools dump addends of relocations. 2 3# RUN: yaml2obj --docnum=1 -DENCODE=LSB -DTYPE=SHT_RELA %s -o %t.le64.rela4# RUN: llvm-readobj -r %t.le64.rela | FileCheck %s --check-prefix=LLVM-RELA645# RUN: llvm-readelf -r %t.le64.rela | FileCheck %s --check-prefix=GNU-RELA646 7# LLVM-RELA64:      R_X86_64_NONE - 0x0{{$}}8# LLVM-RELA64-NEXT: R_X86_64_NONE - 0x1{{$}}9# LLVM-RELA64-NEXT: R_X86_64_NONE - 0xFFFFFFFFFFFFFFFF{{$}}10# LLVM-RELA64-NEXT: R_X86_64_NONE - 0x7FFFFFFFFFFFFFFF{{$}}11# LLVM-RELA64-NEXT: R_X86_64_NONE - 0x8000000000000000{{$}}12# LLVM-RELA64-NEXT: R_X86_64_NONE - 0xFFFFFFFFFFFFCFC7{{$}}13# LLVM-RELA64-NEXT: R_X86_64_NONE - 0x12345{{$}}14 15## FIXME: GNU readelf prints addends differently.16##        See https://bugs.llvm.org/show_bug.cgi?id=45235.17# GNU-RELA64:      Type          Symbol's Value  Symbol's Name + Addend18# GNU-RELA64-NEXT: R_X86_64_NONE                                 0{{$}}19# GNU-RELA64-NEXT: R_X86_64_NONE                                 1{{$}}20# GNU-RELA64-NEXT: R_X86_64_NONE                                 ffffffffffffffff{{$}}21# GNU-RELA64-NEXT: R_X86_64_NONE                                 7fffffffffffffff{{$}}22# GNU-RELA64-NEXT: R_X86_64_NONE                                 8000000000000000{{$}}23# GNU-RELA64-NEXT: R_X86_64_NONE                                 ffffffffffffcfc7{{$}}24# GNU-RELA64-NEXT: R_X86_64_NONE                                 12345{{$}}25 26# RUN: yaml2obj --docnum=1 -DENCODE=MSB -DTYPE=SHT_RELA %s -o %t.be64.rela27# RUN: llvm-readobj -r %t.be64.rela | FileCheck %s --check-prefix=LLVM-RELA6428# RUN: llvm-readelf -r %t.be64.rela | FileCheck %s --check-prefix=GNU-RELA6429 30# RUN: yaml2obj --docnum=1 -DENCODE=LSB -DTYPE=SHT_REL %s -o %t.le64.rel31# RUN: llvm-readobj -r %t.le64.rel | FileCheck %s --check-prefix=LLVM-REL6432# RUN: llvm-readelf -r %t.le64.rel | FileCheck %s --check-prefix=GNU-REL6433 34# LLVM-REL64-COUNT-7:  R_X86_64_NONE -{{$}}35# LLVM-REL64-NOT:      R_36 37# GNU-REL64:         Type               Symbol's Value  Symbol's Name{{$}}38# GNU-REL64-COUNT-7: R_X86_64_NONE {{$}}39# GNU-REL64-NOT:     R_40 41# RUN: yaml2obj --docnum=1 -DENCODE=MSB -DTYPE=SHT_REL %s -o %t.be64.rel42# RUN: llvm-readobj -r %t.be64.rel | FileCheck %s --check-prefix=LLVM-REL6443# RUN: llvm-readelf -r %t.be64.rel | FileCheck %s --check-prefix=GNU-REL6444 45--- !ELF46FileHeader:47  Class:   ELFCLASS6448  Data:    ELFDATA2[[ENCODE]]49  Type:    ET_EXEC50  Machine: EM_X86_6451Sections:52  - Name:  .foo53    Type:  [[TYPE]]54    Relocations:55## Addend == 0.56      - Addend: 0x057        Type:   R_X86_64_NONE58## Addend == first positive int64/uint64 == 1.59      - Addend: 0x160        Type:   R_X86_64_NONE61## Addend == first negative int64 == -1.62      - Addend: 0xffffffffffffffff63        Type:   R_X86_64_NONE64## Addend == max possible int64 == 0x7FFFFFFFFFFFFFFF.65      - Addend: 0x7FFFFFFFFFFFFFFF66        Type:   R_X86_64_NONE67## Addend == min possible int64 == 0x8000000000000000.68      - Addend: 0x800000000000000069        Type:   R_X86_64_NONE70## Addend == an arbitrary negative number.71      - Addend: 0xFFFFFFFFFFFFCFC7 ## -1234572        Type:   R_X86_64_NONE73## Addend == an arbitrary positive number.74      - Addend: 0x1234575        Type:   R_X86_64_NONE76 77## Starting from here we check ELFCLASS32 objects.78 79# RUN: yaml2obj --docnum=2 -DENCODE=LSB -DTYPE=SHT_RELA %s -o %t.le32.rela80# RUN: llvm-readobj -r %t.le32.rela | FileCheck %s --check-prefix=LLVM-RELA3281# RUN: llvm-readelf -r %t.le32.rela | FileCheck %s --check-prefix=GNU-RELA3282 83# LLVM-RELA32:      R_386_NONE - 0x0{{$}}84# LLVM-RELA32-NEXT: R_386_NONE - 0x1{{$}}85# LLVM-RELA32-NEXT: R_386_NONE - 0xFFFFFFFF{{$}}86# LLVM-RELA32-NEXT: R_386_NONE - 0x7FFFFFFF{{$}}87# LLVM-RELA32-NEXT: R_386_NONE - 0x80000000{{$}}88# LLVM-RELA32-NEXT: R_386_NONE - 0xFFFFCFC7{{$}}89 90## FIXME: GNU readelf prints addends differently.91##        See https://bugs.llvm.org/show_bug.cgi?id=45235.92# GNU-RELA32:      Type       Sym. Value  Symbol's Name + Addend93# GNU-RELA32-NEXT: R_386_NONE                             0{{$}}94# GNU-RELA32-NEXT: R_386_NONE                             1{{$}}95# GNU-RELA32-NEXT: R_386_NONE                             ffffffffffffffff{{$}}96# GNU-RELA32-NEXT: R_386_NONE                             7fffffff{{$}}97# GNU-RELA32-NEXT: R_386_NONE                             ffffffff80000000{{$}}98# GNU-RELA32-NEXT: R_386_NONE                             ffffffffffffcfc7{{$}}99 100# RUN: yaml2obj --docnum=2 -DENCODE=MSB -DTYPE=SHT_RELA %s -o %t.be32.rela101# RUN: llvm-readobj -r %t.be32.rela | FileCheck %s --check-prefix=LLVM-RELA32102# RUN: llvm-readelf -r %t.be32.rela | FileCheck %s --check-prefix=GNU-RELA32103 104# RUN: yaml2obj --docnum=2 -DENCODE=LSB -DTYPE=SHT_REL %s -o %t.le32.rel105# RUN: llvm-readobj -r %t.le32.rel | FileCheck %s --check-prefix=LLVM-REL32106# RUN: llvm-readelf -r %t.le32.rel | FileCheck %s --check-prefix=GNU-REL32107 108# LLVM-REL32-COUNT-7: R_386_NONE -{{$}}109# LLVM-REL32-NOT:     R_110 111# GNU-REL32:         Type112# GNU-REL32-COUNT-7: R_386_NONE {{$}}113# GNU-REL32-NOT:     R_114 115# RUN: yaml2obj --docnum=2 -DENCODE=MSB -DTYPE=SHT_REL %s -o %t.be32.rel116# RUN: llvm-readobj -r %t.be32.rel | FileCheck %s --check-prefix=LLVM-REL32117# RUN: llvm-readelf -r %t.be32.rel | FileCheck %s --check-prefix=GNU-REL32118 119--- !ELF120FileHeader:121  Class:   ELFCLASS32122  Data:    ELFDATA2[[ENCODE]]123  Type:    ET_EXEC124  Machine: EM_386125Sections:126  - Name: .foo127    Type: [[TYPE]]128    Relocations:129## Addend == 0.130      - Addend: 0x0131        Type:   R_386_NONE132## Addend == first positive int32/uint32 == 1.133      - Addend: 0x1134        Type:   R_386_NONE135## Addend == first negative int32 == -1.136      - Addend: 0xffffffff137        Type:   R_386_NONE138## Addend == max possible int32 == 0x7FFFFFFF.139      - Addend: 0x7FFFFFFF140        Type:   R_386_NONE141## Addend == min possible int32 == 0x80000000.142      - Addend: 0x80000000143        Type:   R_386_NONE144## Addend == an arbitrary negative number.145      - Addend: 0xFFFFCFC7 ## -12345146        Type:   R_386_NONE147## Addend == an arbitrary positive number.148      - Addend: 0x12345149        Type:   R_386_NONE150