python / python/cpython

[Asan + msvc] Cpython build failed with error LNK2001: unresolved external symbol on windows

未關閉
#150,467 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

build OS-windows type-bug
主要語言
Python
星號
77.2k
分支
36k
PR 合併指標
PR 指標待擷取

描述

Bug report

Bug description:

Cpython build failed with error LNK2001: unresolved external symbol on windows, this error looks start from commit 10f950c9bb0ff4583f361a42aaed562b330e1dba, the previous commit 9846407eaf385917d134ef5e3700c57c59f67684 built successfully.

Repro steps:

1.	git clone https://github.com/python/cpython
2.	Open VS2022 x64 CMD & set _CL_= /fsanitize=address /GS- /wd5072 & set _LINK_= /InferASanLibs /incremental:no /debug
3.	cd /d C:\gitP\python\cpython\PCBuild
4.	get_externals.bat --clean-only
5.	build -e -p x64 -r --no-tkinter -v "/p:PlatformToolset=v143" "/p:WindowsTargetPlatformVersion=10.0.26100.0"

Failures

(Link target) -> 
         clang_rt.asan_dynamic_runtime_thunk-x86_64.lib(sanitizer_win_thunk_interception.cpp.obj) : error LNK2001: unresolved external symbol abort [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         clang_rt.asan_dynamic_runtime_thunk-x86_64.lib(asan_win_dynamic_runtime_thunk.cpp.obj) : error LNK2001: unresolved external symbol _initterm [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __vcrt_initialize [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __vcrt_uninitialize [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __vcrt_uninitialize_critical [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __vcrt_thread_attach [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __vcrt_thread_detach [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _seh_filter_dll [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _is_c_termination_complete [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _configure_narrow_argv [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _initialize_narrow_environment [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _initialize_onexit_table [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _register_onexit_function [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _execute_onexit_table [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _crt_atexit [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _crt_at_quick_exit [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __acrt_initialize [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __acrt_uninitialize [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __acrt_uninitialize_critical [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __acrt_thread_attach [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __acrt_thread_detach [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _cexit [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __C_specific_handler [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __C_specific_handler [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility_desktop.obj) : error LNK2001: unresolved external symbol terminate [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility_desktop.obj) : error LNK2001: unresolved external symbol __current_exception [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility_desktop.obj) : error LNK2001: unresolved external symbol __current_exception_context [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol strstr [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol wcsstr [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_wcscpy_s [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_wcsncpy_s [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_wcsnlen [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_strnlen [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_calloc [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_free [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_malloc [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp___acrt_iob_func [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp___stdio_common_vswprintf_s [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp___stdio_common_vfprintf [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol wmemcpy_s [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __CxxFrameHandler4 [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(gshandlereh4.obj) : error LNK2001: unresolved external symbol __CxxFrameHandler4 [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol memcpy [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol wcsncmp [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         C:\gitP\python\cpython\PCbuild\amd64\python3t.dll : fatal error LNK1120: 42 unresolved externals [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         clang_rt.asan_dynamic_runtime_thunk-x86_64.lib(sanitizer_win_thunk_interception.cpp.obj) : error LNK2001: unresolved external symbol abort [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         clang_rt.asan_dynamic_runtime_thunk-x86_64.lib(asan_win_dynamic_runtime_thunk.cpp.obj) : error LNK2001: unresolved external symbol _initterm [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __vcrt_initialize [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __vcrt_uninitialize [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __vcrt_uninitialize_critical [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __vcrt_thread_attach [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __vcrt_thread_detach [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _seh_filter_dll [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _is_c_termination_complete [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _configure_narrow_argv [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _initialize_narrow_environment [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _initialize_onexit_table [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _register_onexit_function [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _execute_onexit_table [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _crt_atexit [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _crt_at_quick_exit [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __acrt_initialize [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __acrt_uninitialize [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __acrt_uninitialize_critical [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __acrt_thread_attach [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __acrt_thread_detach [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _cexit [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol __C_specific_handler [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __C_specific_handler [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility_desktop.obj) : error LNK2001: unresolved external symbol terminate [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility_desktop.obj) : error LNK2001: unresolved external symbol __current_exception [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(utility_desktop.obj) : error LNK2001: unresolved external symbol __current_exception_context [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol strstr [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol wcsstr [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_wcscpy_s [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_wcsncpy_s [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_wcsnlen [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_strnlen [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_calloc [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_free [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp_malloc [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp___acrt_iob_func [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp___stdio_common_vswprintf_s [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __imp___stdio_common_vfprintf [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol wmemcpy_s [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol __CxxFrameHandler4 [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         MSVCRT.lib(gshandlereh4.obj) : error LNK2001: unresolved external symbol __CxxFrameHandler4 [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol memcpy [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         VCASAN.lib(vcasan.obj) : error LNK2001: unresolved external symbol wcsncmp [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]
         C:\gitP\python\cpython\PCbuild\amd64\python3t.dll : fatal error LNK1120: 42 unresolved externals [C:\gitP\python\cpython\PCbuild\python3tdll.vcxproj]

CPython versions tested on:

CPython main branch

Operating systems tested on:

Windows

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

從 PCBuild 和 python3tdll.vcxproj 目標開始,使用提供的 VS2022、ASan 和建置命令重現失敗。比較提交 10f950c9bb0ff4583f361a42aaed562b330e1dba 與 9846407eaf385917d134ef5e3700c57c59f67684,以確定 Windows linker 設定的變更;完成標準是 x64 ASan 建置在沒有 unresolved externals 的情況下完成。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
python
領域
build-system
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
活躍
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。