summaryrefslogtreecommitdiff
path: root/test/ELF/ztext-text-notext.s
diff options
context:
space:
mode:
Diffstat (limited to 'test/ELF/ztext-text-notext.s')
-rw-r--r--test/ELF/ztext-text-notext.s36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/ELF/ztext-text-notext.s b/test/ELF/ztext-text-notext.s
new file mode 100644
index 000000000000..964ffe1fa6d8
--- /dev/null
+++ b/test/ELF/ztext-text-notext.s
@@ -0,0 +1,36 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/ztext-text-notext.s -o %t2.o
+# RUN: ld.lld %t2.o -o %t2.so -shared
+# RUN: ld.lld -z notext %t.o %t2.so -o %t -shared
+# RUN: llvm-readobj -dynamic-table -r %t | FileCheck %s
+# RUN: ld.lld -z notext %t.o %t2.so -o %t2 -pie
+# RUN: llvm-readobj -dynamic-table -r %t2 | FileCheck %s
+# RUN: ld.lld -z notext %t.o %t2.so -o %t3
+# RUN: llvm-readobj -dynamic-table -r %t3 | FileCheck --check-prefix=STATIC %s
+
+# If the preference is to have text relocations, don't create plt of copy relocations.
+
+# CHECK: Relocations [
+# CHECK-NEXT: Section {{.*}} .rela.dyn {
+# CHECK-NEXT: 0x1000 R_X86_64_RELATIVE - 0x1000
+# CHECK-NEXT: 0x1008 R_X86_64_64 bar 0x0
+# CHECK-NEXT: 0x1010 R_X86_64_PC64 zed 0x0
+# CHECK-NEXT: }
+# CHECK-NEXT: ]
+# CHECK: DynamicSection [
+# CHECK: 0x0000000000000016 TEXTREL 0x0
+
+# STATIC: Relocations [
+# STATIC-NEXT: Section {{.*}} .rela.dyn {
+# STATIC-NEXT: 0x201008 R_X86_64_64 bar 0x0
+# STATIC-NEXT: 0x201010 R_X86_64_PC64 zed 0x0
+# STATIC-NEXT: }
+# STATIC-NEXT: ]
+# STATIC: DynamicSection [
+# STATIC: 0x0000000000000016 TEXTREL 0x0
+
+foo:
+.quad foo
+.quad bar
+.quad zed - .