brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.4 KiB · 5af01c8 Raw
134 lines · plain
1# REQUIRES: x862# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t1.o3# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/relocatable.s -o %t2.o4# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/relocatable2.s -o %t3.o5# RUN: ld.lld -r %t1.o %t2.o %t3.o -o %t6# RUN: llvm-readobj --file-headers --sections -l --symbols -r %t | FileCheck %s7# RUN: llvm-objdump --section-headers %t | FileCheck --check-prefix=SECTION %s8# RUN: llvm-objdump --no-print-imm-hex -s -d %t | FileCheck --check-prefix=CHECKTEXT %s9 10## Test --relocatable alias11# RUN: ld.lld --relocatable %t1.o %t2.o %t3.o -o %t12# RUN: llvm-readobj --file-headers --sections -l --symbols -r %t | FileCheck %s13# RUN: llvm-objdump --no-print-imm-hex -s -d %t | FileCheck --check-prefix=CHECKTEXT %s14 15## Verify that we can use our relocation output as input to produce executable16# RUN: ld.lld -e main %t -o %texec17# RUN: llvm-readobj --file-headers %texec | FileCheck -check-prefix=CHECKEXE %s18 19# CHECK:       ElfHeader {20# CHECK-NEXT:  Ident {21# CHECK-NEXT:    Magic: (7F 45 4C 46)22# CHECK-NEXT:    Class: 64-bit23# CHECK-NEXT:    DataEncoding: LittleEndian24# CHECK-NEXT:    FileVersion: 125# CHECK-NEXT:    OS/ABI: SystemV26# CHECK-NEXT:    ABIVersion: 027# CHECK-NEXT:    Unused: (00 00 00 00 00 00 00)28# CHECK-NEXT:  }29# CHECK-NEXT:  Type: Relocatable30# CHECK-NEXT:  Machine: EM_X86_6431# CHECK-NEXT:  Version: 132# CHECK-NEXT:  Entry: 0x033# CHECK-NEXT:  ProgramHeaderOffset: 0x034# CHECK-NEXT:  SectionHeaderOffset:35# CHECK-NEXT:  Flags [36# CHECK-NEXT:  ]37# CHECK-NEXT:  HeaderSize: 6438# CHECK-NEXT:  ProgramHeaderEntrySize: 039# CHECK-NEXT:  ProgramHeaderCount: 040# CHECK-NEXT:  SectionHeaderEntrySize: 6441# CHECK-NEXT:  SectionHeaderCount: 842# CHECK-NEXT:  StringTableSectionIndex: 643# CHECK-NEXT:  }44 45# CHECK:       Relocations [46# CHECK-NEXT:  Section ({{.*}}) .rela.text {47# CHECK-NEXT:    0x3 R_X86_64_32S x 0x048# CHECK-NEXT:    0xE R_X86_64_32S y 0x049# CHECK-NEXT:    0x23 R_X86_64_32S xx 0x050# CHECK-NEXT:    0x2E R_X86_64_32S yy 0x051# CHECK-NEXT:    0x43 R_X86_64_32S xxx 0x052# CHECK-NEXT:    0x4E R_X86_64_32S yyy 0x053# CHECK-NEXT:  }54 55# SECTION: Sections:56# SECTION: Idx Name          Size     VMA              Type57# SECTION:   0               00000000 000000000000000058# SECTION:   1 .text         00000056 0000000000000000 TEXT59# SECTION:   2 .rela.text    00000090 000000000000000060# SECTION:   3 .bss          00000018 0000000000000000 BSS61# SECTION:   4 .note.GNU-stack 00000000 000000000000000062# SECTION:   5 .symtab       00000168 000000000000000063# SECTION:   6 .shstrtab     00000041 000000000000000064# SECTION:   7 .strtab       0000002d 000000000000000065 66# CHECKTEXT:      Disassembly of section .text:67# CHECKTEXT-EMPTY:68# CHECKTEXT-NEXT: <main>:69# CHECKTEXT-NEXT: 0: c7 04 25 00 00 00 00 05 00 00 00 movl $5, 070# CHECKTEXT-NEXT: b: c7 04 25 00 00 00 00 07 00 00 00 movl $7, 071# CHECKTEXT:      <foo>:72# CHECKTEXT-NEXT: 20: c7 04 25 00 00 00 00 01 00 00 00 movl $1, 073# CHECKTEXT-NEXT: 2b: c7 04 25 00 00 00 00 02 00 00 00 movl $2, 074# CHECKTEXT:      <bar>:75# CHECKTEXT-NEXT: 40: c7 04 25 00 00 00 00 08 00 00 00 movl $8, 076# CHECKTEXT-NEXT: 4b: c7 04 25 00 00 00 00 09 00 00 00 movl $9, 077 78# CHECKEXE:       Format: elf64-x86-6479# CHECKEXE-NEXT:  Arch: x86_6480# CHECKEXE-NEXT:  AddressSize: 64bit81# CHECKEXE-NEXT:  LoadName:82# CHECKEXE-NEXT:  ElfHeader {83# CHECKEXE-NEXT:    Ident {84# CHECKEXE-NEXT:      Magic: (7F 45 4C 46)85# CHECKEXE-NEXT:      Class: 64-bit86# CHECKEXE-NEXT:      DataEncoding: LittleEndian87# CHECKEXE-NEXT:      FileVersion: 188# CHECKEXE-NEXT:      OS/ABI: SystemV (0x0)89# CHECKEXE-NEXT:      ABIVersion: 090# CHECKEXE-NEXT:      Unused: (00 00 00 00 00 00 00)91# CHECKEXE-NEXT:    }92# CHECKEXE-NEXT:    Type: Executable93# CHECKEXE-NEXT:    Machine: EM_X86_6494# CHECKEXE-NEXT:    Version: 195# CHECKEXE-NEXT:    Entry: 0x20116096# CHECKEXE-NEXT:    ProgramHeaderOffset: 0x4097# CHECKEXE-NEXT:    SectionHeaderOffset: 0x35898# CHECKEXE-NEXT:    Flags [99# CHECKEXE-NEXT:    ]100# CHECKEXE-NEXT:    HeaderSize: 64101# CHECKEXE-NEXT:    ProgramHeaderEntrySize: 56102# CHECKEXE-NEXT:    ProgramHeaderCount: 5103# CHECKEXE-NEXT:    SectionHeaderEntrySize: 64104# CHECKEXE-NEXT:    SectionHeaderCount: 7105# CHECKEXE-NEXT:    StringTableSectionIndex: 5106# CHECKEXE-NEXT:  }107 108.text109.type x,@object110.bss111.globl x112.align 4113x:114.long 0115.size x, 4116.type y,@object117.globl y118.align 4119y:120.long 0121.size y, 4122 123.text124.globl main125.align 16, 0x90126.type main,@function127main:128movl $5, x129movl $7, y130 131blah:132goo:133abs = 42134