Split linkerscript.s into small test files.
authorRui Ueyama <ruiu@google.com>
Thu, 8 Dec 2016 22:36:12 +0000 (22:36 +0000)
committerRui Ueyama <ruiu@google.com>
Thu, 8 Dec 2016 22:36:12 +0000 (22:36 +0000)
linkerscript.s is the first test file for linker script, and at the moment
it contains all tests for linker scripts. Now that test file doesn't make
sense.

linkerscript2.s was just badly named. Renamed searchdir.s.

llvm-svn: 289148

lld/test/ELF/linkerscript/entry.s [new file with mode: 0644]
lld/test/ELF/linkerscript/group.s [new file with mode: 0644]
lld/test/ELF/linkerscript/linkerscript.s
lld/test/ELF/linkerscript/searchdir.s [moved from lld/test/ELF/linkerscript/linkerscript2.s with 94% similarity]

diff --git a/lld/test/ELF/linkerscript/entry.s b/lld/test/ELF/linkerscript/entry.s
new file mode 100644 (file)
index 0000000..acadeec
--- /dev/null
@@ -0,0 +1,42 @@
+# REQUIRES: x86, shell
+
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
+
+# RUN: echo "ENTRY(_label)" > %t.script
+# RUN: ld.lld -o %t2 %t.script %t
+# RUN: llvm-readobj %t2 > /dev/null
+
+# The entry symbol should not cause an undefined error.
+# RUN: echo "ENTRY(_wrong_label)" > %t.script
+# RUN: ld.lld -o %t2 %t.script %t
+# RUN: ld.lld --entry=abc -o %t2 %t
+
+# -e has precedence over linker script's ENTRY.
+# RUN: echo "ENTRY(_label)" > %t.script
+# RUN: ld.lld -e _start -o %t2 %t.script %t
+# RUN: llvm-readobj -file-headers -symbols %t2 | \
+# RUN:   FileCheck -check-prefix=OVERLOAD %s
+
+# OVERLOAD: Entry: [[ENTRY:0x[0-9A-F]+]]
+# OVERLOAD: Name: _start
+# OVERLOAD-NEXT: Value: [[ENTRY]]
+
+# The entry symbol can be a linker-script-defined symbol.
+# RUN: echo "ENTRY(foo); foo = 1;" > %t.script
+# RUN: ld.lld -o %t2 %t.script %t
+# RUN: llvm-readobj -file-headers -symbols %t2 | \
+# RUN:   FileCheck -check-prefix=SCRIPT %s
+
+# SCRIPT: Entry: 0x1
+
+# RUN: echo "ENTRY(no_such_symbol);" > %t.script
+# RUN: ld.lld -o %t2 %t.script %t 2>&1 | \
+# RUN:   FileCheck -check-prefix=MISSING %s
+
+# MISSING: warning: cannot find entry symbol no_such_symbol
+
+.globl _start, _label
+_start:
+  ret
+_label:
+  ret
diff --git a/lld/test/ELF/linkerscript/group.s b/lld/test/ELF/linkerscript/group.s
new file mode 100644 (file)
index 0000000..79bd783
--- /dev/null
@@ -0,0 +1,56 @@
+# REQUIRES: x86, shell
+
+# RUN: mkdir -p %t.dir
+# RUN: rm -f %t.dir/libxyz.a
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux \
+# RUN:   %p/Inputs/libsearch-st.s -o %t2.o
+# RUN: llvm-ar rcs %t.dir/libxyz.a %t2.o
+
+# RUN: echo "GROUP(\"%t\")" > %t.script
+# RUN: ld.lld -o %t2 %t.script
+# RUN: llvm-readobj %t2 > /dev/null
+
+# RUN: echo "INPUT(\"%t\")" > %t.script
+# RUN: ld.lld -o %t2 %t.script
+# RUN: llvm-readobj %t2 > /dev/null
+
+# RUN: echo "GROUP(\"%t\" libxyz.a )" > %t.script
+# RUN: not ld.lld -o %t2 %t.script 2>/dev/null
+# RUN: ld.lld -o %t2 %t.script -L%t.dir
+# RUN: llvm-readobj %t2 > /dev/null
+
+# RUN: echo "GROUP(\"%t\" =libxyz.a )" > %t.script
+# RUN: not ld.lld -o %t2 %t.script  2>/dev/null
+# RUN: ld.lld -o %t2 %t.script --sysroot=%t.dir
+# RUN: llvm-readobj %t2 > /dev/null
+
+# RUN: echo "GROUP(\"%t\" -lxyz )" > %t.script
+# RUN: not ld.lld -o %t2 %t.script  2>/dev/null
+# RUN: ld.lld -o %t2 %t.script -L%t.dir
+# RUN: llvm-readobj %t2 > /dev/null
+
+# RUN: echo "GROUP(\"%t\" libxyz.a )" > %t.script
+# RUN: not ld.lld -o %t2 %t.script  2>/dev/null
+# RUN: ld.lld -o %t2 %t.script -L%t.dir
+# RUN: llvm-readobj %t2 > /dev/null
+
+# RUN: echo "GROUP(\"%t\" /libxyz.a )" > %t.script
+# RUN: echo "GROUP(\"%t\" /libxyz.a )" > %t.dir/xyz.script
+# RUN: not ld.lld -o %t2 %t.script 2>/dev/null
+# RUN: not ld.lld -o %t2 %t.script --sysroot=%t.dir  2>/dev/null
+# RUN: ld.lld -o %t2 %t.dir/xyz.script --sysroot=%t.dir
+# RUN: llvm-readobj %t2 > /dev/null
+
+# RUN: echo "GROUP(\"%t.script2\")" > %t.script1
+# RUN: echo "GROUP(\"%t\")" > %t.script2
+# RUN: ld.lld -o %t2 %t.script1
+# RUN: llvm-readobj %t2 > /dev/null
+
+# RUN: echo "GROUP(AS_NEEDED(\"%t\"))" > %t.script
+# RUN: ld.lld -o %t2 %t.script
+# RUN: llvm-readobj %t2 > /dev/null
+
+.globl _start
+_start:
+  ret
index 2b7ad8e..a6a30bd 100644 (file)
@@ -5,98 +5,18 @@
 # REQUIRES: shell
 
 # REQUIRES: x86
-# RUN: mkdir -p %t.dir
 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux \
 # RUN:   %p/Inputs/libsearch-st.s -o %t2.o
-# RUN: rm -f %t.dir/libxyz.a
-# RUN: llvm-ar rcs %t.dir/libxyz.a %t2.o
 
 # RUN: echo "EXTERN( undef undef2 )" > %t.script
 # RUN: ld.lld %t -o %t2 %t.script
 # RUN: llvm-readobj %t2 > /dev/null
 
-# RUN: echo "GROUP(\"%t\")" > %t.script
-# RUN: ld.lld -o %t2 %t.script
-# RUN: llvm-readobj %t2 > /dev/null
-
-# RUN: echo "INPUT(\"%t\")" > %t.script
-# RUN: ld.lld -o %t2 %t.script
-# RUN: llvm-readobj %t2 > /dev/null
-
-# RUN: echo "GROUP(\"%t\" libxyz.a )" > %t.script
-# RUN: not ld.lld -o %t2 %t.script 2>/dev/null
-# RUN: ld.lld -o %t2 %t.script -L%t.dir
-# RUN: llvm-readobj %t2 > /dev/null
-
-# RUN: echo "GROUP(\"%t\" =libxyz.a )" > %t.script
-# RUN: not ld.lld -o %t2 %t.script  2>/dev/null
-# RUN: ld.lld -o %t2 %t.script --sysroot=%t.dir
-# RUN: llvm-readobj %t2 > /dev/null
-
-# RUN: echo "GROUP(\"%t\" -lxyz )" > %t.script
-# RUN: not ld.lld -o %t2 %t.script  2>/dev/null
-# RUN: ld.lld -o %t2 %t.script -L%t.dir
-# RUN: llvm-readobj %t2 > /dev/null
-
-# RUN: echo "GROUP(\"%t\" libxyz.a )" > %t.script
-# RUN: not ld.lld -o %t2 %t.script  2>/dev/null
-# RUN: ld.lld -o %t2 %t.script -L%t.dir
-# RUN: llvm-readobj %t2 > /dev/null
-
-# RUN: echo "GROUP(\"%t\" /libxyz.a )" > %t.script
-# RUN: echo "GROUP(\"%t\" /libxyz.a )" > %t.dir/xyz.script
-# RUN: not ld.lld -o %t2 %t.script 2>/dev/null
-# RUN: not ld.lld -o %t2 %t.script --sysroot=%t.dir  2>/dev/null
-# RUN: ld.lld -o %t2 %t.dir/xyz.script --sysroot=%t.dir
-# RUN: llvm-readobj %t2 > /dev/null
-
-# RUN: echo "GROUP(\"%t.script2\")" > %t.script1
-# RUN: echo "GROUP(\"%t\")" > %t.script2
-# RUN: ld.lld -o %t2 %t.script1
-# RUN: llvm-readobj %t2 > /dev/null
-
-# RUN: echo "ENTRY(_label)" > %t.script
-# RUN: ld.lld -o %t2 %t.script %t
-# RUN: llvm-readobj %t2 > /dev/null
-
-# The entry symbol should not cause an undefined error.
-# RUN: echo "ENTRY(_wrong_label)" > %t.script
-# RUN: ld.lld -o %t2 %t.script %t
-# RUN: ld.lld --entry=abc -o %t2 %t
-
-# -e has precedence over linker script's ENTRY.
-# RUN: echo "ENTRY(_label)" > %t.script
-# RUN: ld.lld -e _start -o %t2 %t.script %t
-# RUN: llvm-readobj -file-headers -symbols %t2 | \
-# RUN:   FileCheck -check-prefix=ENTRY-OVERLOAD %s
-
-# ENTRY-OVERLOAD: Entry: [[ENTRY:0x[0-9A-F]+]]
-# ENTRY-OVERLOAD: Name: _start
-# ENTRY-OVERLOAD-NEXT: Value: [[ENTRY]]
-
-# The entry symbol can be a linker-script-defined symbol.
-# RUN: echo "ENTRY(foo); foo = 1;" > %t.script
-# RUN: ld.lld -o %t2 %t.script %t
-# RUN: llvm-readobj -file-headers -symbols %t2 | \
-# RUN:   FileCheck -check-prefix=ENTRY-SCRIPT %s
-
-# ENTRY-SCRIPT: Entry: 0x1
-
-# RUN: echo "ENTRY(no_such_symbol);" > %t.script
-# RUN: ld.lld -o %t2 %t.script %t 2>&1 | \
-# RUN:   FileCheck -check-prefix=ENTRY-MISSING %s
-
-# ENTRY-MISSING: warning: cannot find entry symbol no_such_symbol
-
 # RUN: echo "OUTPUT_FORMAT(elf64-x86-64) /*/*/ GROUP(\"%t\" )" > %t.script
 # RUN: ld.lld -o %t2 %t.script
 # RUN: llvm-readobj %t2 > /dev/null
 
-# RUN: echo "GROUP(AS_NEEDED(\"%t\"))" > %t.script
-# RUN: ld.lld -o %t2 %t.script
-# RUN: llvm-readobj %t2 > /dev/null
-
 # RUN: rm -f %t.out
 # RUN: echo "OUTPUT(\"%t.out\")" > %t.script
 # RUN: ld.lld %t.script %t
 
 .globl _start, _label
 _start:
-  mov $60, %rax
-  mov $42, %rdi
+  ret
 _label:
-  syscall
+  ret
similarity index 94%
rename from lld/test/ELF/linkerscript/linkerscript2.s
rename to lld/test/ELF/linkerscript/searchdir.s
index 6ecd9e7..858c3c5 100644 (file)
@@ -2,9 +2,8 @@
 # implemented in Python, and the Cygwin implementations of the Unix utilities.
 # Avoid running these tests on Windows for now by requiring a real shell.
 
-# REQUIRES: shell
+# REQUIRES: x86, shell
 
-# REQUIRES: x86
 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-freebsd %s -o %t
 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-freebsd \
 # RUN:   %p/Inputs/libsearch-dyn.s -o %tdyn.o