Index: test/wasm/alias.ll =================================================================== --- test/wasm/alias.ll +++ test/wasm/alias.ll @@ -1,5 +1,5 @@ ; RUN: llc -filetype=obj -o %t.o %s -; RUN: wasm-ld --check-signatures %t.o -o %t.wasm +; RUN: wasm-ld %t.o -o %t.wasm ; RUN: obj2yaml %t.wasm | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/archive.ll =================================================================== --- test/wasm/archive.ll +++ test/wasm/archive.ll @@ -4,12 +4,12 @@ ; RUN: llc -filetype=obj %S/Inputs/hello.ll -o %t.a3.o ; RUN: llvm-ar rcs %t.a %t.a1.o %t.a2.o %t.a3.o ; RUN: rm -f %t.imports -; RUN: not wasm-ld --check-signatures %t.a %t.o -o %t.wasm 2>&1 | FileCheck -check-prefix=CHECK-UNDEFINED %s +; RUN: not wasm-ld %t.a %t.o -o %t.wasm 2>&1 | FileCheck -check-prefix=CHECK-UNDEFINED %s ; CHECK-UNDEFINED: undefined symbol: missing_func ; RUN: echo 'missing_func' > %t.imports -; RUN: wasm-ld --check-signatures -r %t.a %t.o -o %t.wasm +; RUN: wasm-ld -r %t.a %t.o -o %t.wasm ; RUN: llvm-nm -a %t.wasm | FileCheck %s @@ -40,4 +40,4 @@ ; CHECK-NOT: hello ; Specifying the same archive twice is allowed. -; RUN: wasm-ld --check-signatures %t.a %t.a %t.o -o %t.wasm +; RUN: wasm-ld %t.a %t.a %t.o -o %t.wasm Index: test/wasm/call-indirect.ll =================================================================== --- test/wasm/call-indirect.ll +++ test/wasm/call-indirect.ll @@ -1,6 +1,6 @@ ; RUN: llc -filetype=obj %p/Inputs/call-indirect.ll -o %t2.o ; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld --check-signatures -o %t.wasm %t2.o %t.o +; RUN: wasm-ld -o %t.wasm %t2.o %t.o ; RUN: obj2yaml %t.wasm | FileCheck %s ; bitcode generated from the following C code: Index: test/wasm/comdats.ll =================================================================== --- test/wasm/comdats.ll +++ test/wasm/comdats.ll @@ -1,7 +1,7 @@ ; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/comdat1.ll -o %t1.o ; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/comdat2.ll -o %t2.o ; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o -; RUN: wasm-ld --check-signatures -o %t.wasm %t.o %t1.o %t2.o +; RUN: wasm-ld -o %t.wasm %t.o %t1.o %t2.o ; RUN: obj2yaml %t.wasm | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/conflict.test =================================================================== --- test/wasm/conflict.test +++ test/wasm/conflict.test @@ -1,5 +1,5 @@ # RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o -# RUN: not wasm-ld --check-signatures -o %t.wasm %t.ret32.o %t.ret32.o 2>&1 | FileCheck %s +# RUN: not wasm-ld -o %t.wasm %t.ret32.o %t.ret32.o 2>&1 | FileCheck %s # CHECK: duplicate symbol: ret32 # CHECK-NEXT: >>> defined in {{.*}}conflict.test.tmp.ret32.o Index: test/wasm/custom-sections.ll =================================================================== --- test/wasm/custom-sections.ll +++ test/wasm/custom-sections.ll @@ -1,6 +1,6 @@ ; RUN: llc -filetype=obj %s -o %t1.o ; RUN: llc -filetype=obj %S/Inputs/custom.ll -o %t2.o -; RUN: wasm-ld --check-signatures --relocatable -o %t.wasm %t1.o %t2.o +; RUN: wasm-ld --relocatable -o %t.wasm %t1.o %t2.o ; RUN: obj2yaml %t.wasm | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/cxx-mangling.ll =================================================================== --- test/wasm/cxx-mangling.ll +++ test/wasm/cxx-mangling.ll @@ -1,7 +1,7 @@ ; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld --demangle --check-signatures -o %t_demangle.wasm %t.o +; RUN: wasm-ld --demangle -o %t_demangle.wasm %t.o ; RUN: obj2yaml %t_demangle.wasm | FileCheck %s -; RUN: wasm-ld --no-demangle --check-signatures -o %t_nodemangle.wasm %t.o +; RUN: wasm-ld --no-demangle -o %t_nodemangle.wasm %t.o ; RUN: obj2yaml %t_nodemangle.wasm | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/data-layout.ll =================================================================== --- test/wasm/data-layout.ll +++ test/wasm/data-layout.ll @@ -13,7 +13,7 @@ @local_struct = hidden global %struct.s zeroinitializer, align 4 @local_struct_internal_ptr = hidden local_unnamed_addr global i32* getelementptr inbounds (%struct.s, %struct.s* @local_struct, i32 0, i32 1), align 4 -; RUN: wasm-ld -no-gc-sections --check-signatures --allow-undefined -o %t.wasm %t.o %t.hello.o +; RUN: wasm-ld -no-gc-sections --allow-undefined -o %t.wasm %t.o %t.hello.o ; RUN: obj2yaml %t.wasm | FileCheck %s ; CHECK: - Type: MEMORY @@ -57,7 +57,7 @@ ; CHECK-NEXT: - Type: CUSTOM -; RUN: wasm-ld -no-gc-sections --check-signatures --allow-undefined \ +; RUN: wasm-ld -no-gc-sections --allow-undefined \ ; RUN: --initial-memory=131072 --max-memory=131072 -o %t_max.wasm %t.o \ ; RUN: %t.hello.o ; RUN: obj2yaml %t_max.wasm | FileCheck %s -check-prefix=CHECK-MAX @@ -69,7 +69,7 @@ ; CHECK-MAX-NEXT: Maximum: 0x00000002 -; RUN: wasm-ld --check-signatures --relocatable -o %t_reloc.wasm %t.o %t.hello.o +; RUN: wasm-ld --relocatable -o %t_reloc.wasm %t.o %t.hello.o ; RUN: obj2yaml %t_reloc.wasm | FileCheck %s -check-prefix=RELOC ; RELOC: - Type: DATA Index: test/wasm/demangle.ll =================================================================== --- test/wasm/demangle.ll +++ test/wasm/demangle.ll @@ -1,10 +1,10 @@ ; RUN: llc -filetype=obj %s -o %t.o -; RUN: not wasm-ld --check-signatures --undefined _Z3fooi \ +; RUN: not wasm-ld --undefined _Z3fooi \ ; RUN: -o %t.wasm %t.o 2>&1 | FileCheck %s ; CHECK: error: undefined symbol: foo(int) -; RUN: not wasm-ld --check-signatures --no-demangle --undefined _Z3fooi \ +; RUN: not wasm-ld --no-demangle --undefined _Z3fooi \ ; RUN: -o %t.wasm %t.o 2>&1 | FileCheck -check-prefix=CHECK-NODEMANGLE %s ; CHECK-NODEMANGLE: error: undefined symbol: _Z3fooi Index: test/wasm/entry.ll =================================================================== --- test/wasm/entry.ll +++ test/wasm/entry.ll @@ -7,9 +7,9 @@ ret void } -; RUN: wasm-ld --check-signatures -e entry -o %t1.wasm %t.o +; RUN: wasm-ld -e entry -o %t1.wasm %t.o ; RUN: obj2yaml %t1.wasm | FileCheck %s -; RUN: wasm-ld --check-signatures --entry=entry -o %t2.wasm %t.o +; RUN: wasm-ld --entry=entry -o %t2.wasm %t.o ; RUN: obj2yaml %t2.wasm | FileCheck %s ; CHECK: - Type: EXPORT @@ -30,7 +30,7 @@ ; The __wasm_call_ctors is somewhat special. Make sure we can use it ; as the entry point if we choose -; RUN: wasm-ld --check-signatures --entry=__wasm_call_ctors -o %t3.wasm %t.o +; RUN: wasm-ld --entry=__wasm_call_ctors -o %t3.wasm %t.o ; RUN: obj2yaml %t3.wasm | FileCheck %s -check-prefix=CHECK-CTOR ; CHECK-CTOR: - Type: EXPORT Index: test/wasm/export-table.test =================================================================== --- test/wasm/export-table.test +++ test/wasm/export-table.test @@ -1,5 +1,5 @@ # RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.start.o -# RUN: wasm-ld --check-signatures --export-table -o %t.wasm %t.start.o +# RUN: wasm-ld --export-table -o %t.wasm %t.start.o # RUN: obj2yaml %t.wasm | FileCheck %s # Verify the --export-table flag creates a table export Index: test/wasm/export.ll =================================================================== --- test/wasm/export.ll +++ test/wasm/export.ll @@ -1,6 +1,6 @@ ; RUN: llc -filetype=obj %s -o %t.o -; RUN: not wasm-ld --check-signatures --export=missing -o %t.wasm %t.o 2>&1 | FileCheck -check-prefix=CHECK-ERROR %s -; RUN: wasm-ld --check-signatures --export=hidden_function -o %t.wasm %t.o +; RUN: not wasm-ld --export=missing -o %t.wasm %t.o 2>&1 | FileCheck -check-prefix=CHECK-ERROR %s +; RUN: wasm-ld --export=hidden_function -o %t.wasm %t.o ; RUN: obj2yaml %t.wasm | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/fatal-warnings.ll =================================================================== --- test/wasm/fatal-warnings.ll +++ test/wasm/fatal-warnings.ll @@ -0,0 +1,14 @@ +; RUN: llc -filetype=obj %s -o %t.main.o +; RUN: lld -flavor wasm -o %t.wasm %t.main.o 2>&1 | FileCheck %s -check-prefix=CHECK-WARN +; RUN: not lld -flavor wasm --fatal-warnings -o %t.wasm %t.main.o 2>&1 | FileCheck %s -check-prefix=CHECK-FATAL + +; CHECK-WARN: warning: Function type mismatch: _start +; CHECK-FATAL: error: Function type mismatch: _start + +target triple = "wasm32-unknown-unknown-wasm" + +define hidden i32 @_start(i32 %arg) local_unnamed_addr { +entry: + ret i32 %arg +} + Index: test/wasm/function-imports-first.ll =================================================================== --- test/wasm/function-imports-first.ll +++ test/wasm/function-imports-first.ll @@ -1,6 +1,6 @@ ; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o ; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld --check-signatures -o %t.wasm %t.o %t.ret32.o +; RUN: wasm-ld -o %t.wasm %t.o %t.ret32.o ; RUN: obj2yaml %t.wasm | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/function-imports.ll =================================================================== --- test/wasm/function-imports.ll +++ test/wasm/function-imports.ll @@ -1,6 +1,6 @@ ; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o ; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld --check-signatures -o %t.wasm %t.ret32.o %t.o +; RUN: wasm-ld -o %t.wasm %t.ret32.o %t.o ; RUN: obj2yaml %t.wasm | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/function-index.test =================================================================== --- test/wasm/function-index.test +++ test/wasm/function-index.test @@ -1,6 +1,6 @@ # RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o # RUN: llc -filetype=obj %p/Inputs/ret64.ll -o %t.ret64.o -# RUN: wasm-ld --check-signatures -r -o %t.wasm %t.ret32.o %t.ret64.o +# RUN: wasm-ld -r -o %t.wasm %t.ret32.o %t.ret64.o # RUN: obj2yaml %t.wasm | FileCheck %s CHECK: Sections: Index: test/wasm/import-memory.test =================================================================== --- test/wasm/import-memory.test +++ test/wasm/import-memory.test @@ -1,5 +1,5 @@ # RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.start.o -# RUN: wasm-ld --check-signatures --import-memory -o %t.wasm %t.start.o +# RUN: wasm-ld --import-memory -o %t.wasm %t.start.o # RUN: obj2yaml %t.wasm | FileCheck %s # Verify the --import-memory flag creates a memory import @@ -15,7 +15,7 @@ -# RUN: wasm-ld --check-signatures --import-memory --initial-memory=262144 \ +# RUN: wasm-ld --import-memory --initial-memory=262144 \ # RUN: --max-memory=327680 -o %t.max.wasm %t.start.o # RUN: obj2yaml %t.max.wasm | FileCheck -check-prefix=CHECK-MAX %s Index: test/wasm/import-table.test =================================================================== --- test/wasm/import-table.test +++ test/wasm/import-table.test @@ -1,5 +1,5 @@ # RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.start.o -# RUN: wasm-ld --check-signatures --import-table -o %t.wasm %t.start.o +# RUN: wasm-ld --import-table -o %t.wasm %t.start.o # RUN: obj2yaml %t.wasm | FileCheck %s # Verify the --import-table flag creates a table import Index: test/wasm/init-fini.ll =================================================================== --- test/wasm/init-fini.ll +++ test/wasm/init-fini.ll @@ -49,7 +49,7 @@ { i32, void ()*, i8* } { i32 4000, void ()* @externDtor, i8* null } ] -; RUN: wasm-ld --check-signatures --allow-undefined %t.o %t.global-ctor-dtor.o -o %t.wasm +; RUN: wasm-ld --allow-undefined %t.o %t.global-ctor-dtor.o -o %t.wasm ; RUN: obj2yaml %t.wasm | FileCheck %s ; CHECK: - Type: IMPORT @@ -128,7 +128,7 @@ ; CHECK-NEXT: ... -; RUN: wasm-ld --check-signatures -r %t.o %t.global-ctor-dtor.o -o %t.reloc.wasm +; RUN: wasm-ld -r %t.o %t.global-ctor-dtor.o -o %t.reloc.wasm ; RUN: obj2yaml %t.reloc.wasm | FileCheck -check-prefix=RELOC %s ; RELOC: SymbolTable: Index: test/wasm/invalid-stack-size.test =================================================================== --- test/wasm/invalid-stack-size.test +++ test/wasm/invalid-stack-size.test @@ -1,4 +1,4 @@ ; RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.o -; RUN: not wasm-ld --check-signatures -o %t.wasm -z stack-size=1 %t.o 2>&1 | FileCheck %s +; RUN: not wasm-ld -o %t.wasm -z stack-size=1 %t.o 2>&1 | FileCheck %s ; CHECK: error: stack size must be 16-byte aligned Index: test/wasm/load-undefined.test =================================================================== --- test/wasm/load-undefined.test +++ test/wasm/load-undefined.test @@ -5,7 +5,7 @@ ; RUN: llc -filetype=obj %S/Inputs/ret32.ll -o %t2.o ; RUN: llc -filetype=obj %S/Inputs/start.ll -o %t.start.o ; RUN: llvm-ar rcs %t2.a %t2.o -; RUN: wasm-ld --check-signatures %t.start.o %t2.a %t.o -o %t.wasm -u ret32 --undefined ret64 +; RUN: wasm-ld %t.start.o %t2.a %t.o -o %t.wasm -u ret32 --undefined ret64 ; RUN: obj2yaml %t.wasm | FileCheck %s ; CHECK: - Type: EXPORT @@ -32,8 +32,8 @@ ; Verify that referencing a symbol that doesn't exist won't work -; RUN: not wasm-ld --check-signatures %t.start.o -o %t.wasm -u symboldoesnotexist 2>&1 | FileCheck -check-prefix=CHECK-UNDEFINED1 %s +; RUN: not wasm-ld %t.start.o -o %t.wasm -u symboldoesnotexist 2>&1 | FileCheck -check-prefix=CHECK-UNDEFINED1 %s ; CHECK-UNDEFINED1: error: undefined symbol: symboldoesnotexist -; RUN: not wasm-ld --check-signatures %t.start.o -o %t.wasm --undefined symboldoesnotexist --allow-undefined 2>&1 | FileCheck -check-prefix=CHECK-UNDEFINED2 %s +; RUN: not wasm-ld %t.start.o -o %t.wasm --undefined symboldoesnotexist --allow-undefined 2>&1 | FileCheck -check-prefix=CHECK-UNDEFINED2 %s ; CHECK-UNDEFINED2: function forced with --undefined not found: symboldoesnotexist Index: test/wasm/local-symbols.ll =================================================================== --- test/wasm/local-symbols.ll +++ test/wasm/local-symbols.ll @@ -1,5 +1,5 @@ ; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld --check-signatures -o %t.wasm %t.o +; RUN: wasm-ld -o %t.wasm %t.o ; RUN: obj2yaml %t.wasm | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/locals-duplicate.test =================================================================== --- test/wasm/locals-duplicate.test +++ test/wasm/locals-duplicate.test @@ -1,6 +1,6 @@ ; RUN: llc -filetype=obj %p/Inputs/locals-duplicate1.ll -o %t1.o ; RUN: llc -filetype=obj %p/Inputs/locals-duplicate2.ll -o %t2.o -; RUN: wasm-ld --check-signatures --no-entry -o %t.wasm %t1.o %t2.o +; RUN: wasm-ld --no-entry -o %t.wasm %t1.o %t2.o ; RUN: obj2yaml %t.wasm | FileCheck %s ; CHECK: --- !WASM @@ -236,7 +236,7 @@ ; CHECK-NEXT: ... -; RUN: wasm-ld --check-signatures -r --no-entry -o %t.reloc.wasm %t1.o %t2.o +; RUN: wasm-ld -r --no-entry -o %t.reloc.wasm %t1.o %t2.o ; RUN: obj2yaml %t.reloc.wasm | FileCheck -check-prefix=RELOC %s ; RELOC: --- !WASM Index: test/wasm/many-functions.ll =================================================================== --- test/wasm/many-functions.ll +++ test/wasm/many-functions.ll @@ -1,6 +1,6 @@ ; RUN: llc -filetype=obj %p/Inputs/many-funcs.ll -o %t.many.o ; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld --check-signatures -r -o %t.wasm %t.many.o %t.o +; RUN: wasm-ld -r -o %t.wasm %t.many.o %t.o ; RUN: obj2yaml %t.wasm | FileCheck %s ; Test that relocations within the CODE section correctly handle Index: test/wasm/reloc-addend.ll =================================================================== --- test/wasm/reloc-addend.ll +++ test/wasm/reloc-addend.ll @@ -1,5 +1,5 @@ ; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld --check-signatures -r -o %t.wasm %t.o +; RUN: wasm-ld -r -o %t.wasm %t.o ; RUN: obj2yaml %t.wasm | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/relocatable.ll =================================================================== --- test/wasm/relocatable.ll +++ test/wasm/relocatable.ll @@ -1,6 +1,6 @@ ; RUN: llc -filetype=obj %p/Inputs/hello.ll -o %t.hello.o ; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld --check-signatures -r -o %t.wasm %t.hello.o %t.o +; RUN: wasm-ld -r -o %t.wasm %t.hello.o %t.o ; RUN: obj2yaml %t.wasm | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/signature-mismatch-weak.ll =================================================================== --- test/wasm/signature-mismatch-weak.ll +++ test/wasm/signature-mismatch-weak.ll @@ -1,8 +1,7 @@ ; RUN: llc -filetype=obj %p/Inputs/weak-symbol1.ll -o %t.weak.o ; RUN: llc -filetype=obj %p/Inputs/strong-symbol.ll -o %t.strong.o ; RUN: llc -filetype=obj %s -o %t.o -; RUN: not wasm-ld --check-signatures -o %t.wasm %t.o %t.strong.o %t.weak.o 2>&1 | FileCheck %s -; RUN: wasm-ld -o %t.wasm %t.o %t.strong.o %t.weak.o +; RUN: wasm-ld -o %t.wasm %t.o %t.strong.o %t.weak.o 2>&1 | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" @@ -14,6 +13,6 @@ ret void } -; CHECK: error: Function type mismatch: weakFn +; CHECK: warning: Function type mismatch: weakFn ; CHECK-NEXT: >>> defined as () -> I32 in {{.*}}signature-mismatch-weak.ll.tmp.o ; CHECK-NEXT: >>> defined as () -> I64 in {{.*}}signature-mismatch-weak.ll.tmp.strong.o Index: test/wasm/signature-mismatch.ll =================================================================== --- test/wasm/signature-mismatch.ll +++ test/wasm/signature-mismatch.ll @@ -1,10 +1,10 @@ ; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o ; RUN: llc -filetype=obj %s -o %t.main.o -; RUN: not wasm-ld --check-signatures -o %t.wasm %t.main.o %t.ret32.o 2>&1 | FileCheck %s +; RUN: not wasm-ld --fatal-warnings -o %t.wasm %t.main.o %t.ret32.o 2>&1 | FileCheck %s ; Run the test again by with the object files in the other order to verify ; the check works when the undefined symbol is resolved by an existing defined ; one. -; RUN: not wasm-ld --check-signatures -o %t.wasm %t.ret32.o %t.main.o 2>&1 | FileCheck %s -check-prefix=REVERSE +; RUN: not wasm-ld --fatal-warnings -o %t.wasm %t.ret32.o %t.main.o 2>&1 | FileCheck %s -check-prefix=REVERSE target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/stack-first.test =================================================================== --- test/wasm/stack-first.test +++ test/wasm/stack-first.test @@ -5,7 +5,7 @@ RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.o -RUN: wasm-ld --check-signatures -z stack-size=512 --stack-first --allow-undefined -o %t.wasm %t.o +RUN: wasm-ld -z stack-size=512 --stack-first --allow-undefined -o %t.wasm %t.o RUN: obj2yaml %t.wasm | FileCheck %s CHECK: - Type: GLOBAL Index: test/wasm/stack-pointer.ll =================================================================== --- test/wasm/stack-pointer.ll +++ test/wasm/stack-pointer.ll @@ -1,5 +1,5 @@ ; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld --check-signatures --relocatable -o %t.wasm %t.o +; RUN: wasm-ld --relocatable -o %t.wasm %t.o ; RUN: obj2yaml %t.wasm | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/strip-debug.test =================================================================== --- test/wasm/strip-debug.test +++ test/wasm/strip-debug.test @@ -1,5 +1,5 @@ RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.start.o -RUN: wasm-ld --check-signatures --strip-debug -o %t.wasm %t.start.o +RUN: wasm-ld --strip-debug -o %t.wasm %t.start.o RUN: obj2yaml %t.wasm | FileCheck %s # Check that there is no name section Index: test/wasm/symbol-type-mismatch.ll =================================================================== --- test/wasm/symbol-type-mismatch.ll +++ test/wasm/symbol-type-mismatch.ll @@ -1,6 +1,6 @@ ; RUN: llc -filetype=obj %s -o %t.o ; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o -; RUN: not wasm-ld --check-signatures -o %t.wasm %t.o %t.ret32.o 2>&1 | FileCheck %s +; RUN: not wasm-ld -o %t.wasm %t.o %t.ret32.o 2>&1 | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/undefined-entry.test =================================================================== --- test/wasm/undefined-entry.test +++ test/wasm/undefined-entry.test @@ -1,10 +1,10 @@ RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o -RUN: not wasm-ld --check-signatures -o %t.wasm %t.ret32.o 2>&1 | FileCheck %s +RUN: not wasm-ld -o %t.wasm %t.ret32.o 2>&1 | FileCheck %s CHECK: error: undefined symbol: _start -RUN: not wasm-ld --check-signatures -entry=foo -o %t.wasm %t.ret32.o 2>&1 | FileCheck %s -check-prefix=CHECK-CUSTOM +RUN: not wasm-ld -entry=foo -o %t.wasm %t.ret32.o 2>&1 | FileCheck %s -check-prefix=CHECK-CUSTOM CHECK-CUSTOM: error: undefined symbol: foo -RUN: wasm-ld --check-signatures -entry=foo --allow-undefined -o %t.wasm %t.ret32.o +RUN: wasm-ld -entry=foo --allow-undefined -o %t.wasm %t.ret32.o Index: test/wasm/undefined-weak-call.ll =================================================================== --- test/wasm/undefined-weak-call.ll +++ test/wasm/undefined-weak-call.ll @@ -1,5 +1,5 @@ ; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld --check-signatures --no-entry --print-gc-sections %t.o \ +; RUN: wasm-ld --no-entry --print-gc-sections %t.o \ ; RUN: -o %t.wasm 2>&1 | FileCheck -check-prefix=CHECK-GC %s ; RUN: obj2yaml %t.wasm | FileCheck %s Index: test/wasm/undefined.ll =================================================================== --- test/wasm/undefined.ll +++ test/wasm/undefined.ll @@ -1,17 +1,17 @@ ; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld --check-signatures --allow-undefined -o %t.wasm %t.o +; RUN: wasm-ld --allow-undefined -o %t.wasm %t.o ; Fails due to undefined 'foo' and also 'baz' -; RUN: not wasm-ld --check-signatures --undefined=baz -o %t.wasm %t.o 2>&1 | FileCheck %s +; RUN: not wasm-ld --undefined=baz -o %t.wasm %t.o 2>&1 | FileCheck %s ; CHECK: error: {{.*}}.o: undefined symbol: foo ; CHECK: error: undefined symbol: baz ; Succeeds if we pass a file containing 'foo' as --allow-undefined-file. ; RUN: echo 'foo' > %t.txt -; RUN: wasm-ld --check-signatures --allow-undefined-file=%t.txt -o %t.wasm %t.o +; RUN: wasm-ld --allow-undefined-file=%t.txt -o %t.wasm %t.o ; Succeeds even if a missing symbol is added via --export -; RUN: wasm-ld --check-signatures --allow-undefined --export=xxx -o %t.wasm %t.o +; RUN: wasm-ld --allow-undefined --export=xxx -o %t.wasm %t.o target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/version.ll =================================================================== --- test/wasm/version.ll +++ test/wasm/version.ll @@ -1,5 +1,5 @@ ; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld --check-signatures -o %t.wasm %t.o +; RUN: wasm-ld -o %t.wasm %t.o ; RUN: llvm-readobj -file-headers %t.wasm | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/visibility-hidden.ll =================================================================== --- test/wasm/visibility-hidden.ll +++ test/wasm/visibility-hidden.ll @@ -1,7 +1,7 @@ ; RUN: llc -filetype=obj -o %t.o %s ; RUN: llc -filetype=obj %S/Inputs/hidden.ll -o %t2.o ; RUN: llvm-ar rcs %t2.a %t2.o -; RUN: wasm-ld --check-signatures %t.o %t2.a -o %t.wasm +; RUN: wasm-ld %t.o %t2.a -o %t.wasm ; RUN: obj2yaml %t.wasm | FileCheck %s ; Test that hidden symbols are not exported, whether pulled in from an archive Index: test/wasm/weak-alias-overide.ll =================================================================== --- test/wasm/weak-alias-overide.ll +++ test/wasm/weak-alias-overide.ll @@ -1,6 +1,6 @@ ; RUN: llc -filetype=obj -o %t.o %s ; RUN: llc -filetype=obj %S/Inputs/weak-alias.ll -o %t2.o -; RUN: wasm-ld --check-signatures %t.o %t2.o -o %t.wasm +; RUN: wasm-ld %t.o %t2.o -o %t.wasm ; RUN: obj2yaml %t.wasm | FileCheck %s ; Test that the strongly defined alias_fn from this file is used both here Index: test/wasm/weak-alias.ll =================================================================== --- test/wasm/weak-alias.ll +++ test/wasm/weak-alias.ll @@ -1,6 +1,6 @@ ; RUN: llc -filetype=obj -o %t.o %s ; RUN: llc -filetype=obj %S/Inputs/weak-alias.ll -o %t2.o -; RUN: wasm-ld --check-signatures %t.o %t2.o -o %t.wasm +; RUN: wasm-ld %t.o %t2.o -o %t.wasm ; RUN: obj2yaml %t.wasm | FileCheck %s ; Test that weak aliases (alias_fn is a weak alias of direct_fn) are linked correctly @@ -144,7 +144,7 @@ ; CHECK-NEXT: Name: call_direct_ptr ; CHECK-NEXT: ... -; RUN: wasm-ld --check-signatures --relocatable %t.o %t2.o -o %t.reloc.o +; RUN: wasm-ld --relocatable %t.o %t2.o -o %t.reloc.o ; RUN: obj2yaml %t.reloc.o | FileCheck %s -check-prefix=RELOC ; RELOC: --- !WASM Index: test/wasm/weak-symbols.ll =================================================================== --- test/wasm/weak-symbols.ll +++ test/wasm/weak-symbols.ll @@ -1,7 +1,7 @@ ; RUN: llc -filetype=obj %p/Inputs/weak-symbol1.ll -o %t1.o ; RUN: llc -filetype=obj %p/Inputs/weak-symbol2.ll -o %t2.o ; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld -no-gc-sections --check-signatures -o %t.wasm %t.o %t1.o %t2.o +; RUN: wasm-ld -no-gc-sections -o %t.wasm %t.o %t1.o %t2.o ; RUN: obj2yaml %t.wasm | FileCheck %s target triple = "wasm32-unknown-unknown-wasm" Index: test/wasm/weak-undefined.ll =================================================================== --- test/wasm/weak-undefined.ll +++ test/wasm/weak-undefined.ll @@ -1,5 +1,5 @@ ; RUN: llc -filetype=obj -o %t.o %s -; RUN: wasm-ld --check-signatures -strip-debug %t.o -o %t.wasm +; RUN: wasm-ld -strip-debug %t.o -o %t.wasm ; RUN: obj2yaml %t.wasm | FileCheck %s ; Test that undefined weak externals (global_var) and (foo) don't cause Index: wasm/Config.h =================================================================== --- wasm/Config.h +++ wasm/Config.h @@ -19,7 +19,6 @@ struct Configuration { bool AllowUndefined; - bool CheckSignatures; bool Demangle; bool ExportTable; bool GcSections; Index: wasm/Driver.cpp =================================================================== --- wasm/Driver.cpp +++ wasm/Driver.cpp @@ -282,11 +282,11 @@ errorHandler().ErrorLimit = args::getInteger(Args, OPT_error_limit, 20); Config->AllowUndefined = Args.hasArg(OPT_allow_undefined); - Config->CheckSignatures = - Args.hasFlag(OPT_check_signatures, OPT_no_check_signatures, false); Config->Demangle = Args.hasFlag(OPT_demangle, OPT_no_demangle, true); Config->Entry = getEntry(Args, Args.hasArg(OPT_relocatable) ? "" : "_start"); Config->ExportTable = Args.hasArg(OPT_export_table); + errorHandler().FatalWarnings = + Args.hasFlag(OPT_fatal_warnings, OPT_no_fatal_warnings, false); Config->ImportMemory = Args.hasArg(OPT_import_memory); Config->ImportTable = Args.hasArg(OPT_import_table); Config->OutputFile = Args.getLastArgValue(OPT_o); Index: wasm/Options.td =================================================================== --- wasm/Options.td +++ wasm/Options.td @@ -96,10 +96,6 @@ def allow_undefined_file_s: Separate<["-"], "allow-undefined-file">, Alias; -defm check_signatures: B<"check-signatures", - "Check function signatures", - "Don't check function signatures">; - defm export: Eq<"export">, HelpText<"Force a symbol to be exported">; Index: wasm/SymbolTable.cpp =================================================================== --- wasm/SymbolTable.cpp +++ wasm/SymbolTable.cpp @@ -83,16 +83,13 @@ return; } - if (!Config->CheckSignatures) - return; - const WasmSignature *OldSig = cast(Existing)->getFunctionType(); if (OldSig && *NewSig != *OldSig) { - error("Function type mismatch: " + Existing->getName() + - "\n>>> defined as " + toString(*OldSig) + " in " + - toString(Existing->getFile()) + "\n>>> defined as " + - toString(*NewSig) + " in " + toString(File)); + warn("Function type mismatch: " + Existing->getName() + + "\n>>> defined as " + toString(*OldSig) + " in " + + toString(Existing->getFile()) + "\n>>> defined as " + + toString(*NewSig) + " in " + toString(File)); } }