xref: /llvm-project/lld/test/ELF/error-handling-script-linux.test (revision 12d4c89e88bf9349a063fdd992233b29adeb8241)
1# REQUIRES: x86
2# UNSUPPORTED: system-windows
3
4# RUN: rm -rf %t && split-file %s %t && cd %t
5# RUN: chmod +x a.sh
6# RUN: llvm-mc -filetype=obj -triple=x86_64 /dev/null -o 0.o
7# RUN: not ld.lld -lidontexist --error-handling-script=%t/a.sh 0.o 2>&1 |\
8# RUN:   FileCheck --check-prefix=CHECK-LIB %s --match-full-lines --strict-whitespace
9# RUN: not ld.lld -lidontexist --error-handling-script=./notexist 0.o 2>&1 |\
10# RUN:   FileCheck --check-prefix=CHECK-SCRIPT-DOES-NOT-EXIST %s
11
12# RUN: llvm-mc -filetype=obj -triple=x86_64 1.s -o 1.o
13# RUN: not ld.lld --error-handling-script=./a.sh 1.o 2>&1 |\
14# RUN:   FileCheck --check-prefix=CHECK-SYM-C %s
15
16# RUN: llvm-mc -filetype=obj -triple=x86_64 2.s -o 2.o
17# RUN: not ld.lld --demangle --error-handling-script=./a.sh 2.o 2>&1 |\
18# RUN:   FileCheck --check-prefix=CHECK-SYM-CXX-DEMANGLE %s
19# RUN: not ld.lld --no-demangle --error-handling-script=./a.sh 2.o 2>&1 |\
20# RUN:   FileCheck --check-prefix=CHECK-SYM-CXX-NO-DEMANGLE %s
21
22# RUN: llvm-mc -filetype=obj -triple=x86_64 3.s -o 3.o
23# RUN: not ld.lld --error-handling-script=%t/a.sh 3.o 2>&1 |\
24# RUN:   FileCheck --check-prefix=CHECK-SYM-C-CORRECTION %s
25
26#      CHECK-LIB:script: info: called with missing-lib idontexist
27# CHECK-LIB-NEXT:{{.*}}error: unable to find library -lidontexist
28
29# CHECK-SCRIPT-DOES-NOT-EXIST:      error: unable to find library -lidontexist
30# CHECK-SCRIPT-DOES-NOT-EXIST-NEXT: error: error handling script './notexist' failed to execute
31
32# CHECK-SYM-C:      script: info: called with undefined-symbol a
33# CHECK-SYM-C-NEXT: error: undefined symbol: a
34
35# CHECK-SYM-CXX-DEMANGLE:      script: info: called with undefined-symbol _Z1av
36# CHECK-SYM-CXX-DEMANGLE-NEXT: error: undefined symbol: a()
37
38# CHECK-SYM-CXX-NO-DEMANGLE:      script: info: called with undefined-symbol _Z1av
39# CHECK-SYM-CXX-NO-DEMANGLE-NEXT: error: undefined symbol: _Z1av
40
41# CHECK-SYM-C-CORRECTION:      script: info: called with undefined-symbol a
42# CHECK-SYM-C-CORRECTION-NEXT: error: undefined symbol: a
43# CHECK-SYM-C-CORRECTION-NEXT: >>> referenced by 3.o:
44# CHECK-SYM-C-CORRECTION-NEXT: >>> did you mean: a_
45
46#--- 1.s
47movl a(%rip), %eax
48#--- 2.s
49movl _Z1av(%rip), %eax
50#--- 3.s
51a_: ret
52movl a(%rip), %eax
53
54#--- a.sh
55#!/bin/sh
56echo "script: info: called with $*"
57