Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
GH-130478: Fixed HACL compilation failure on macOS Silicon#134177
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
python-cla-botbot commentedMay 18, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Most changes to Pythonrequire a NEWS entry. Add one using theblurb_it web app or theblurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
configure.ac Outdated
@@ -7936,7 +7936,7 @@ then | |||
# available on x86_64. However, performance of the HACL SIMD128 implementation | |||
# isn't great, so it's disabled on ARM64. | |||
AC_MSG_CHECKING([for HACL* SIMD128 implementation]) | |||
iftest "$UNIVERSAL_ARCHS" == "universal2"; then | |||
if[[ "$build_cpu" == "aarch64" && "$build_vendor" == "apple" ]]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Please keep the "UNIVERSAL_ARCHS" test as well and usetest
instead of[[
as it's more portable.
Most changes to Pythonrequire a NEWS entry. Add one using theblurb_it web app or theblurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
Uh oh!
There was an error while loading.Please reload this page.
Fix: Prevent HACL compilation failure on macOS Silicon when not building universal binaries (#130478)
Problem:
In Python 3.14.0b1, compiling on macOS Silicon without the
--enable-universalsdk
flag resulted in a compilation error: "unknown type name 'Lib_IntVector_Intrinsics_vec256'". This occurred because the previous fix for a similar issue (#123748,#130366,#129043) in theconfigure
andconfigure.ac
scripts relied on the$UNIVERSAL_ARCHS
variable for conditional checks. However,$UNIVERSAL_ARCHS
is only set to "universal2" when--enable-universalsdk
is explicitly provided. When this flag is absent (as is the case when only targeting the native arm64 architecture),$UNIVERSAL_ARCHS
defaults to "32-bit", causing the conditional logic to fail and the necessary definitions for HACL not to be included.Solution:
This PR modifies the
configure
andconfigure.ac
scripts to use the$build_cpu
and$build_vendor
variables instead of$UNIVERSAL_ARCHS
for determining the target architecture. This approach ensures that the necessary HACL definitions are included when building on macOS with an arm64 architecture, even when--enable-universalsdk
is not specified.The PR provides a quick fix based on
$build_cpu
and$build_vendor
. While functional, this PR aims for a more robust and maintainable solution by directly checking for the "aarch64" architecture in$build_cpu
.Testing:
This fix has been tested successfully on macOS Silicon (arm64) when building Python 3.14.0b1 without the
--enable-universalsdk
flag. The compilation now completes without the "unknown type name 'Lib_IntVector_Intrinsics_vec256'" error.Related Issue: