# Checks functionality of dynamic executables RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/use-shared.x86-64 \ RUN: %p/Inputs/shared.so-x86-64 -o %t -e main --allow-shlib-undefined \ RUN: -rpath /l1:/l2 -rpath /l3 RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/use-shared.x86-64 \ RUN: %p/Inputs/shared.so-x86-64 --output-filetype=yaml -o %t2 --allow-shlib-undefined \ RUN: --noinhibit-exec RUN: llvm-objdump -p %t >> %t2 RUN: llvm-readobj -s -dyn-symbols -dynamic-table %t >> %t2 RUN: FileCheck %s < %t2 CHECK: name: main CHECK: kind: R_X86_64_PC32 CHECK: offset: 18 CHECK: target: [[PLTNAME:[-a-zA-Z0-9_]+]] CHECK: name: [[PLTNAME]] CHECK: type: stub CHECK: type: got CHECK: references: CHECK: kind: R_X86_64_JUMP_SLOT CHECK: shared-library-atoms: CHECK: name: foo CHECK: load-name: shared.so-x86-64 CHECK: PHDR off 0x{{0+}}40 CHECK: INTERP CHECK: flags r-- CHECK: Section { CHECK: Name: .hash CHECK-NEXT: Type: SHT_HASH CHECK-NEXT: Flags [ CHECK-NEXT: SHF_ALLOC CHECK-NEXT: ] CHECK-NEXT: Address: CHECK-NEXT: Offset: CHECK-NEXT: Size: 32 CHECK-NEXT: Link: CHECK-NEXT: Info: CHECK-NEXT: AddressAlignment: 8 CHECK-NEXT: EntrySize: CHECK-NEXT: } CHECK: DynamicSymbols [ CHECK: Symbol { CHECK: Name: foo CHECK-NEXT: Value: 0 CHECK-NEXT: Size: CHECK-NEXT: Binding: Global CHECK-NEXT: Type: Function CHECK: } CHECK: Symbol { CHECK: Name: i CHECK-NEXT: Value: 0 CHECK-NEXT: Size: CHECK-NEXT: Binding: Global CHECK-NEXT: Type: Object CHECK: } CHECK: DynamicSection [ (15 entries) CHECK: Tag Type Name/Value CHECK: 0x0000000000000004 HASH CHECK: 0x0000000000000005 STRTAB CHECK: 0x0000000000000006 SYMTAB CHECK: 0x000000000000000A STRSZ CHECK: 0x000000000000000B SYMENT 24 CHECK: 0x0000000000000007 RELA CHECK: 0x0000000000000008 RELASZ 24 CHECK: 0x0000000000000009 RELAENT 24 CHECK: 0x0000000000000002 PLTRELSZ 24 CHECK: 0x0000000000000003 PLTGOT CHECK: 0x0000000000000014 PLTREL RELA CHECK: 0x0000000000000017 JMPREL CHECK: 0x0000000000000001 NEEDED SharedLibrary (shared.so-x86-64) CHECK: 0x000000000000000F RPATH /l1:/l2:/l3 CHECK: 0x0000000000000000 NULL 0x0 CHECK: ]