[lld] r289148 - Split linkerscript.s into small test files.

Rui Ueyama via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 8 14:36:12 PST 2016


Author: ruiu
Date: Thu Dec  8 16:36:12 2016
New Revision: 289148

URL: http://llvm.org/viewvc/llvm-project?rev=289148&view=rev
Log:
Split linkerscript.s into small test files.

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.

Added:
    lld/trunk/test/ELF/linkerscript/entry.s
    lld/trunk/test/ELF/linkerscript/group.s
    lld/trunk/test/ELF/linkerscript/searchdir.s
      - copied, changed from r289146, lld/trunk/test/ELF/linkerscript/linkerscript2.s
Removed:
    lld/trunk/test/ELF/linkerscript/linkerscript2.s
Modified:
    lld/trunk/test/ELF/linkerscript/linkerscript.s

Added: lld/trunk/test/ELF/linkerscript/entry.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/entry.s?rev=289148&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/entry.s (added)
+++ lld/trunk/test/ELF/linkerscript/entry.s Thu Dec  8 16:36:12 2016
@@ -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

Added: lld/trunk/test/ELF/linkerscript/group.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/group.s?rev=289148&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/group.s (added)
+++ lld/trunk/test/ELF/linkerscript/group.s Thu Dec  8 16:36:12 2016
@@ -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

Modified: lld/trunk/test/ELF/linkerscript/linkerscript.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/linkerscript.s?rev=289148&r1=289147&r2=289148&view=diff
==============================================================================
--- lld/trunk/test/ELF/linkerscript/linkerscript.s (original)
+++ lld/trunk/test/ELF/linkerscript/linkerscript.s Thu Dec  8 16:36:12 2016
@@ -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
@@ -127,7 +47,6 @@
 
 .globl _start, _label
 _start:
-  mov $60, %rax
-  mov $42, %rdi
+  ret
 _label:
-  syscall
+  ret

Removed: lld/trunk/test/ELF/linkerscript/linkerscript2.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/linkerscript2.s?rev=289147&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/linkerscript2.s (original)
+++ lld/trunk/test/ELF/linkerscript/linkerscript2.s (removed)
@@ -1,17 +0,0 @@
-# There is some bad quoting interaction between lit's internal shell, which is
-# 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
-# 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
-# RUN: mkdir -p %t.dir
-# RUN: ld.lld -shared %tdyn.o -o %t.dir/libls.so
-# RUN: echo "SEARCH_DIR(\"%t.dir\")" > %t.script
-# RUN: ld.lld -o %t2 --script %t.script -lls %t
-
-.globl _start,_bar
-_start:

Copied: lld/trunk/test/ELF/linkerscript/searchdir.s (from r289146, lld/trunk/test/ELF/linkerscript/linkerscript2.s)
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/searchdir.s?p2=lld/trunk/test/ELF/linkerscript/searchdir.s&p1=lld/trunk/test/ELF/linkerscript/linkerscript2.s&r1=289146&r2=289148&rev=289148&view=diff
==============================================================================
--- lld/trunk/test/ELF/linkerscript/linkerscript2.s (original)
+++ lld/trunk/test/ELF/linkerscript/searchdir.s Thu Dec  8 16:36:12 2016
@@ -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




More information about the llvm-commits mailing list