Skip to content

Undefined Python Symbols on 32bit Windows Build #590

@planetmarshall

Description

@planetmarshall

Summary

cibuildwheel based build fails on 32 bit Windows builds with the following errors -

 *** Building project with Visual Studio 17 2022...
  [1/2] Building CXX object src\CMakeFiles\_pycharls.dir\pycharls.cpp.obj
  [2/2] Linking CXX shared module src\_pycharls.cp310-win32.pyd
  FAILED: src/_pycharls.cp310-win32.pyd 
  cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E vs_link_dll --intdir=src\CMakeFiles\_pycharls.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests  -- C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1437~1.328\bin\HostX64\x64\link.exe /nologo src\CMakeFiles\_pycharls.dir\pycharls.cpp.obj  /out:src\_pycharls.cp310-win32.pyd /implib:src\_pycharls.lib /pdb:src\_pycharls.pdb /dll /version:0.0 /machine:x64 /INCREMENTAL:NO  /INCREMENTAL:NO /LTCG -LIBPATH:C:\Users\runneradmin\.conan2\p\pybin6c4510a89d30a\p\lib   -LIBPATH:C:\Users\runneradmin\.conan2\p\charlf92cb7ed43d30\p\lib   -LIBPATH:C:\Users\runneradmin\.conan2\p\fmt99c02610800b9\p\lib C:\Users\runneradmin\AppData\Local\pypa\cibuildwheel\Cache\nuget-cpython\pythonx86.3.10.11\tools\libs\python310.lib  C:\Users\runneradmin\.conan2\p\charlf92cb7ed43d30\p\lib\charls.lib  C:\Users\runneradmin\.conan2\p\fmt99c02610800b9\p\lib\fmt.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib  && cd ."
  LINK: command "C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1437~1.328\bin\HostX64\x64\link.exe /nologo src\CMakeFiles\_pycharls.dir\pycharls.cpp.obj /out:src\_pycharls.cp310-win32.pyd /implib:src\_pycharls.lib /pdb:src\_pycharls.pdb /dll /version:0.0 /machine:x64 /INCREMENTAL:NO /INCREMENTAL:NO /LTCG -LIBPATH:C:\Users\runneradmin\.conan2\p\pybin6c4510a89d30a\p\lib -LIBPATH:C:\Users\runneradmin\.conan2\p\charlf92cb7ed43d30\p\lib -LIBPATH:C:\Users\runneradmin\.conan2\p\fmt99c02610800b9\p\lib C:\Users\runneradmin\AppData\Local\pypa\cibuildwheel\Cache\nuget-cpython\pythonx86.3.10.11\tools\libs\python310.lib C:\Users\runneradmin\.conan2\p\charlf92cb7ed43d30\p\lib\charls.lib C:\Users\runneradmin\.conan2\p\fmt99c02610800b9\p\lib\fmt.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST:EMBED,ID=2" failed (exit code 1120) with the following output:
     Creating library src\_pycharls.lib and object src\_pycharls.exp
  pycharls.cpp.obj : error LNK2001: unresolved external symbol __imp_PyThread_tss_create
  pycharls.cpp.obj : error LNK2001: unresolved external symbol __imp_PyUnicode_AsEncodedString
  pycharls.cpp.obj : error LNK2001: unresolved external symbol __imp_PyByteArray_Resize
  pycharls.cpp.obj : error LNK2001: unresolved external symbol __imp_PyBaseObject_Type
  pycharls.cpp.obj : error LNK2001: unresolved external symbol __imp_PyMem_Calloc
  pycharls.cpp.obj : error LNK2001: unresolved external symbol __imp_PyExc_BufferError
...

See https://github.com/planetmarshall/pillow-jpls/actions/runs/7340945463/job/19987797175 for full log

64 bit build succeeds, as do Ubuntu and Macos builds (all architectures). This can be reproduced locally with cibuildwheel.

Steps to Reproduce

git clone https://github.com/planetmarshall/pillow-jpls.git --branch scikit-build-core
set CIBW_BUILD=cp310-win32
cibuildwheel --platform windows

Legacy scikit-build with 32 bit windows succeeds

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions