[llvm-bugs] [Bug 42074] New: Three AddressSanitizer-x86_64-windows-dynamic coverage tests fail when building with CMAKE_LINKER=lld-link.exe

via llvm-bugs llvm-bugs at lists.llvm.org
Thu May 30 11:30:14 PDT 2019


https://bugs.llvm.org/show_bug.cgi?id=42074

            Bug ID: 42074
           Summary: Three AddressSanitizer-x86_64-windows-dynamic coverage
                    tests fail when building with
                    CMAKE_LINKER=lld-link.exe
           Product: compiler-rt
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: asan
          Assignee: unassignedbugs at nondot.org
          Reporter: nicolasweber at gmx.de
                CC: llvm-bugs at lists.llvm.org

When doing build of LLVM on Windows with CMAKE_LINKER set to lld-link, 3 tests
fail.

I don't immediately see how the failures are related to things building with
lld -- the test doesn't use lld.

Maybe the shared libasan linked by lld is missing symbols or something?


Full cmake invocation below.



-- Testing: 49878 tests, 32 threads --
Testing: 0 ..
FAIL: AddressSanitizer-x86_64-windows-dynamic ::
TestCases/Windows/coverage-basic.cc (4634 of 49878)
******************** TEST 'AddressSanitizer-x86_64-windows-dynamic ::
TestCases/Windows/coverage-basic.cc' FAILED ********************
Script:
--
: 'RUN: at line 1';   rm -rf
C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Windows\Output\coverage-basic.cc.tmp-dir
: 'RUN: at line 2';   mkdir
C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Windows\Output\coverage-basic.cc.tmp-dir
&& cd
C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Windows\Output\coverage-basic.cc.tmp-dir
: 'RUN: at line 3';     
C:/b/s/w/ir/k/src/third_party/llvm-build/Release+Asserts/./bin/clang.exe 
-fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
-fno-optimize-sibling-calls -gline-tables-only -gcodeview -gcolumn-info   
-shared-libasan -D_MT -D_DLL
-Wl,-nodefaultlib:libcmt,-defaultlib:msvcrt,-defaultlib:oldnames
-fsanitize-coverage=func
C:\b\s\w\ir\k\src\third_party\llvm\compiler-rt\test\asan\TestCases\Windows\coverage-basic.cc
-o test.exe
: 'RUN: at line 4';   env ASAN_OPTIONS=coverage=1  ./test.exe
: 'RUN: at line 6';   C:/b/s/w/ir/cache/vpython/21a792/Scripts/python.exe
C:/b/s/w/ir/k/src/third_party/llvm/compiler-rt\lib\sanitizer_common\scripts\sancov.py
print *.sancov | FileCheck
C:\b\s\w\ir\k\src\third_party\llvm\compiler-rt\test\asan\TestCases\Windows\coverage-basic.cc
--
Exit Code: 1120

Command Output (stdout):
--
$ ":" "RUN: at line 1"
$ "rm" "-rf"
"C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Windows\Output\coverage-basic.cc.tmp-dir"
$ ":" "RUN: at line 2"
$ "mkdir"
"C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Windows\Output\coverage-basic.cc.tmp-dir"
$ ":" "RUN: at line 3"
$ "C:/b/s/w/ir/k/src/third_party/llvm-build/Release+Asserts/./bin/clang.exe"
"-fsanitize=address" "-mno-omit-leaf-frame-pointer" "-fno-omit-frame-pointer"
"-fno-optimize-sibling-calls" "-gline-tables-only" "-gcodeview" "-gcolumn-info"
"-shared-libasan" "-D_MT" "-D_DLL"
"-Wl,-nodefaultlib:libcmt,-defaultlib:msvcrt,-defaultlib:oldnames"
"-fsanitize-coverage=func"
"C:\b\s\w\ir\k\src\third_party\llvm\compiler-rt\test\asan\TestCases\Windows\coverage-basic.cc"
"-o" "test.exe"
# command output:
coverage-basic-ce3187.o : error LNK2019: unresolved external symbol
__sanitizer_cov_trace_pc_guard referenced in function "void __cdecl foo(void)"
(?foo@@YAXXZ)
coverage-basic-ce3187.o : error LNK2019: unresolved external symbol
__sanitizer_cov_trace_pc_guard_init referenced in function
sancov.module_ctor_trace_pc_guard
test.exe : fatal error LNK1120: 2 unresolved externals

# command stderr:
clang: warning: argument '-fsanitize-coverage=[func|bb|edge]' is deprecated,
use '-fsanitize-coverage=[func|bb|edge],[trace-pc-guard|trace-pc]' instead
[-Wdeprecated]
clang: error: linker command failed with exit code 1120 (use -v to see
invocation)

error: command failed with exit status: 1120

--

********************
Testing: 0 ..
FAIL: AddressSanitizer-x86_64-windows-dynamic ::
TestCases/Windows/coverage-dll-stdio.cc (4672 of 49878)
******************** TEST 'AddressSanitizer-x86_64-windows-dynamic ::
TestCases/Windows/coverage-dll-stdio.cc' FAILED ********************
Script:
--
: 'RUN: at line 4';   rm -rf
C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Windows\Output\coverage-dll-stdio.cc.tmp
&& mkdir
C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Windows\Output\coverage-dll-stdio.cc.tmp
&& cd
C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Windows\Output\coverage-dll-stdio.cc.tmp
: 'RUN: at line 5';     
C:/b/s/w/ir/k/src/third_party/llvm-build/Release+Asserts/./bin/clang-cl.exe 
-fsanitize=address -Wno-deprecated-declarations -WX -D_HAS_EXCEPTIONS=0 -Zi   
-MD -fsanitize-coverage=func,trace-pc-guard -O0
C:\b\s\w\ir\k\src\third_party\llvm\compiler-rt\test\asan\TestCases\Windows/dll_host.cc
-Fet.exe
: 'RUN: at line 6';     
C:/b/s/w/ir/k/src/third_party/llvm-build/Release+Asserts/./bin/clang-cl.exe 
-fsanitize=address -Wno-deprecated-declarations -WX -D_HAS_EXCEPTIONS=0 -Zi   
-MD -fsanitize-coverage=func,trace-pc-guard -LD -O0
C:\b\s\w\ir\k\src\third_party\llvm\compiler-rt\test\asan\TestCases\Windows\coverage-dll-stdio.cc
-Fet.dll
: 'RUN: at line 7';    ./t.exe t.dll 2>&1 | FileCheck
C:\b\s\w\ir\k\src\third_party\llvm\compiler-rt\test\asan\TestCases\Windows\coverage-dll-stdio.cc
--
Exit Code: 1120

Command Output (stdout):
--
$ ":" "RUN: at line 4"
$ "rm" "-rf"
"C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Windows\Output\coverage-dll-stdio.cc.tmp"
$ "mkdir"
"C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Windows\Output\coverage-dll-stdio.cc.tmp"
$ ":" "RUN: at line 5"
$ "C:/b/s/w/ir/k/src/third_party/llvm-build/Release+Asserts/./bin/clang-cl.exe"
"-fsanitize=address" "-Wno-deprecated-declarations" "-WX" "-D_HAS_EXCEPTIONS=0"
"-Zi" "-MD" "-fsanitize-coverage=func,trace-pc-guard" "-O0"
"C:\b\s\w\ir\k\src\third_party\llvm\compiler-rt\test\asan\TestCases\Windows/dll_host.cc"
"-Fet.exe"
# command output:
dll_host-bea811.obj : error LNK2019: unresolved external symbol
__sanitizer_cov_trace_pc_guard referenced in function main
dll_host-bea811.obj : error LNK2019: unresolved external symbol
__sanitizer_cov_trace_pc_guard_init referenced in function
sancov.module_ctor_trace_pc_guard
t.exe : fatal error LNK1120: 2 unresolved externals

# command stderr:
clang-cl: error: linker command failed with exit code 1120 (use -v to see
invocation)

error: command failed with exit status: 1120

--

********************
Testing: 0 ..
FAIL: AddressSanitizer-x86_64-windows-dynamic :: TestCases/coverage-disabled.cc
(4747 of 49878)
******************** TEST 'AddressSanitizer-x86_64-windows-dynamic ::
TestCases/coverage-disabled.cc' FAILED ********************
Script:
--
: 'RUN: at line 3';   rm -rf
C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Output\coverage-disabled.cc.tmp-dir
: 'RUN: at line 4';   mkdir -p
C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Output\coverage-disabled.cc.tmp-dir
: 'RUN: at line 6';     
C:/b/s/w/ir/k/src/third_party/llvm-build/Release+Asserts/./bin/clang.exe 
-fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
-fno-optimize-sibling-calls -gline-tables-only -gcodeview -gcolumn-info   
-shared-libasan -D_MT -D_DLL
-Wl,-nodefaultlib:libcmt,-defaultlib:msvcrt,-defaultlib:oldnames
-fsanitize-coverage=func
C:\b\s\w\ir\k\src\third_party\llvm\compiler-rt\test\asan\TestCases\coverage-disabled.cc
-o
C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Output\coverage-disabled.cc.tmp
: 'RUN: at line 8';   env
ASAN_OPTIONS=coverage_direct=0:coverage_dir='"C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Output\coverage-disabled.cc.tmp-dir"':verbosity=1

C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Output\coverage-disabled.cc.tmp
: 'RUN: at line 9';   not C:/b/s/w/ir/cache/vpython/21a792/Scripts/python.exe
C:/b/s/w/ir/k/src/third_party/llvm/compiler-rt\lib\sanitizer_common\scripts\sancov.py
print
C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Output\coverage-disabled.cc.tmp-dir/*.sancov
2>&1
--
Exit Code: 1120

Command Output (stdout):
--
$ ":" "RUN: at line 3"
$ "rm" "-rf"
"C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Output\coverage-disabled.cc.tmp-dir"
$ ":" "RUN: at line 4"
$ "mkdir" "-p"
"C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Output\coverage-disabled.cc.tmp-dir"
$ ":" "RUN: at line 6"
$ "C:/b/s/w/ir/k/src/third_party/llvm-build/Release+Asserts/./bin/clang.exe"
"-fsanitize=address" "-mno-omit-leaf-frame-pointer" "-fno-omit-frame-pointer"
"-fno-optimize-sibling-calls" "-gline-tables-only" "-gcodeview" "-gcolumn-info"
"-shared-libasan" "-D_MT" "-D_DLL"
"-Wl,-nodefaultlib:libcmt,-defaultlib:msvcrt,-defaultlib:oldnames"
"-fsanitize-coverage=func"
"C:\b\s\w\ir\k\src\third_party\llvm\compiler-rt\test\asan\TestCases\coverage-disabled.cc"
"-o"
"C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Output\coverage-disabled.cc.tmp"
# command output:
coverage-disabled-865ee1.o : error LNK2019: unresolved external symbol
__sanitizer_cov_trace_pc_guard referenced in function main
coverage-disabled-865ee1.o : error LNK2019: unresolved external symbol
__sanitizer_cov_trace_pc_guard_init referenced in function
sancov.module_ctor_trace_pc_guard
C:\b\s\w\ir\k\src\third_party\llvm-build\Release+Asserts\projects\compiler-rt\test\asan\X86_64WindowsDynamicConfig\TestCases\Output\coverage-disabled.cc.tmp
: fatal error LNK1120: 2 unresolved externals

# command stderr:
clang: warning: argument '-fsanitize-coverage=[func|bb|edge]' is deprecated,
use '-fsanitize-coverage=[func|bb|edge],[trace-pc-guard|trace-pc]' instead
[-Wdeprecated]
clang: error: linker command failed with exit code 1120 (use -v to see
invocation)

error: command failed with exit status: 1120

--

********************
Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. 
Testing Time: 294.36s
********************
Failing Tests (3):
    AddressSanitizer-x86_64-windows-dynamic ::
TestCases/Windows/coverage-basic.cc
    AddressSanitizer-x86_64-windows-dynamic ::
TestCases/Windows/coverage-dll-stdio.cc
    AddressSanitizer-x86_64-windows-dynamic :: TestCases/coverage-disabled.cc

  Expected Passes    : 42784
  Expected Failures  : 217
  Unsupported Tests  : 6874
  Unexpected Failures: 3



CMake invocation:
Running
[u'C:\\b\\s\\w\\ir\\k\\src\\third_party\\depot_tools\\win_toolchain\\vs_files\\818a152b3f1da991c1725d85be19a0f27af6bab4\\win_sdk\\bin\\SetEnv.cmd',
'/x64', '&&', 'cmake', '-GNinja', '-DCMAKE_BUILD_TYPE=Release',
'-DLLVM_ENABLE_ASSERTIONS=OFF',
'-DLLVM_ENABLE_PROJECTS=clang;compiler-rt;lld;chrometools',
'-DLLVM_TARGETS_TO_BUILD=AArch64;ARM;Mips;PowerPC;SystemZ;WebAssembly;X86',
'-DLLVM_ENABLE_PIC=OFF', '-DLLVM_ENABLE_UNWIND_TABLES=OFF',
'-DLLVM_ENABLE_TERMINFO=OFF', '-DCLANG_PLUGIN_SUPPORT=OFF',
'-DCLANG_ENABLE_STATIC_ANALYZER=OFF', '-DCLANG_ENABLE_ARCMT=OFF',
'-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON',
'-DBUG_REPORT_URL=https://crbug.com and run tools/clang/scripts/upload_crash.py
(only works inside Google) which will upload a report',
'-DCOMPILER_RT_USE_LIBCXX=NO', '-DLLVM_USE_CRT_RELEASE=MT',
'-DCMAKE_C_COMPILER=C:/b/s/w/ir/k/src/third_party/llvm-bootstrap-install/bin/clang-cl.exe',
'-DCMAKE_CXX_COMPILER=C:/b/s/w/ir/k/src/third_party/llvm-bootstrap-install/bin/clang-cl.exe',
'-DCMAKE_LINKER=C:/b/s/w/ir/k/src/third_party/llvm-bootstrap-install/bin/lld-link.exe',
'-DCOMPILER_RT_BUILD_CRT=OFF', '-DCOMPILER_RT_BUILD_LIBFUZZER=ON',
'-DCOMPILER_RT_BUILD_PROFILE=ON', '-DCOMPILER_RT_BUILD_SANITIZERS=ON',
'-DCOMPILER_RT_BUILD_XRAY=OFF', '-DCOMPILER_RT_BUILD_BUILTINS=OFF',
'-DLLVM_ENABLE_THREADS=OFF', '-DCMAKE_C_FLAGS=/Zi /GS-', '-DCMAKE_CXX_FLAGS=/Zi
/GS-', '-DCMAKE_EXE_LINKER_FLAGS=/DEBUG /OPT:REF /OPT:ICF',
'-DCMAKE_SHARED_LINKER_FLAGS=/DEBUG /OPT:REF /OPT:ICF',
'-DCMAKE_MODULE_LINKER_FLAGS=/DEBUG /OPT:REF /OPT:ICF',
'-DCMAKE_INSTALL_PREFIX=C:\\b\\s\\w\\ir\\k\\src\\third_party\\llvm-build\\Release+Asserts',
'-DCHROMIUM_TOOLS_SRC=C:\\b\\s\\w\\ir\\k\\src\\tools\\clang',
'-DCHROMIUM_TOOLS=blink_gc_plugin;translation_unit;plugins',
'C:\\b\\s\\w\\ir\\k\\src\\third_party\\llvm\\llvm']


This is from https://chromium-review.googlesource.com/c/chromium/src/+/1636672

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190530/18cadcc8/attachment-0001.html>


More information about the llvm-bugs mailing list