-
Notifications
You must be signed in to change notification settings - Fork 672
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pyo3 fails to build on systems without AtomicI64 #4153
Comments
This is already fixed in the current stable version 0.21.x where we rely on the |
We also fixed this in 0.20.3, so your project should be able to update to the PyO3 patch without needing further changes. |
Thanks for the pointers, I'll try to follow them. This problem was of course encountered in another program which has "vendored" in a particular version of pyo3, and it's not just a simple matter of updating that instance of pyo3. I must be reading the github source repository in the |
https://github.com/PyO3/pyo3/blob/main/src/impl_/pymodule.rs#L5-L18 -- it uses portable-atomic on platforms that don't have a native AtomicI64, and it uses std on other platforms. |
Hm, yes, as I said, "must be reading that wong", and that was what I did. Rust newbie here. Patching in an upgrade to pyo3 0.20.3 in bcrypt 4.2.1 was also a bit easier than I had feared. Anyway, thanks for the attention. |
I'm one of the bcrypt maintainers. If a release of bcrypt would be helpful, please file an issue over there. We should be able to knock one out easily. |
Ah, thanks, a bcrypt minor update upping the pyo3 to e.g. 0.20.3 would be helpful, even though I now have a fix in place for version 4.2.1. |
Bump pyo3 version from 0.20.0 to 0.20.3, ref. https://github.com/PyO3/pyo3/releases/tag/v0.20.3 This so that this package can build on ports without 64-bit atomic operations. Ref. PyO3/pyo3#4153 Bump PKGREVISION.
An attempt to build
pyo3
on a system where the CPU does not provide 64-bit atomic operations (exemplified by 32-bit PowerPC), that results inIt seems to me that
pymodule.rs
has some checking whether the target supports 64-bit atomics, but then goes on to insist on usingAtomicI64
in both "branches" of that test. Is this intentional or is it accidental and fixable?The text was updated successfully, but these errors were encountered: