Skip to content

Commit

Permalink
don't link to abi3 dll on windows for free-threaded build (#4733)
Browse files Browse the repository at this point in the history
* don't link to abi3 dll on windows for free-threaded build

* newsfragment
  • Loading branch information
davidhewitt committed Dec 3, 2024
1 parent a752425 commit 9714eab
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
1 change: 1 addition & 0 deletions newsfragments/4733.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix unresolved symbol link failures (due to linking to wrong DLL) when compiling for Python 3.13t with `abi3` features enabled.
17 changes: 16 additions & 1 deletion pyo3-build-config/src/impl_.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1649,7 +1649,7 @@ fn default_lib_name_windows(
// CPython bug: linking against python3_d.dll raises error
// https://github.com/python/cpython/issues/101614
Ok(format!("python{}{}_d", version.major, version.minor))
} else if abi3 && !(implementation.is_pypy() || implementation.is_graalpy()) {
} else if abi3 && !(gil_disabled || implementation.is_pypy() || implementation.is_graalpy()) {
if debug {
Ok(WINDOWS_ABI3_DEBUG_LIB_NAME.to_owned())
} else {
Expand Down Expand Up @@ -2544,6 +2544,21 @@ mod tests {
.unwrap(),
"python313t",
);
assert_eq!(
super::default_lib_name_windows(
PythonVersion {
major: 3,
minor: 13
},
CPython,
true, // abi3 true should not affect the free-threaded lib name
false,
false,
true,
)
.unwrap(),
"python313t",
);
assert_eq!(
super::default_lib_name_windows(
PythonVersion {
Expand Down

0 comments on commit 9714eab

Please sign in to comment.