Commit dcb2c59
committed
ci: repair the coverage wheels the way every other build does
This build is the only one that ships .pyd files importing a bare
"MSVCP140.dll". cibuildwheel runs each package's repair-wheel-command after
building, which on Windows is delvewheel; a plain `pip wheel` never reads
[tool.cibuildwheel], so nothing here was ever repaired. The import table is
then resolved against whatever the test machine has in System32, and on that
runner it is 14.00.24215.1, built in 2015.
_resource_handles.pyd, compiled by MSVC 14.44, imports exactly _Mtx_lock and
_Mtx_unlock from that DLL and never _Mtx_init_in_situ, because std::mutex has
had a constexpr constructor since VS 2022 17.10. The 2015 runtime still
expects that initialisation and dereferences a null handle on the first lock,
which _stream.pyx:422 takes while cuda.core is still importing. It is the only
module in either package that locks a mutex at all, which is why bindings and
pathfinder have always passed on the same machine.
Vendoring the build machine's 14.51 makes the wheels independent of what the
test machine carries -- the same thing the wheels on PyPI already do, where
the vendored copy has the identical content hash.
--namespace-pkg cuda is not optional: `cuda` is a namespace package, and
delvewheel otherwise patches the wrong __init__ and the DLL directory is never
registered.1 parent cc9fce1 commit dcb2c59
1 file changed
Lines changed: 42 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
304 | 304 | | |
305 | 305 | | |
306 | 306 | | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
307 | 349 | | |
308 | 350 | | |
309 | 351 | | |
| |||
0 commit comments