mirror of
https://github.com/python/cpython.git
synced 2025-12-31 04:23:37 +00:00
[3.14] gh-130478: fix HACL* build for macOS Silicon (GH-134188) (#135009)
gh-130478: fix HACL* build for macOS Silicon (GH-134188)
(cherry picked from commit ac7511062b)
Co-authored-by: Sam Ng <hongsheng@gmail.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
This commit is contained in:
parent
e03db7317f
commit
3b28b402a5
2 changed files with 21 additions and 4 deletions
12
configure
generated
vendored
12
configure
generated
vendored
|
|
@ -32582,6 +32582,14 @@ LIBHACL_CFLAGS="${LIBHACL_FLAG_I} ${LIBHACL_FLAG_D} \$(PY_STDMODULE_CFLAGS) \$(C
|
|||
LIBHACL_LDFLAGS= # for now, no specific linker flags are needed
|
||||
|
||||
|
||||
if test "$UNIVERSAL_ARCHS" = "universal2" -o \
|
||||
\( "$build_cpu" = "aarch64" -a "$build_vendor" = "apple" \)
|
||||
then
|
||||
use_hacl_universal2_impl=yes
|
||||
else
|
||||
use_hacl_universal2_impl=no
|
||||
fi
|
||||
|
||||
# The SIMD files use aligned_alloc, which is not available on older versions of
|
||||
# Android.
|
||||
# The *mmintrin.h headers are x86-family-specific, so can't be used on WASI.
|
||||
|
|
@ -32635,7 +32643,7 @@ printf "%s\n" "#define _Py_HACL_CAN_COMPILE_VEC128 1" >>confdefs.h
|
|||
# isn't great, so it's disabled on ARM64.
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for HACL* SIMD128 implementation" >&5
|
||||
printf %s "checking for HACL* SIMD128 implementation... " >&6; }
|
||||
if test "$UNIVERSAL_ARCHS" == "universal2"; then
|
||||
if test "$use_hacl_universal2_impl" = "yes"; then
|
||||
LIBHACL_BLAKE2_SIMD128_OBJS="Modules/_hacl/Hacl_Hash_Blake2s_Simd128_universal2.o"
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: universal2" >&5
|
||||
printf "%s\n" "universal2" >&6; }
|
||||
|
|
@ -32712,7 +32720,7 @@ printf "%s\n" "#define _Py_HACL_CAN_COMPILE_VEC256 1" >>confdefs.h
|
|||
# wrapped implementation if we're building for universal2.
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for HACL* SIMD256 implementation" >&5
|
||||
printf %s "checking for HACL* SIMD256 implementation... " >&6; }
|
||||
if test "$UNIVERSAL_ARCHS" == "universal2"; then
|
||||
if test "$use_hacl_universal2_impl" = "yes"; then
|
||||
LIBHACL_BLAKE2_SIMD256_OBJS="Modules/_hacl/Hacl_Hash_Blake2b_Simd256_universal2.o"
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: universal2" >&5
|
||||
printf "%s\n" "universal2" >&6; }
|
||||
|
|
|
|||
13
configure.ac
13
configure.ac
|
|
@ -8008,6 +8008,15 @@ AC_SUBST([LIBHACL_CFLAGS])
|
|||
LIBHACL_LDFLAGS= # for now, no specific linker flags are needed
|
||||
AC_SUBST([LIBHACL_LDFLAGS])
|
||||
|
||||
dnl Check if universal2 HACL* implementation should be used.
|
||||
if test "$UNIVERSAL_ARCHS" = "universal2" -o \
|
||||
\( "$build_cpu" = "aarch64" -a "$build_vendor" = "apple" \)
|
||||
then
|
||||
use_hacl_universal2_impl=yes
|
||||
else
|
||||
use_hacl_universal2_impl=no
|
||||
fi
|
||||
|
||||
# The SIMD files use aligned_alloc, which is not available on older versions of
|
||||
# Android.
|
||||
# The *mmintrin.h headers are x86-family-specific, so can't be used on WASI.
|
||||
|
|
@ -8025,7 +8034,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])
|
||||
if test "$UNIVERSAL_ARCHS" == "universal2"; then
|
||||
if test "$use_hacl_universal2_impl" = "yes"; then
|
||||
[LIBHACL_BLAKE2_SIMD128_OBJS="Modules/_hacl/Hacl_Hash_Blake2s_Simd128_universal2.o"]
|
||||
AC_MSG_RESULT([universal2])
|
||||
else
|
||||
|
|
@ -8058,7 +8067,7 @@ then
|
|||
# implementation requires symbols that aren't available on ARM64. Use a
|
||||
# wrapped implementation if we're building for universal2.
|
||||
AC_MSG_CHECKING([for HACL* SIMD256 implementation])
|
||||
if test "$UNIVERSAL_ARCHS" == "universal2"; then
|
||||
if test "$use_hacl_universal2_impl" = "yes"; then
|
||||
[LIBHACL_BLAKE2_SIMD256_OBJS="Modules/_hacl/Hacl_Hash_Blake2b_Simd256_universal2.o"]
|
||||
AC_MSG_RESULT([universal2])
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue