base: add ability to override platform-level functionality in base
In Google3, we need the ability to annotate the regions around blocking
syscalls so the userspace scheduler is aware of them. Because of this,
add functionality to mark such regions by having an abstraction of a
"platform" at a build system level and allow Bazel to override it.
Moreover, annotate read, write and poll syscalls in base with these
new functions: the "default" functions are empty noops.
Change-Id: I18c8246d32bac512494c2bc2cd5b02d840b82ec6
diff --git a/Android.bp b/Android.bp
index 2cea732..b5660da 100644
--- a/Android.bp
+++ b/Android.bp
@@ -18,6 +18,7 @@
cc_binary {
name: "heapprofd",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",
@@ -200,6 +201,7 @@
cc_library_shared {
name: "heapprofd_client",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_public_abi_base",
@@ -232,6 +234,7 @@
cc_library_shared {
name: "heapprofd_client_api",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_public_abi_base",
@@ -280,6 +283,7 @@
cc_library_shared {
name: "heapprofd_standalone_client",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",
@@ -455,6 +459,7 @@
cc_binary_host {
name: "ipc_plugin",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_public_abi_base",
@@ -478,6 +483,7 @@
cc_library_shared {
name: "libperfetto",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",
@@ -704,6 +710,7 @@
cc_library_static {
name: "libperfetto_client_experimental",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",
@@ -921,6 +928,7 @@
cc_binary {
name: "perfetto",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",
@@ -1070,10 +1078,19 @@
],
}
+// GN: //src/base:perfetto_base_default_platform
+filegroup {
+ name: "perfetto_base_default_platform",
+ srcs: [
+ "src/base/default_platform.cc",
+ ],
+}
+
// GN: //test/cts:perfetto_cts_deps
cc_library_static {
name: "perfetto_cts_deps",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",
@@ -1364,6 +1381,7 @@
cc_library_static {
name: "perfetto_cts_jni_deps",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",
@@ -1800,6 +1818,7 @@
cc_test {
name: "perfetto_integrationtests",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",
@@ -8784,6 +8803,7 @@
cc_binary_host {
name: "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_public_abi_base",
@@ -11258,6 +11278,7 @@
cc_test {
name: "perfetto_unittests",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_http_http",
@@ -11749,6 +11770,7 @@
cc_library_static {
name: "perfetto_vts_deps",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",
@@ -12031,6 +12053,7 @@
cc_binary_host {
name: "protozero_plugin",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_public_abi_base",
@@ -12054,6 +12077,7 @@
cc_binary {
name: "trace_processor_shell",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_http_http",
@@ -12268,6 +12292,7 @@
cc_binary_host {
name: "traceconv",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",
@@ -12468,6 +12493,7 @@
cc_binary {
name: "traced_perf",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",
@@ -12662,6 +12688,7 @@
cc_binary {
name: "trigger_perfetto",
srcs: [
+ ":perfetto_base_default_platform",
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",