xref: /llvm-project/llvm/test/tools/llvm-objcopy/ELF/basic-relocations.test (revision 98a4289810ba49cea6f9a9be6d902e72f0c0d0e7)
155c81d42SFangrui Song# RUN: yaml2obj %s -o %t
26e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy %t %t2
3298ea3f5SJordan Rupprecht# RUN: llvm-readobj --relocations %t2 | FileCheck %s
46e4dc6f2SAlexander Shaposhnikov
56e4dc6f2SAlexander Shaposhnikov!ELF
66e4dc6f2SAlexander ShaposhnikovFileHeader:
76e4dc6f2SAlexander Shaposhnikov  Class:           ELFCLASS64
86e4dc6f2SAlexander Shaposhnikov  Data:            ELFDATA2LSB
96e4dc6f2SAlexander Shaposhnikov  Type:            ET_EXEC
106e4dc6f2SAlexander Shaposhnikov  Machine:         EM_X86_64
116e4dc6f2SAlexander ShaposhnikovSections:
126e4dc6f2SAlexander Shaposhnikov  - Name:            .text
136e4dc6f2SAlexander Shaposhnikov    Type:            SHT_PROGBITS
146e4dc6f2SAlexander Shaposhnikov    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
156e4dc6f2SAlexander Shaposhnikov    Address:         0x1000
166e4dc6f2SAlexander Shaposhnikov    AddressAlign:    0x0000000000000010
176e4dc6f2SAlexander Shaposhnikov    Content:         "0000000000000000"
186e4dc6f2SAlexander Shaposhnikov  - Name:            .rel.text
196e4dc6f2SAlexander Shaposhnikov    Type:            SHT_REL
206e4dc6f2SAlexander Shaposhnikov    Link:            .symtab
216e4dc6f2SAlexander Shaposhnikov    Info:            .text
226e4dc6f2SAlexander Shaposhnikov    Relocations:
236e4dc6f2SAlexander Shaposhnikov      - Offset: 0x1000
246e4dc6f2SAlexander Shaposhnikov        Symbol: foo
256e4dc6f2SAlexander Shaposhnikov        Type:   R_X86_64_PC32
266e4dc6f2SAlexander Shaposhnikov  - Name:            .data
276e4dc6f2SAlexander Shaposhnikov    Type:            SHT_PROGBITS
286e4dc6f2SAlexander Shaposhnikov    Flags:           [ SHF_ALLOC ]
296e4dc6f2SAlexander Shaposhnikov    Address:         0x2000
306e4dc6f2SAlexander Shaposhnikov    AddressAlign:    0x0000000000000010
316e4dc6f2SAlexander Shaposhnikov    Content:         "0000000000000000"
326e4dc6f2SAlexander Shaposhnikov  - Name:            .rel.data
336e4dc6f2SAlexander Shaposhnikov    Type:            SHT_REL
346e4dc6f2SAlexander Shaposhnikov    Link:            .symtab
356e4dc6f2SAlexander Shaposhnikov    Info:            .data
366e4dc6f2SAlexander Shaposhnikov    Relocations:
376e4dc6f2SAlexander Shaposhnikov      - Offset: 0x2000
386e4dc6f2SAlexander Shaposhnikov        Symbol: bar
396e4dc6f2SAlexander Shaposhnikov        Type:   R_X86_64_PC32
406e4dc6f2SAlexander Shaposhnikov  - Name:            .rela.data
416e4dc6f2SAlexander Shaposhnikov    Type:            SHT_RELA
426e4dc6f2SAlexander Shaposhnikov    Link:            .symtab
436e4dc6f2SAlexander Shaposhnikov    Info:            .data
446e4dc6f2SAlexander Shaposhnikov    Relocations:
456e4dc6f2SAlexander Shaposhnikov      - Offset: 0x2000
466e4dc6f2SAlexander Shaposhnikov        Symbol: barA
476e4dc6f2SAlexander Shaposhnikov        Type:   R_X86_64_PC32
486e4dc6f2SAlexander Shaposhnikov        Addend: 0x17
496e4dc6f2SAlexander Shaposhnikov  - Name:            .rela.text
506e4dc6f2SAlexander Shaposhnikov    Type:            SHT_RELA
516e4dc6f2SAlexander Shaposhnikov    Link:            .symtab
526e4dc6f2SAlexander Shaposhnikov    Info:            .text
536e4dc6f2SAlexander Shaposhnikov    Relocations:
546e4dc6f2SAlexander Shaposhnikov      - Offset: 0x1000
556e4dc6f2SAlexander Shaposhnikov        Symbol: fooA
566e4dc6f2SAlexander Shaposhnikov        Type:   R_X86_64_PC32
576e4dc6f2SAlexander Shaposhnikov        Addend: 0x13
586e4dc6f2SAlexander ShaposhnikovSymbols:
596e4dc6f2SAlexander Shaposhnikov  - Name:     _start
606e4dc6f2SAlexander Shaposhnikov    Type:     STT_FUNC
616e4dc6f2SAlexander Shaposhnikov    Section:  .text
626e4dc6f2SAlexander Shaposhnikov    Value:    0x1000
636e4dc6f2SAlexander Shaposhnikov    Size:     4
646da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
656e4dc6f2SAlexander Shaposhnikov  - Name:     foo
666e4dc6f2SAlexander Shaposhnikov    Type:     STT_FUNC
676e4dc6f2SAlexander Shaposhnikov    Size:     4
686da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
696e4dc6f2SAlexander Shaposhnikov  - Name:     fooA
706e4dc6f2SAlexander Shaposhnikov    Type:     STT_FUNC
716e4dc6f2SAlexander Shaposhnikov    Size:     4
726da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
736e4dc6f2SAlexander Shaposhnikov  - Name:     bar
746e4dc6f2SAlexander Shaposhnikov    Type:     STT_OBJECT
756e4dc6f2SAlexander Shaposhnikov    Size:     4
766da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
776e4dc6f2SAlexander Shaposhnikov  - Name:     barA
786e4dc6f2SAlexander Shaposhnikov    Type:     STT_OBJECT
796e4dc6f2SAlexander Shaposhnikov    Size:     4
806da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
816e4dc6f2SAlexander Shaposhnikov
826e4dc6f2SAlexander Shaposhnikov# CHECK:     Relocations [
836e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT:  Section (2) .rel.text {
84*98a42898SGeorgii Rymar# CHECK-NEXT:    0x1000 R_X86_64_PC32 foo
856e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT:  }
866e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT:  Section (4) .rel.data {
87*98a42898SGeorgii Rymar# CHECK-NEXT:    0x2000 R_X86_64_PC32 bar
886e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT:  }
896e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT:  Section (5) .rela.data {
906e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT:    0x2000 R_X86_64_PC32 barA 0x17
916e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT:  }
926e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT:  Section (6) .rela.text {
936e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT:    0x1000 R_X86_64_PC32 fooA 0x13
946e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT:  }
956e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT:]
96