Remove dependency on NDK cpufeatures.
authorMike Klein <mtklein@chromium.org>
Mon, 12 Dec 2016 15:29:38 +0000 (10:29 -0500)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Mon, 12 Dec 2016 16:16:44 +0000 (16:16 +0000)
commitf44703a87f532b3f593d91605d66d52c6bbc45c9
tree32e402bc1d505e7039df79f6f7526726d94d67d6
parent4958006657dc3d6bbad933217b687e275f1554a3
Remove dependency on NDK cpufeatures.

Instead of relying on cpu-features.c, just do what it does.

Good reading: http://man7.org/linux/man-pages/man3/getauxval.3.html

While it's nice to use the headers when possible, should either of these headers not be available, we can fall back to doing it all manually:

  extern "C" uint32_t getauxval(uint32_t)
  static const int AT_HWCAP = 16;
  static const int HWCAP_CRC32 = (1<<7);

To keep things simple I've slimmed cpu feature detection down to just the features we actually make use of.  This removes all runtime feature detection for ARMv7... we expect NEON to be globally available, and so far we haven't used the other FMA/FP16 bits on ARMv7.  ARMv8 feature dection remains the same, CRC32 before, CRC32 after.  x86 (cpuid-based detection) and MIPS (nothing) are untouched.

We need to keep //third_party/cpu-features for //third_party/libwebp.

Change-Id: I6c96df9a09ae68c8c0e54c1152aa177ba9bafc83
Reviewed-on: https://skia-review.googlesource.com/5800
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
BUILD.gn
gn/gn_to_bp.py
src/core/SkCpu.cpp