aboutsummaryrefslogtreecommitdiff
path: root/test/old-elf/dynamic.test
diff options
context:
space:
mode:
Diffstat (limited to 'test/old-elf/dynamic.test')
-rw-r--r--test/old-elf/dynamic.test80
1 files changed, 80 insertions, 0 deletions
diff --git a/test/old-elf/dynamic.test b/test/old-elf/dynamic.test
new file mode 100644
index 000000000000..2b548a7aaf5e
--- /dev/null
+++ b/test/old-elf/dynamic.test
@@ -0,0 +1,80 @@
+# Checks functionality of dynamic executables
+RUN: lld -flavor old-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 old-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: ]