When we originally wrote these tests we didn't have a stable and fleshed out assembly format. Now we do so we should prefer that over llvm ir for lld tests to avoid including more part of llvm than necessary in order to run the test. This change converts just 30 out of about 130 test files. More to come when I have some more time. Differential Revision: https://reviews.llvm.org/D80361
39 lines
1.7 KiB
Plaintext
39 lines
1.7 KiB
Plaintext
; Verify that the -u / --undefined option is able to pull in symbols from
|
|
; an archive, and doesn't error when uses to pull in a symbol already loaded.
|
|
;
|
|
; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret64.s -o %t.o
|
|
; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t2.o
|
|
; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.start.o
|
|
; RUN: rm -f %t2.a
|
|
; RUN: llvm-ar rcs %t2.a %t2.o
|
|
; RUN: wasm-ld %t.start.o --no-gc-sections %t2.a %t.o -o %t.wasm -u ret32 --undefined ret64
|
|
; RUN: obj2yaml %t.wasm | FileCheck %s
|
|
; RUN: wasm-ld %t.start.o --no-gc-sections %t2.a %t.o -o %t2.wasm
|
|
; RUN: obj2yaml %t2.wasm | FileCheck %s -check-prefix=NO-LOAD
|
|
|
|
; CHECK: Name: name
|
|
; CHECK-NEXT: FunctionNames:
|
|
; CHECK-NEXT: - Index: 0
|
|
; CHECK-NEXT: Name: __wasm_call_ctors
|
|
; CHECK-NEXT: - Index: 1
|
|
; CHECK-NEXT: Name: _start
|
|
; CHECK-NEXT: - Index: 2
|
|
; CHECK-NEXT: Name: ret64
|
|
; CHECK-NEXT: - Index: 3
|
|
; CHECK-NEXT: Name: ret32
|
|
; CHECK-NEXT: ...
|
|
|
|
; NO-LOAD: Name: name
|
|
; NO-LOAD-NEXT: FunctionNames:
|
|
; NO-LOAD-NEXT: - Index: 0
|
|
; NO-LOAD-NEXT: Name: __wasm_call_ctors
|
|
; NO-LOAD-NEXT: - Index: 1
|
|
; NO-LOAD-NEXT: Name: _start
|
|
; NO-LOAD-NEXT: - Index: 2
|
|
; NO-LOAD-NEXT: Name: ret64
|
|
; NO-LOAD-NEXT: ...
|
|
|
|
; Verify that referencing a symbol that is not found doesn't result in a link
|
|
; failure. This matches the behaviour of the ELF linker.
|
|
; RUN: wasm-ld %t.start.o -o %t.wasm -u symboldoesnotexist
|