Skip to content

Commit 30fa011

Browse files
committed
[ELF,test] Improve --sysroot and GROUP tests
3i.t (INCLUDE "%t.dir/3a.t") describes a behavior difference from GNU ld, which will be fixed by the next change.
1 parent c538434 commit 30fa011

File tree

1 file changed

+44
-46
lines changed

1 file changed

+44
-46
lines changed

lld/test/ELF/linkerscript/group.s

Lines changed: 44 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -3,62 +3,60 @@
33

44
# RUN: rm -rf %t.dir && mkdir %t.dir
55
# RUN: rm -rf %t && split-file %s %t && cd %t
6-
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o a.o
7-
# RUN: llvm-mc -filetype=obj -triple=x86_64 %p/Inputs/libsearch-st.s -o b.o
8-
# RUN: llvm-ar rc %t.dir/libxyz.a b.o
9-
10-
# RUN: echo 'GROUP("a.o")' > %t.t
11-
# RUN: ld.lld -o %t2 %t.t
12-
# RUN: llvm-readobj %t2 > /dev/null
13-
14-
# RUN: echo 'INPUT("a.o")' > %t.t
15-
# RUN: ld.lld -o %t2 %t.t
16-
# RUN: llvm-readobj %t2 > /dev/null
17-
18-
# RUN: echo 'GROUP("a.o" libxyz.a )' > %t.t
19-
# RUN: not ld.lld -o /dev/null %t.t 2>/dev/null
20-
# RUN: ld.lld -o %t2 %t.t -L%t.dir
21-
# RUN: llvm-readobj %t2 > /dev/null
22-
23-
# RUN: echo 'GROUP("a.o" =libxyz.a )' > %t.t
24-
# RUN: not ld.lld -o /dev/null %t.t 2>/dev/null
25-
# RUN: ld.lld -o %t2 %t.t --sysroot=%t.dir
26-
# RUN: llvm-readobj %t2 > /dev/null
27-
28-
# RUN: echo 'GROUP("a.o" -lxyz )' > %t.t
29-
# RUN: not ld.lld -o /dev/null %t.t 2>/dev/null
30-
# RUN: ld.lld -o %t2 %t.t -L%t.dir
31-
# RUN: llvm-readobj %t2 > /dev/null
32-
33-
# RUN: echo 'GROUP("a.o" libxyz.a )' > %t.t
34-
# RUN: not ld.lld -o /dev/null %t.t 2>/dev/null
35-
# RUN: ld.lld -o %t2 %t.t -L%t.dir
36-
# RUN: llvm-readobj %t2 > /dev/null
37-
38-
# RUN: echo 'GROUP("a.o" /libxyz.a )' > %t.t
6+
# RUN: llvm-mc -filetype=obj -triple=x86_64 a.s -o a.o
7+
# RUN: llvm-mc -filetype=obj -triple=x86_64 b.s -o b.o
8+
# RUN: llvm-mc -filetype=obj -triple=x86_64 %p/Inputs/libsearch-st.s -o xyz.o
9+
# RUN: llvm-ar rc %t.dir/libb.a b.o
10+
# RUN: llvm-ar rc %t.dir/libxyz.a xyz.o
11+
12+
# RUN: echo 'GROUP("a.o" libxyz.a -lxyz b.o )' > 1.t
13+
# RUN: not ld.lld 1.t 2>&1 | FileCheck %s --check-prefix=NOLIB
14+
# RUN: ld.lld 1.t -L%t.dir
15+
# RUN: llvm-nm a.out | FileCheck %s
16+
17+
# RUN: echo 'GROUP( "a.o" b.o =libxyz.a )' > 2.t
18+
# RUN: not ld.lld 2.t 2>&1 | FileCheck %s --check-prefix=CANNOT_OPEN -DFILE=libxyz.a
19+
# RUN: ld.lld 2.t --sysroot=%t.dir
20+
# RUN: llvm-nm a.out | FileCheck %s
21+
22+
# RUN: echo 'GROUP("%t.dir/3a.t")' > 3.t
23+
# RUN: echo 'INCLUDE "%t.dir/3a.t"' > 3i.t
24+
# RUN: echo 'GROUP(AS_NEEDED("a.o"))INPUT(/libb.a)' > %t.dir/3a.t
25+
# RUN: ld.lld 3.t --sysroot=%t.dir
26+
# RUN: llvm-nm a.out | FileCheck %s
27+
# RUN: not ld.lld 3i.t --sysroot=%t.dir 2>&1 | FileCheck %s --check-prefix=CANNOT_OPEN -DFILE=/libb.a
28+
29+
# RUN: echo 'GROUP("%t.dir/4a.t")INPUT(/libb.a)' > 4.t
30+
# RUN: echo 'GROUP(AS_NEEDED("a.o"))' > %t.dir/4a.t
31+
# RUN: not ld.lld 4.t --sysroot=%t.dir 2>&1 | FileCheck %s --check-prefix=CANNOT_OPEN -DFILE=/libb.a
32+
33+
# RUN: echo 'INCLUDE "%t.dir/5a.t" INPUT(/libb.a)' > 5.t
34+
# RUN: echo 'GROUP(a.o)' > %t.dir/5a.t
35+
# RUN: not ld.lld 5.t --sysroot=%t.dir 2>&1 | FileCheck %s --check-prefix=CANNOT_OPEN -DFILE=/libb.a
36+
37+
# CHECK: T _start
38+
39+
# NOLIB: error: {{.*}}unable to find
40+
41+
# RUN: echo 'GROUP("a.o" /libxyz.a )' > a.t
3942
# RUN: echo 'GROUP("%t/a.o" /libxyz.a )' > %t.dir/xyz.t
40-
# RUN: not ld.lld -o /dev/null %t.t 2>&1 | FileCheck %s --check-prefix=CANNOT_OPEN -DFILE=/libxyz.a
41-
# RUN: not ld.lld -o /dev/null %t.t --sysroot=%t.dir 2>&1 | FileCheck %s --check-prefix=CANNOT_OPEN -DFILE=/libxyz.a
43+
# RUN: not ld.lld a.t 2>&1 | FileCheck %s --check-prefix=CANNOT_OPEN -DFILE=/libxyz.a
44+
# RUN: not ld.lld a.t --sysroot=%t.dir 2>&1 | FileCheck %s --check-prefix=CANNOT_OPEN -DFILE=/libxyz.a
4245

4346
## Since %t.dir/%t does not exist, report an error, instead of falling back to %t
4447
## without the syroot prefix.
45-
# RUN: not ld.lld -o /dev/null %t.dir/xyz.t --sysroot=%t.dir 2>&1 | FileCheck %s --check-prefix=CANNOT_FIND_SYSROOT -DTMP=%t/a.o
48+
# RUN: not ld.lld %t.dir/xyz.t --sysroot=%t.dir 2>&1 | FileCheck %s --check-prefix=CANNOT_FIND_SYSROOT -DTMP=%t/a.o
4649

4750
# CANNOT_FIND_SYSROOT: error: {{.*}}xyz.t:1: cannot find [[TMP]] inside {{.*}}.dir
4851
# CANNOT_FIND_SYSROOT-NEXT: >>> GROUP({{.*}}
4952

50-
# RUN: echo 'GROUP("2.t")' > 1.t
51-
# RUN: echo 'GROUP("a.o")' > 2.t
52-
# RUN: ld.lld 1.t
53-
# RUN: llvm-readobj a.out > /dev/null
54-
55-
# RUN: echo 'GROUP(AS_NEEDED("a.o"))' > 1.t
56-
# RUN: ld.lld 1.t
57-
# RUN: llvm-readobj a.out > /dev/null
58-
5953
# CANNOT_OPEN: error: cannot open [[FILE]]: {{.*}}
6054

6155
#--- a.s
6256
.globl _start
6357
_start:
64-
ret
58+
call b
59+
60+
#--- b.s
61+
.globl b
62+
b:

0 commit comments

Comments
 (0)