-
Notifications
You must be signed in to change notification settings - Fork 219
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
manylinux_2_34 x86-64 builds produce binaries that are not compatible with all x86-64 CPUs #1725
Comments
The immediate fix here is almost certainly to force the manylinux compilers to default to Longer term maybe there's a way for installers to be cleverer or something but that's probably beyond the scope of an issue here. |
Yeah, I think there's a question about how force the system compile to have an In terms of installer cleverness, I think that'd require a PEP to standardize a wheel tag for this? |
It is... fascinating... that they are deploying the compiler with a default Overriding CFLAGS to include #!/bin/sh
exec /path/to/real/gcc -march=x86-64 "$@" |
We'd need a PEP to support this properly. |
The compilers calls shall all be wrapped now. |
manylinux_2_34 is built on AlmaLinux 9. Alma Linux is built for the x86-64-v2 sub-architecture, which assumes that a particular set of x86-64 CPU extensions. (See https://developers.redhat.com/blog/2021/01/05/building-red-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level#recommendations_for_rhel_9)
As a result, wheels built in manylinux_2_34 by the system compiler will use these CPU extensions, making the wheels not compatible with all x86-64 CPUs, which of course results will result in SIGILL at runtime.
Because wheel tags have no awareness of x86-64-v2, this effectively makes binaries built with manylinux_2_34 unusable.
See pyca/cryptography#12069 for an example of the impact of this.
The text was updated successfully, but these errors were encountered: