Module: Mesa Branch: master Commit: 107b9c70d04c381d5517582d67925a29eac6eac4 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=107b9c70d04c381d5517582d67925a29eac6eac4
Author: Tomasz Figa <[email protected]> Date: Tue Jul 18 16:20:52 2017 +0900 gallium: auxiliary: Fix standalone Android build of u_cpu_detect (v2) Commit 463b7d0332c5("gallium: Enable ARM NEON CPU detection.") introduced CPU feature detection based Android cpufeatures library. Unfortunately it also added an assumption that if PIPE_OS_ANDROID is defined, the library is also available, which is not true for the standalone build without using Android build system. Fix it by defining HAS_ANDROID_CPUFEATURES in Android.mk and replacing respective #ifdefs to use it instead. v2: - Add a comment explaining why the separate flag is needed (Emil). Signed-off-by: Tomasz Figa <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Emil Velikov <[email protected]> --- src/gallium/auxiliary/Android.mk | 1 + src/gallium/auxiliary/util/u_cpu_detect.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/Android.mk b/src/gallium/auxiliary/Android.mk index 356390dfde..26938384fb 100644 --- a/src/gallium/auxiliary/Android.mk +++ b/src/gallium/auxiliary/Android.mk @@ -50,6 +50,7 @@ LOCAL_MODULE := libmesa_gallium LOCAL_STATIC_LIBRARIES += libmesa_nir LOCAL_WHOLE_STATIC_LIBRARIES += cpufeatures +LOCAL_CFLAGS += -DHAS_ANDROID_CPUFEATURES # generate sources LOCAL_MODULE_CLASS := STATIC_LIBRARIES diff --git a/src/gallium/auxiliary/util/u_cpu_detect.c b/src/gallium/auxiliary/util/u_cpu_detect.c index 76115bf8d5..3d6ccb5822 100644 --- a/src/gallium/auxiliary/util/u_cpu_detect.c +++ b/src/gallium/auxiliary/util/u_cpu_detect.c @@ -67,7 +67,7 @@ #include <unistd.h> #endif -#if defined(PIPE_OS_ANDROID) +#if defined(HAS_ANDROID_CPUFEATURES) #include <cpu-features.h> #endif @@ -304,7 +304,14 @@ PIPE_ALIGN_STACK static inline boolean sse2_has_daz(void) static void check_os_arm_support(void) { -#if defined(PIPE_OS_ANDROID) + /* + * On Android, the cpufeatures library is preferred way of checking + * CPU capabilities. However, it is not available for standalone Mesa + * builds, i.e. when Android build system (Android.mk-based) is not + * used. Because of this we cannot use PIPE_OS_ANDROID here, but rather + * have a separate macro that only gets enabled from respective Android.mk. + */ +#if defined(HAS_ANDROID_CPUFEATURES) AndroidCpuFamily cpu_family = android_getCpuFamily(); uint64_t cpu_features = android_getCpuFeatures(); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
