brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.6 KiB · b01f51e Raw
244 lines · plain
1# REQUIRES: x862 3# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t4# RUN: ld.lld %t -o %t25# RUN: llvm-readobj --file-headers --sections -l --symbols %t2 \6# RUN:   | FileCheck %s7# RUN: ld.lld %t -o /dev/null8 9## exits with return code 42 on linux10.globl _start11_start:12  mov $60, %rax13  mov $42, %rdi14  syscall15 16# CHECK:      ElfHeader {17# CHECK-NEXT:   Ident {18# CHECK-NEXT:     Magic: (7F 45 4C 46)19# CHECK-NEXT:     Class: 64-bit (0x2)20# CHECK-NEXT:     DataEncoding: LittleEndian (0x1)21# CHECK-NEXT:     FileVersion: 122# CHECK-NEXT:     OS/ABI: SystemV (0x0)23# CHECK-NEXT:     ABIVersion: 024# CHECK-NEXT:     Unused: (00 00 00 00 00 00 00)25# CHECK-NEXT:   }26# CHECK-NEXT:   Type: Executable (0x2)27# CHECK-NEXT:   Machine: EM_X86_64 (0x3E)28# CHECK-NEXT:   Version: 129# CHECK-NEXT:   Entry: [[ENTRY:0x[0-9A-F]+]]30# CHECK-NEXT:   ProgramHeaderOffset: 0x4031# CHECK-NEXT:   SectionHeaderOffset: 0x1A032# CHECK-NEXT:   Flags [ (0x0)33# CHECK-NEXT:   ]34# CHECK-NEXT:   HeaderSize: 6435# CHECK-NEXT:   ProgramHeaderEntrySize: 5636# CHECK-NEXT:   ProgramHeaderCount: 437# CHECK-NEXT:   SectionHeaderEntrySize: 6438# CHECK-NEXT:   SectionHeaderCount: 639# CHECK-NEXT:   StringTableSectionIndex: 440# CHECK-NEXT: }41# CHECK-NEXT: Sections [42# CHECK-NEXT:   Section {43# CHECK-NEXT:     Index: 044# CHECK-NEXT:     Name:  (0)45# CHECK-NEXT:     Type: SHT_NULL (0x0)46# CHECK-NEXT:     Flags [ (0x0)47# CHECK-NEXT:     ]48# CHECK-NEXT:     Address: 0x049# CHECK-NEXT:     Offset: 0x050# CHECK-NEXT:     Size: 051# CHECK-NEXT:     Link: 052# CHECK-NEXT:     Info: 053# CHECK-NEXT:     AddressAlignment: 054# CHECK-NEXT:     EntrySize: 055# CHECK-NEXT:   }56# CHECK-NEXT:   Section {57# CHECK-NEXT:     Index: 158# CHECK-NEXT:     Name: .text59# CHECK-NEXT:     Type: SHT_PROGBITS (0x1)60# CHECK-NEXT:     Flags [ (0x6)61# CHECK-NEXT:       SHF_ALLOC (0x2)62# CHECK-NEXT:       SHF_EXECINSTR (0x4)63# CHECK-NEXT:     ]64# CHECK-NEXT:     Address: 0x20112065# CHECK-NEXT:     Offset: 0x12066# CHECK-NEXT:     Size: 1667# CHECK-NEXT:     Link: 068# CHECK-NEXT:     Info: 069# CHECK-NEXT:     AddressAlignment: 470# CHECK-NEXT:     EntrySize: 071# CHECK-NEXT:   }72# CHECK-NEXT:   Section {73# CHECK-NEXT:     Index: 274# CHECK-NEXT:     Name: .comment75# CHECK-NEXT:     Type: SHT_PROGBITS (0x1)76# CHECK-NEXT:     Flags [ (0x30)77# CHECK-NEXT:       SHF_MERGE (0x10)78# CHECK-NEXT:       SHF_STRINGS (0x20)79# CHECK-NEXT:     ]80# CHECK-NEXT:     Address: 0x081# CHECK-NEXT:     Offset: 0x13082# CHECK-NEXT:     Size: 883# CHECK-NEXT:     Link: 084# CHECK-NEXT:     Info: 085# CHECK-NEXT:     AddressAlignment: 186# CHECK-NEXT:     EntrySize: 187# CHECK-NEXT:   }88# CHECK-NEXT:   Section {89# CHECK-NEXT:     Index: 390# CHECK-NEXT:     Name: .symtab91# CHECK-NEXT:     Type: SHT_SYMTAB (0x2)92# CHECK-NEXT:     Flags [ (0x0)93# CHECK-NEXT:     ]94# CHECK-NEXT:     Address: 0x095# CHECK-NEXT:     Offset: 0x13896# CHECK-NEXT:     Size: 4897# CHECK-NEXT:     Link: 598# CHECK-NEXT:     Info: 199# CHECK-NEXT:     AddressAlignment: 8100# CHECK-NEXT:     EntrySize: 24101# CHECK-NEXT:   }102# CHECK-NEXT:   Section {103# CHECK-NEXT:     Index: 4104# CHECK-NEXT:     Name: .shstrtab105# CHECK-NEXT:     Type: SHT_STRTAB (0x3)106# CHECK-NEXT:     Flags [ (0x0)107# CHECK-NEXT:     ]108# CHECK-NEXT:     Address: 0x0109# CHECK-NEXT:     Offset: 0x168110# CHECK-NEXT:     Size: 42111# CHECK-NEXT:     Link: 0112# CHECK-NEXT:     Info: 0113# CHECK-NEXT:     AddressAlignment: 1114# CHECK-NEXT:     EntrySize: 0115# CHECK-NEXT:   }116# CHECK-NEXT:   Section {117# CHECK-NEXT:     Index: 5118# CHECK-NEXT:     Name: .strtab119# CHECK-NEXT:     Type: SHT_STRTAB (0x3)120# CHECK-NEXT:     Flags [ (0x0)121# CHECK-NEXT:     ]122# CHECK-NEXT:     Address: 0x0123# CHECK-NEXT:     Offset: 0x192124# CHECK-NEXT:     Size: 8125# CHECK-NEXT:     Link: 0126# CHECK-NEXT:     Info: 0127# CHECK-NEXT:     AddressAlignment: 1128# CHECK-NEXT:     EntrySize: 0129# CHECK-NEXT:   }130# CHECK-NEXT: ]131# CHECK-NEXT: ProgramHeaders [132# CHECK-NEXT:   ProgramHeader {133# CHECK-NEXT:     Type: PT_PHDR (0x6)134# CHECK-NEXT:     Offset: 0x40135# CHECK-NEXT:     VirtualAddress: 0x200040136# CHECK-NEXT:     PhysicalAddress: 0x200040137# CHECK-NEXT:     FileSize: 224138# CHECK-NEXT:     MemSize: 224139# CHECK-NEXT:     Flags [ (0x4)140# CHECK-NEXT:       PF_R (0x4)141# CHECK-NEXT:     ]142# CHECK-NEXT:     Alignment: 8143# CHECK-NEXT:   }144# CHECK-NEXT:   ProgramHeader {145# CHECK-NEXT:     Type: PT_LOAD (0x1)146# CHECK-NEXT:     Offset: 0x0147# CHECK-NEXT:     VirtualAddress: 0x200000148# CHECK-NEXT:     PhysicalAddress: 0x200000149# CHECK-NEXT:     FileSize: 288150# CHECK-NEXT:     MemSize: 288151# CHECK-NEXT:     Flags [152# CHECK-NEXT:       PF_R153# CHECK-NEXT:     ]154# CHECK-NEXT:     Alignment: 4096155# CHECK-NEXT:   }156# CHECK-NEXT:   ProgramHeader {157# CHECK-NEXT:     Type: PT_LOAD (0x1)158# CHECK-NEXT:     Offset: 0x120159# CHECK-NEXT:     VirtualAddress: 0x201120160# CHECK-NEXT:     PhysicalAddress: 0x201120161# CHECK-NEXT:     FileSize: 16162# CHECK-NEXT:     MemSize: 16163# CHECK-NEXT:     Flags [ (0x5)164# CHECK-NEXT:       PF_R (0x4)165# CHECK-NEXT:       PF_X (0x1)166# CHECK-NEXT:     ]167# CHECK-NEXT:     Alignment: 4096168# CHECK-NEXT:   }169# CHECK-NEXT:   ProgramHeader {170# CHECK-NEXT:     Type: PT_GNU_STACK171# CHECK-NEXT:     Offset: 0x0172# CHECK-NEXT:     VirtualAddress: 0x0173# CHECK-NEXT:     PhysicalAddress: 0x0174# CHECK-NEXT:     FileSize: 0175# CHECK-NEXT:     MemSize: 0176# CHECK-NEXT:     Flags [177# CHECK-NEXT:       PF_R178# CHECK-NEXT:       PF_W179# CHECK-NEXT:     ]180# CHECK-NEXT:     Alignment: 0181# CHECK-NEXT:   }182# CHECK-NEXT: ]183# CHECK-NEXT: Symbols [184# CHECK-NEXT:   Symbol {185# CHECK-NEXT:     Name:  (0)186# CHECK-NEXT:     Value: 0x0187# CHECK-NEXT:     Size: 0188# CHECK-NEXT:     Binding: Local (0x0)189# CHECK-NEXT:     Type: None (0x0)190# CHECK-NEXT:     Other: 0191# CHECK-NEXT:     Section: Undefined (0x0)192# CHECK-NEXT:   }193# CHECK-NEXT:   Symbol {194# CHECK-NEXT:     Name: _start195# CHECK-NEXT:     Value: [[ENTRY]]196# CHECK-NEXT:     Size: 0197# CHECK-NEXT:     Binding: Global (0x1)198# CHECK-NEXT:     Type: None (0x0)199# CHECK-NEXT:     Other: 0200# CHECK-NEXT:     Section: .text201# CHECK-NEXT:   }202# CHECK-NEXT: ]203 204## Test for the response file (POSIX quoting style)205# RUN: echo " -o %t2" > %t.responsefile206# RUN: ld.lld %t --rsp-quoting=posix @%t.responsefile207# RUN: llvm-readobj --file-headers --sections -l --symbols %t2 \208# RUN:   | FileCheck %s209 210## Test for the response file (Windows quoting style)211# RUN: echo " c:\blah\foo" > %t.responsefile212# RUN: not ld.lld --rsp-quoting=windows %t @%t.responsefile 2>&1 | FileCheck \213# RUN:   %s --check-prefix=WINRSP214# WINRSP: cannot open c:\blah\foo215 216## Test for the response file (invalid quoting style)217# RUN: not ld.lld --rsp-quoting=patatino %t 2>&1 | FileCheck %s \218# RUN:   --check-prefix=INVRSP219# INVRSP: invalid response file quoting: patatino220 221## Test erroring on a recursive response file, but only once.222# RUN: echo @%t.responsefile > %t.responsefile223# RUN: env LLD_IN_TEST=1 not ld.lld %t @%t.responsefile 2>&1 | FileCheck %s --check-prefix=RECRSP224# RECRSP: recursive expansion of: '{{.*}}.responsefile'225# RECRSP-NOT: recursive expansion of226 227# RUN: not ld.lld %t.foo -o /dev/null 2>&1 | \228# RUN:  FileCheck -DMSG=%errc_ENOENT --check-prefix=MISSING %s229# MISSING: cannot open {{.*}}.foo: [[MSG]]230 231# RUN: not ld.lld -o /dev/null 2>&1 | \232# RUN:  FileCheck --check-prefix=NO_INPUT %s233# NO_INPUT: ld.lld{{.*}}: no input files234 235# RUN: not ld.lld %t.no.such.file -o /dev/null 2>&1 | \236# RUN:  FileCheck -DMSG=%errc_ENOENT --check-prefix=CANNOT_OPEN %s237# CANNOT_OPEN: cannot open {{.*}}.no.such.file: [[MSG]]238 239# RUN: not ld.lld --foo 2>&1 | FileCheck --check-prefix=UNKNOWN %s240# UNKNOWN: unknown argument '--foo'241 242# RUN: not ld.lld %t -o /dev/null -m wrong_emul_fbsd 2>&1 | FileCheck --check-prefix=UNKNOWN_EMUL %s243# UNKNOWN_EMUL: unknown emulation: wrong_emul_fbsd244