<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Three AddressSanitizer-x86_64-windows-dynamic coverage tests fail when building with CMAKE_LINKER=lld-link.exe"
   href="https://bugs.llvm.org/show_bug.cgi?id=42074">42074</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Three AddressSanitizer-x86_64-windows-dynamic coverage tests fail when building with CMAKE_LINKER=lld-link.exe
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>compiler-rt
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>asan
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>nicolasweber@gmx.de
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>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=<a href="https://crbug.com">https://crbug.com</a> 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 <a href="https://chromium-review.googlesource.com/c/chromium/src/+/1636672">https://chromium-review.googlesource.com/c/chromium/src/+/1636672</a></pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>