Re-enable SME when building for AArch64 Android

Now that SME has been re-enabled for Linux for a while, also re-enable
it for Android when building with a sufficiently new version of LLVM.

Bug: b/359006069
Change-Id: Ibaa47e31826cf20136a11d551621fd62c1abab3c
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5908389
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
This commit is contained in:
George Steed 2024-10-02 17:50:58 +01:00 committed by Frank Barchard
parent 77f3acade4
commit dfa279fc65
2 changed files with 6 additions and 6 deletions

View File

@ -73,9 +73,9 @@ extern "C" {
#endif // VisualStudio >= 2012 #endif // VisualStudio >= 2012
// Clang 19 required for SME due to needing __arm_tpidr2_save from compiler-rt, // Clang 19 required for SME due to needing __arm_tpidr2_save from compiler-rt,
// only enabled on Linux for now. // only enabled on Linux and Android (both define __linux__) for now.
#if !defined(LIBYUV_DISABLE_SME) && defined(__aarch64__) && \ #if !defined(LIBYUV_DISABLE_SME) && defined(__aarch64__) && \
defined(__gnu_linux__) && defined(__clang__) && (__clang_major__ >= 19) defined(__linux__) && defined(__clang__) && (__clang_major__ >= 19)
#define CLANG_HAS_SME 1 #define CLANG_HAS_SME 1
#endif #endif

View File

@ -20,11 +20,11 @@ declare_args() {
(current_cpu == "arm" && (arm_use_neon || arm_optionally_use_neon)) (current_cpu == "arm" && (arm_use_neon || arm_optionally_use_neon))
libyuv_use_sve = current_cpu == "arm64" libyuv_use_sve = current_cpu == "arm64"
# Restrict to is_linux to work around undefined symbol linker errors on # Restrict to (is_linux || is_android) to work around undefined symbol linker
# Android, Fuchsia, macOS, and compilation errors on Windows. # errors on Fuchsia, macOS, and compilation errors on Windows.
# TODO: bug 359006069 - Remove the is_linux restriction after the linker and # TODO: bug 359006069 - Remove the restriction after the linker and
# compilation errors are fixed. # compilation errors are fixed.
libyuv_use_sme = current_cpu == "arm64" && is_linux libyuv_use_sme = current_cpu == "arm64" && (is_linux || is_android)
libyuv_use_msa = libyuv_use_msa =
(current_cpu == "mips64el" || current_cpu == "mipsel") && mips_use_msa (current_cpu == "mips64el" || current_cpu == "mipsel") && mips_use_msa
libyuv_use_mmi = libyuv_use_mmi =