diff --git a/include/libyuv/cpu_support.h b/include/libyuv/cpu_support.h index 0d67c3465..168764b27 100644 --- a/include/libyuv/cpu_support.h +++ b/include/libyuv/cpu_support.h @@ -73,9 +73,9 @@ extern "C" { #endif // VisualStudio >= 2012 // 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__) && \ - defined(__gnu_linux__) && defined(__clang__) && (__clang_major__ >= 19) + defined(__linux__) && defined(__clang__) && (__clang_major__ >= 19) #define CLANG_HAS_SME 1 #endif diff --git a/libyuv.gni b/libyuv.gni index 07182d14b..3334df70b 100644 --- a/libyuv.gni +++ b/libyuv.gni @@ -20,11 +20,11 @@ declare_args() { (current_cpu == "arm" && (arm_use_neon || arm_optionally_use_neon)) libyuv_use_sve = current_cpu == "arm64" - # Restrict to is_linux to work around undefined symbol linker errors on - # Android, Fuchsia, macOS, and compilation errors on Windows. - # TODO: bug 359006069 - Remove the is_linux restriction after the linker and + # Restrict to (is_linux || is_android) to work around undefined symbol linker + # errors on Fuchsia, macOS, and compilation errors on Windows. + # TODO: bug 359006069 - Remove the restriction after the linker and # 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 = (current_cpu == "mips64el" || current_cpu == "mipsel") && mips_use_msa libyuv_use_mmi =