shithub: libvpx

Download patch

ref: d6e80deb32a3578dc333e2f1d2594a969777dcad
parent: 5daaa838a62921ad1f5c6e48dc7db180a55fdf3e
author: Johann <johannkoenig@google.com>
date: Tue Jun 12 04:58:11 EDT 2012

Clean Android build defaults

Disable unit-tests. The logging in GTest would need to be adjusted.

Restructure ARM cpu detection. Flatten if-else logic.

Change #if defined(HAVE_*) to #if HAVE_* because we only need to check
for features that the library was actually built with. This should have
been harmless, as disabled feature sets wouldn't have any features to
call.

Change-Id: Iea21aa42ce5f049c53ca0376d25bcd0f36f38284

--- a/configure
+++ b/configure
@@ -588,13 +588,18 @@
     fi
 
     # Enable unit tests if we have a working C++ compiler
-    case "$tgt_cc" in
-        vs*)
-            soft_enable unit_tests;;
+    case "$toolchain" in
+        *-vs*)
+            soft_enable unit_tests
+        ;;
+        *-android-*)
+            # GTestLog must be modified to use Android logging utilities.
+        ;;
         *)
             check_cxx "$@" <<EOF && soft_enable unit_tests
 int z;
 EOF
+        ;;
     esac
 }
 
--- a/vpx_ports/arm_cpudetect.c
+++ b/vpx_ports/arm_cpudetect.c
@@ -36,6 +36,9 @@
 
 int arm_cpu_caps(void)
 {
+  /* This function should actually be a no-op. There is no way to adjust any of
+   * these because the RTCD tables do not exist: the functions are called
+   * statically */
     int flags;
     int mask;
     if (!arm_cpu_env_flags(&flags))
@@ -43,19 +46,19 @@
         return flags;
     }
     mask = arm_cpu_env_mask();
-#if defined(HAVE_EDSP)
+#if HAVE_EDSP
     flags |= HAS_EDSP;
-#endif
-#if defined(HAVE_MEDIA)
+#endif /* HAVE_EDSP */
+#if HAVE_MEDIA
     flags |= HAS_MEDIA;
-#endif
-#if defined(HAVE_NEON)
+#endif /* HAVE_MEDIA */
+#if HAVE_NEON
     flags |= HAS_NEON;
-#endif
+#endif /* HAVE_NEON */
     return flags & mask;
 }
 
-#elif defined(_MSC_VER)
+#elif defined(_MSC_VER) /* end !CONFIG_RUNTIME_CPU_DETECT */
 /*For GetExceptionCode() and EXCEPTION_ILLEGAL_INSTRUCTION.*/
 #define WIN32_LEAN_AND_MEAN
 #define WIN32_EXTRA_LEAN
@@ -74,7 +77,7 @@
      *  instructions via their assembled hex code.
      * All of these instructions should be essentially nops.
      */
-#if defined(HAVE_EDSP)
+#if HAVE_EDSP
     if (mask & HAS_EDSP)
     {
         __try
@@ -88,7 +91,7 @@
             /*Ignore exception.*/
         }
     }
-#if defined(HAVE_MEDIA)
+#if HAVE_MEDIA
     if (mask & HAS_MEDIA)
         __try
         {
@@ -101,7 +104,7 @@
             /*Ignore exception.*/
         }
     }
-#if defined(HAVE_NEON)
+#if HAVE_NEON
     if (mask & HAS_NEON)
     {
         __try
@@ -115,14 +118,13 @@
             /*Ignore exception.*/
         }
     }
-#endif
-#endif
-#endif
+#endif /* HAVE_NEON */
+#endif /* HAVE_MEDIA */
+#endif /* HAVE_EDSP */
     return flags & mask;
 }
 
-#elif defined(__linux__)
-#if defined(__ANDROID__)
+#elif defined(__ANDROID__) /* end _MSC_VER */
 #include <cpu-features.h>
 
 int arm_cpu_caps(void)
@@ -137,19 +139,20 @@
     mask = arm_cpu_env_mask();
     features = android_getCpuFeatures();
 
-#if defined(HAVE_EDSP)
+#if HAVE_EDSP
     flags |= HAS_EDSP;
-#endif
-#if defined(HAVE_MEDIA)
+#endif /* HAVE_EDSP */
+#if HAVE_MEDIA
     flags |= HAS_MEDIA;
-#endif
-#if defined(HAVE_NEON)
+#endif /* HAVE_MEDIA */
+#if HAVE_NEON
     if (features & ANDROID_CPU_ARM_FEATURE_NEON)
         flags |= HAS_NEON;
-#endif
+#endif /* HAVE_NEON */
     return flags & mask;
 }
-#else // !defined(__ANDROID__)
+
+#elif defined(__linux__) /* end __ANDROID__ */
 #include <stdio.h>
 
 int arm_cpu_caps(void)
@@ -175,27 +178,27 @@
         char buf[512];
         while (fgets(buf, 511, fin) != NULL)
         {
-#if defined(HAVE_EDSP) || defined(HAVE_NEON)
+#if HAVE_EDSP || HAVE_NEON
             if (memcmp(buf, "Features", 8) == 0)
             {
                 char *p;
-#if defined(HAVE_EDSP)
+#if HAVE_EDSP
                 p=strstr(buf, " edsp");
                 if (p != NULL && (p[5] == ' ' || p[5] == '\n'))
                 {
                     flags |= HAS_EDSP;
                 }
-#if defined(HAVE_NEON)
+#if HAVE_NEON
                 p = strstr(buf, " neon");
                 if (p != NULL && (p[5] == ' ' || p[5] == '\n'))
                 {
                     flags |= HAS_NEON;
                 }
-#endif
-#endif
+#endif /* HAVE_NEON */
+#endif /* HAVE_EDSP */
             }
-#endif
-#if defined(HAVE_MEDIA)
+#endif /* HAVE_EDSP || HAVE_NEON */
+#if HAVE_MEDIA
             if (memcmp(buf, "CPU architecture:",17) == 0){
                 int version;
                 version = atoi(buf+17);
@@ -204,14 +207,13 @@
                     flags |= HAS_MEDIA;
                 }
             }
-#endif
+#endif /* HAVE_MEDIA */
         }
         fclose(fin);
     }
     return flags & mask;
 }
-#endif // defined(__linux__)
-#else
+#else /* end __linux__ */
 #error "--enable-runtime-cpu-detect selected, but no CPU detection method " \
  "available for your platform. Reconfigure with --disable-runtime-cpu-detect."
 #endif