traced_perf: in-tree builds: arm register parsing basics

This adds libunwindstack as a dependency for traced_perf, and has the necessary
logic to sample the userspace register state of sampled processes. The
registers are converted to libunwindstack's representation and, for now,
printed.

Only supporting arm32/arm64 at the moment. x86 coming soon, standalone builds
require figuring out where to source the uapi constant definitions from.

Sorry, no tests at this point, more of a "I've ran this and it printed
something sensible according to /proc/pid/maps".

Also changes traced_perf to only build in the Android tree atm.

Change-Id: Id0df3b8c3901d733480d4289cf9b37562c3427d8
diff --git a/tools/gen_android_bp b/tools/gen_android_bp
index c00e697..ebc440a 100755
--- a/tools/gen_android_bp
+++ b/tools/gen_android_bp
@@ -158,11 +158,17 @@
         ('static_libs', {'libasync_safe'}),
         ('header_libs', {'bionic_libc_platform_headers'}),
     ],
-    'perfetto_unittests': [('data', set(enumerate_data_deps())),],
+    'perfetto_unittests': [
+        ('data', set(enumerate_data_deps())),
+        ('include_dirs', {'bionic/libc/kernel'}),
+    ],
     'traced_probes': [
         ('required', {'libperfetto_android_internal', 'trigger_perfetto'}),
     ],
     'libperfetto_android_internal': [('static_libs', {'libhealthhalutils'}),],
+    'traced_perf': [
+        ('include_dirs', {'bionic/libc/kernel'}),
+    ],
     'trace_processor_shell': [
       ('dist', {'targets': ['sdk_repo']}),
       ('stl', 'libc++_static'),