GH-130478: Fixed HACL compilation failure on macOS Silicon #134177
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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: