[Asan + msvc] Cpython build failed with error LNK2001: unresolved external symbol on windows
未关闭
还没有人认领这个 Issue。
build
OS-windows
type-bug
- 主要语言
- Python
- 星标
- 77.2k
- 派生
- 35.9k
- 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
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 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