Mercurial > hg > CbC > CbC_llvm
comparison lld/test/ELF/reproduce.s @ 173:0572611fdcc8 llvm10 llvm12
reorgnization done
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 11:55:54 +0900 |
parents | 1d019706d866 |
children | c4bab56944e8 |
comparison
equal
deleted
inserted
replaced
172:9fbae9c8bf63 | 173:0572611fdcc8 |
---|---|
1 # REQUIRES: x86 | 1 # REQUIRES: x86 |
2 # REQUIRES: shell | |
3 | |
4 # Extracting the tar archive can get over the path limit on windows. | |
5 | 2 |
6 # RUN: rm -rf %t.dir | 3 # RUN: rm -rf %t.dir |
7 # RUN: mkdir -p %t.dir/build1 | 4 # RUN: mkdir -p %t.dir/build1 |
8 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.dir/build1/foo.o | 5 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.dir/build1/foo.o |
9 # RUN: cd %t.dir | 6 # RUN: cd %t.dir |
10 # RUN: ld.lld --hash-style=gnu build1/foo.o -o bar -shared --as-needed --reproduce repro.tar | 7 # RUN: ld.lld --hash-style=gnu build1/foo.o -o bar -shared --as-needed --reproduce repro1.tar |
11 # RUN: tar xf repro.tar | 8 # RUN: tar xOf repro1.tar repro1/%:t.dir/build1/foo.o > build1-foo.o |
12 # RUN: diff build1/foo.o repro/%:t.dir/build1/foo.o | 9 # RUN: cmp build1/foo.o build1-foo.o |
13 | 10 |
14 # RUN: FileCheck %s --check-prefix=RSP < repro/response.txt | 11 # RUN: tar xf repro1.tar repro1/response.txt repro1/version.txt |
15 # RSP: {{^}}--hash-style gnu{{$}} | 12 # RUN: FileCheck %s --check-prefix=RSP1 < repro1/response.txt |
16 # RSP-NOT: {{^}}repro{{[/\\]}} | 13 # RSP1: {{^}}--hash-style gnu{{$}} |
17 # RSP-NEXT: {{[/\\]}}foo.o | 14 # RSP1-NOT: {{^}}repro1{{[/\\]}} |
18 # RSP-NEXT: -o bar | 15 # RSP1-NEXT: {{[/\\]}}foo.o |
19 # RSP-NEXT: -shared | 16 # RSP1-NEXT: -o bar |
20 # RSP-NEXT: --as-needed | 17 # RSP1-NEXT: -shared |
18 # RSP1-NEXT: --as-needed | |
21 | 19 |
22 # RUN: FileCheck %s --check-prefix=VERSION < repro/version.txt | 20 # RUN: FileCheck %s --check-prefix=VERSION < repro1/version.txt |
23 # VERSION: LLD | 21 # VERSION: LLD |
24 | 22 |
25 # RUN: mkdir -p %t.dir/build2/a/b/c | 23 # RUN: mkdir -p %t.dir/build2/a/b/c |
26 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.dir/build2/foo.o | 24 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.dir/build2/foo.o |
27 # RUN: cd %t.dir/build2/a/b/c | 25 # RUN: cd %t.dir/build2/a/b/c |
28 # RUN: env LLD_REPRODUCE=repro.tar ld.lld ./../../../foo.o -o bar -shared --as-needed | 26 # RUN: env LLD_REPRODUCE=repro2.tar ld.lld ./../../../foo.o -o /dev/null -shared --as-needed |
29 # RUN: tar xf repro.tar | 27 # RUN: tar xOf repro2.tar repro2/%:t.dir/build2/foo.o > build2-foo.o |
30 # RUN: diff %t.dir/build2/foo.o repro/%:t.dir/build2/foo.o | 28 # RUN: cmp %t.dir/build2/foo.o build2-foo.o |
31 | 29 |
30 # RUN: mkdir -p %t.dir/build3 | |
31 # RUN: cd %t.dir/build3 | |
32 # RUN: echo "{ local: *; };" > ver | 32 # RUN: echo "{ local: *; };" > ver |
33 # RUN: echo "{};" > dyn | 33 # RUN: echo "{};" > dyn |
34 # RUN: echo > file | 34 # RUN: echo > file |
35 # RUN: echo > file2 | 35 # RUN: echo > file2 |
36 # RUN: echo "_start" > order | 36 # RUN: echo "_start" > order |
37 # RUN: mkdir "sysroot with spaces" | 37 # RUN: mkdir "sysroot with spaces" |
38 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o 'foo bar' | 38 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o 'foo bar' |
39 # RUN: ld.lld --reproduce repro2.tar 'foo bar' -L"foo bar" -Lfile -Tfile2 \ | 39 # RUN: ld.lld --reproduce repro3.tar 'foo bar' -L"foo bar" -Lfile -Tfile2 \ |
40 # RUN: --dynamic-list dyn -rpath file --script=file --symbol-ordering-file order \ | 40 # RUN: --dynamic-list dyn -rpath file --script=file --symbol-ordering-file order \ |
41 # RUN: --sysroot "sysroot with spaces" --sysroot="sysroot with spaces" \ | 41 # RUN: --sysroot "sysroot with spaces" --sysroot="sysroot with spaces" \ |
42 # RUN: --version-script ver --dynamic-linker "some unusual/path" -soname 'foo bar' \ | 42 # RUN: --version-script ver --dynamic-linker "some unusual/path" -soname 'foo bar' \ |
43 # RUN: -soname='foo bar' | 43 # RUN: -soname='foo bar' |
44 # RUN: tar xf repro2.tar | 44 # RUN: tar xOf repro3.tar repro3/response.txt | FileCheck %s --check-prefix=RSP3 |
45 # RUN: FileCheck %s --check-prefix=RSP2 < repro2/response.txt | 45 # RSP3: --chroot . |
46 # RSP2: --chroot . | 46 # RSP3: "{{.*}}foo bar" |
47 # RSP2: "{{.*}}foo bar" | 47 # RSP3-NEXT: --library-path "[[BASEDIR:.+]]/foo bar" |
48 # RSP2-NEXT: --library-path "[[BASEDIR:.+]]/foo bar" | 48 # RSP3-NEXT: --library-path [[BASEDIR]]/file |
49 # RSP2-NEXT: --library-path [[BASEDIR]]/file | 49 # RSP3-NEXT: --script [[BASEDIR]]/file2 |
50 # RSP2-NEXT: --script [[BASEDIR]]/file2 | 50 # RSP3-NEXT: --dynamic-list [[BASEDIR]]/dyn |
51 # RSP2-NEXT: --dynamic-list [[BASEDIR]]/dyn | 51 # RSP3-NEXT: -rpath [[BASEDIR]]/file |
52 # RSP2-NEXT: -rpath [[BASEDIR]]/file | 52 # RSP3-NEXT: --script [[BASEDIR]]/file |
53 # RSP2-NEXT: --script [[BASEDIR]]/file | 53 # RSP3-NEXT: --symbol-ordering-file [[BASEDIR]]/order |
54 # RSP2-NEXT: --symbol-ordering-file [[BASEDIR]]/order | 54 # RSP3-NEXT: --sysroot "[[BASEDIR]]/sysroot with spaces" |
55 # RSP2-NEXT: --sysroot "[[BASEDIR]]/sysroot with spaces" | 55 # RSP3-NEXT: --sysroot "[[BASEDIR]]/sysroot with spaces" |
56 # RSP2-NEXT: --sysroot "[[BASEDIR]]/sysroot with spaces" | 56 # RSP3-NEXT: --version-script [[BASEDIR]]/ver |
57 # RSP2-NEXT: --version-script [[BASEDIR]]/ver | 57 # RSP3-NEXT: --dynamic-linker "some unusual/path" |
58 # RSP2-NEXT: --dynamic-linker "some unusual/path" | 58 # RSP3-NEXT: -soname "foo bar" |
59 # RSP2-NEXT: -soname "foo bar" | 59 # RSP3-NEXT: -soname "foo bar" |
60 # RSP2-NEXT: -soname "foo bar" | |
61 | 60 |
62 # RUN: tar tf repro2.tar | FileCheck %s | 61 # RUN: tar tf repro3.tar | FileCheck %s |
63 # CHECK: repro2/response.txt | 62 # CHECK: repro3/response.txt |
64 # CHECK-NEXT: repro2/version.txt | 63 # CHECK-NEXT: repro3/version.txt |
65 # CHECK-NEXT: repro2/{{.*}}/order | 64 # CHECK-NEXT: repro3/{{.*}}/order |
66 # CHECK-NEXT: repro2/{{.*}}/dyn | 65 # CHECK-NEXT: repro3/{{.*}}/dyn |
67 # CHECK-NEXT: repro2/{{.*}}/ver | 66 # CHECK-NEXT: repro3/{{.*}}/ver |
68 # CHECK-NEXT: repro2/{{.*}}/foo bar | 67 # CHECK-NEXT: repro3/{{.*}}/foo bar |
69 # CHECK-NEXT: repro2/{{.*}}/file2 | 68 # CHECK-NEXT: repro3/{{.*}}/file2 |
70 # CHECK-NEXT: repro2/{{.*}}/file | 69 # CHECK-NEXT: repro3/{{.*}}/file |
71 | 70 |
72 ## Check that directory path is stripped from -o <file-path> | 71 ## Check that directory path is stripped from -o <file-path> |
73 # RUN: mkdir -p %t.dir/build3/a/b/c | 72 # RUN: mkdir -p %t.dir/build4/a/b/c |
74 # RUN: cd %t.dir | 73 # RUN: cd %t.dir |
75 # RUN: ld.lld build1/foo.o -o build3/a/b/c/bar -shared --as-needed --reproduce=repro3.tar | 74 # RUN: ld.lld build1/foo.o -o build4/a/b/c/bar -shared --as-needed --reproduce=repro4.tar |
76 # RUN: tar xf repro3.tar | 75 # RUN: tar xOf repro4.tar repro4/response.txt | FileCheck %s --check-prefix=RSP4 |
77 # RUN: FileCheck %s --check-prefix=RSP3 < repro3/response.txt | 76 # RSP4: -o bar |
78 # RSP3: -o bar | |
79 | 77 |
80 .globl _start | 78 .globl _start |
81 _start: | 79 _start: |
82 mov $60, %rax | 80 mov $60, %rax |
83 mov $42, %rdi | 81 mov $42, %rdi |