pybind / pybind/pybind11

[BUG]: pybind11 failed to build due to ImportError: DLL load failed while importing test_cmake_build on windows with MSVC ASAN

Open
#5,229 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

triage
Dominant language
C++
Stars
18k
Forks
2.3k
Avg merge
5d 17h
Merged PRs (30d)
10

Description

Required prerequisites
What version (or hash if on master) of pybind11 are you using?

19a6b9f

Problem description

Hi,

pybind11 failed to build due to ImportError: DLL load failed while importing test_cmake_build on windows with MSVC ASAN. It can be reproduced on commit https://github.com/pybind/pybind11/commit/19a6b9f4efb569129c878b7f8db09132248fbaa1 on master branch. Could you please help look at this issue? Thanks in advance.

Steps to reproduce the behavior:

  1. git clone https://github.com/pybind/pybind11 C:\gitP\pybind\pybind11
  2. Open a VS2022 x64 cmd
  3. set CL= /fsanitize=address /GS- /wd5072 & set LINK= /InferASanLibs /incremental:no /debug
    cd C:\gitP\pybind\pybind11 && mkdir build_amd64 && cd build_amd64
  4. python.exe -m pip install -r tests/requirements.txt
  5. cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_SYSTEM_VERSION=10.0.22621.0 -DPython_EXECUTABLE=C:\Python311\python.exe ..
  6. msbuild /m /p:Platform=x64 /p:Configuration=Release pybind11.sln /t:Rebuild

Build_ASAN.log

Error Message:
17>CustomBuild:
Internal cmake changing into directory: C:/gitP/pybind/pybind11/build_amd64/tests/test_cmake_build/subdirectory_target
======== CMake output ======
Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.20348.
The CXX compiler identification is MSVC 19.41.34102.96
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.40.33807/bin/Hostx64/x64/cl.exe - skipped
Detecting CXX compile features
Detecting CXX compile features - done
pybind11 v2.13.0 dev1
Found Python: C:\Python311\python.exe (found suitable version "3.11.4", minimum required is "3.6") found components: Interpreter Development.Module Development.Embed
Performing Test HAS_MSVC_GL_LTCG
Performing Test HAS_MSVC_GL_LTCG - Success
Configuring done (3.6s)
Generating done (0.0s)
Build files have been written to: C:/gitP/pybind/pybind11/build_amd64/tests/test_cmake_build/subdirectory_target
======== End CMake output ======
Change Dir: 'C:/gitP/pybind/pybind11/build_amd64/tests/test_cmake_build/subdirectory_target'

     Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/MSBuild/Current/Bin/amd64/MSBuild.exe" check_subdirectory_target.vcxproj /p:Configuration=Release /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:m
     MSBuild version 17.10.4+10fbfbf2e for .NET Framework
     
       1>Checking Build System
       Building Custom Rule C:/gitP/pybind/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt
17>cl : command line warning D9025: overriding '/GS' with '/GS-' [C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\subdirectory_target\test_subdirectory_target.vcxproj] [C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\test_build_subdirectory_target.vcxproj]
       main.cpp
          Creating library C:/gitP/pybind/pybind11/build_amd64/tests/test_cmake_build/subdirectory_target/Release/test_cmake_build.lib and object C:/gitP/pybind/pybind11/build_amd64/tests/test_cmake_build/subdirectory_target/Release/test_cmake_build.exp
       test_subdirectory_target.vcxproj -> C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\subdirectory_target\Release\test_cmake_build.cp311-win_amd64.pyd
       1>
       Traceback (most recent call last):
         File "C:\gitP\pybind\pybind11\tests\test_cmake_build\test.py", line 3, in <module>
           import test_cmake_build
       **ImportError: DLL load failed while importing test_cmake_build: The specified module could not be found.
       The system cannot find the batch label specified - VCEnd**
17>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(237,5): error MSB8066: Custom build for 'C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\subdirectory_target\CMakeFiles\ebc2369a84847dd293a43f7c55032ecd\check_subdirectory_target.rule' exited with code 1. [C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\subdirectory_target\check_subdirectory_target.vcxproj] [C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\test_build_subdirectory_target.vcxproj]
     
     The system cannot find the batch label specified - VCEnd
17>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(237,5): **error MSB8066: Custom build** for 'C:\gitP\pybind\pybind11\build_amd64\CMakeFiles\51bbd34823709d98a279260beab39c00\test_build_subdirectory_target.rule' exited with code 1. [C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\test_build_subdirectory_target.vcxproj]
17>Done Building Project "C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\test_build_subdirectory_target.vcxproj" (Rebuild target(s)) -- FAILED.

Steps to reproduce the behavior:

Reproducible example code

No response

Is this a regression? Put the last known working version here if it is.

Not a regression

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with tests/test_cmake_build/test.py and tests/test_cmake_build/subdirectory_target/CMakeLists.txt, then reproduce the Windows MSVC ASAN build using the reported CMake and MSBuild commands. The work is done when the test_cmake_build module imports successfully and the test_build_subdirectory_target build completes without the DLL-load or MSB8066 errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp, python
Domain
build-system, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.