Introduce avf_build_flags_cc cc_defaults
These are similar to avf_build_rust_build flags, but for cc_* soong
modules.
In the immediate future this will be used for flag guarding
virtcpu-freq related changes to platform.dts.
This patch also adds avf_build_flags_cc as cc_defaults to all our
existing cc_* soong modules
Test: builds
Bug: 284369518
Change-Id: I19152675802548cd9efba30a40bccdbb14867fe1
diff --git a/Android.bp b/Android.bp
index 696a963..03bea5a 100644
--- a/Android.bp
+++ b/Android.bp
@@ -62,6 +62,27 @@
},
}
+soong_config_module_type {
+ name: "avf_flag_aware_cc_defaults",
+ module_type: "cc_defaults",
+ config_namespace: "ANDROID",
+ bool_variables: [
+ "release_avf_enable_virt_cpufreq",
+ ],
+ properties: [
+ "cflags",
+ ],
+}
+
+avf_flag_aware_cc_defaults {
+ name: "avf_build_flags_cc",
+ soong_config_variables: {
+ release_avf_enable_virt_cpufreq: {
+ cflags: ["-DAVF_ENABLE_VIRT_CPUFREQ=1"],
+ },
+ },
+}
+
genrule_defaults {
name: "dts_to_dtb",
tools: ["dtc"],
diff --git a/apex/empty-payload-apk/Android.bp b/apex/empty-payload-apk/Android.bp
index e78daec..72ec392 100644
--- a/apex/empty-payload-apk/Android.bp
+++ b/apex/empty-payload-apk/Android.bp
@@ -18,6 +18,7 @@
cc_library {
name: "MicrodroidEmptyPayloadJniLib",
+ defaults: ["avf_build_flags_cc"],
srcs: ["empty_binary.cpp"],
shared_libs: ["libvm_payload#current"],
installable: true,
diff --git a/authfs/tests/benchmarks/Android.bp b/authfs/tests/benchmarks/Android.bp
index 5ef01cc..5820cb4 100644
--- a/authfs/tests/benchmarks/Android.bp
+++ b/authfs/tests/benchmarks/Android.bp
@@ -29,6 +29,7 @@
cc_binary {
name: "measure_io",
+ defaults: ["avf_build_flags_cc"],
srcs: [
"src/measure_io.cpp",
],
diff --git a/compos/compos_key_helper/Android.bp b/compos/compos_key_helper/Android.bp
index 6b4b61e..7d27525 100644
--- a/compos/compos_key_helper/Android.bp
+++ b/compos/compos_key_helper/Android.bp
@@ -5,6 +5,7 @@
cc_defaults {
name: "compos_key_defaults",
+ defaults: ["avf_build_flags_cc"],
apex_available: ["com.android.compos"],
shared_libs: [
diff --git a/compos/verify/native/Android.bp b/compos/verify/native/Android.bp
index 70cb2ab..ac2fcfb 100644
--- a/compos/verify/native/Android.bp
+++ b/compos/verify/native/Android.bp
@@ -25,6 +25,7 @@
cc_library_static {
name: "libcompos_verify_native_cpp",
+ defaults: ["avf_build_flags_cc"],
srcs: ["verify_native.cpp"],
static_libs: ["libcompos_key"],
shared_libs: [
diff --git a/demo_native/Android.bp b/demo_native/Android.bp
index 7b6967e..facb2bb 100644
--- a/demo_native/Android.bp
+++ b/demo_native/Android.bp
@@ -5,6 +5,7 @@
cc_binary {
name: "vm_demo_native",
+ defaults: ["avf_build_flags_cc"],
srcs: ["main.cpp"],
static_libs: [
"libbase",
diff --git a/javalib/jni/Android.bp b/javalib/jni/Android.bp
index 6e2a129..24dece2 100644
--- a/javalib/jni/Android.bp
+++ b/javalib/jni/Android.bp
@@ -5,6 +5,7 @@
cc_library_shared {
name: "libvirtualizationservice_jni",
+ defaults: ["avf_build_flags_cc"],
srcs: [
"android_system_virtualmachine_VirtualizationService.cpp",
],
@@ -20,6 +21,7 @@
cc_library_shared {
name: "libvirtualmachine_jni",
+ defaults: ["avf_build_flags_cc"],
srcs: [
"android_system_virtualmachine_VirtualMachine.cpp",
],
diff --git a/launcher/Android.bp b/launcher/Android.bp
index c6873ce..9835fc9 100644
--- a/launcher/Android.bp
+++ b/launcher/Android.bp
@@ -5,6 +5,7 @@
cc_binary {
name: "microdroid_launcher",
+ defaults: ["avf_build_flags_cc"],
srcs: ["main.cpp"],
shared_libs: [
"libbase",
diff --git a/libs/apkmanifest/Android.bp b/libs/apkmanifest/Android.bp
index e6fcbef..54c4f6c 100644
--- a/libs/apkmanifest/Android.bp
+++ b/libs/apkmanifest/Android.bp
@@ -4,6 +4,7 @@
cc_library_shared {
name: "libapkmanifest_native",
+ defaults: ["avf_build_flags_cc"],
srcs: ["native/*.cpp"],
shared_libs: [
"libandroidfw",
diff --git a/microdroid/kdump/Android.bp b/microdroid/kdump/Android.bp
index ff73fdb..5d129f4 100644
--- a/microdroid/kdump/Android.bp
+++ b/microdroid/kdump/Android.bp
@@ -5,6 +5,7 @@
cc_binary {
name: "microdroid_kexec",
+ defaults: ["avf_build_flags_cc"],
stem: "kexec_load",
srcs: ["kexec.c"],
installable: false,
@@ -14,6 +15,7 @@
cc_binary {
name: "microdroid_crashdump",
+ defaults: ["avf_build_flags_cc"],
stem: "crashdump",
srcs: ["crashdump.c"],
static_executable: true,
diff --git a/microdroid/payload/Android.bp b/microdroid/payload/Android.bp
index 7e11de3..e67a6d5 100644
--- a/microdroid/payload/Android.bp
+++ b/microdroid/payload/Android.bp
@@ -5,6 +5,7 @@
cc_defaults {
name: "microdroid_metadata_default",
+ defaults: ["avf_build_flags_cc"],
host_supported: true,
srcs: [
"metadata.proto",
diff --git a/pvmfw/Android.bp b/pvmfw/Android.bp
index ee77f14..110d46a 100644
--- a/pvmfw/Android.bp
+++ b/pvmfw/Android.bp
@@ -295,6 +295,7 @@
// numbers defined in the ARM DT binding headers
cc_object {
name: "pvmfw_platform.dts.preprocessed",
+ defaults: ["avf_build_flags_cc"],
header_libs: ["arm_dt_bindings_headers"],
host_supported: true,
srcs: [":pvmfw_platform.dts.renamed"],
diff --git a/tests/benchmark/Android.bp b/tests/benchmark/Android.bp
index 31fe0f6..c31c929 100644
--- a/tests/benchmark/Android.bp
+++ b/tests/benchmark/Android.bp
@@ -34,6 +34,7 @@
cc_library_shared {
name: "MicrodroidBenchmarkNativeLib",
+ defaults: ["avf_build_flags_cc"],
srcs: ["src/native/*.cpp"],
local_include_dirs: ["src/native/include"],
static_libs: [
diff --git a/tests/benchmark/src/jni/Android.bp b/tests/benchmark/src/jni/Android.bp
index c2e1b7c..06de3e5 100644
--- a/tests/benchmark/src/jni/Android.bp
+++ b/tests/benchmark/src/jni/Android.bp
@@ -5,6 +5,7 @@
cc_library_shared {
name: "libiovsock_host_jni",
+ defaults: ["avf_build_flags_cc"],
srcs: ["io_vsock_host_jni.cpp"],
header_libs: ["jni_headers"],
shared_libs: ["libbase"],
diff --git a/tests/testapk/Android.bp b/tests/testapk/Android.bp
index 10bbfb4..86172b0 100644
--- a/tests/testapk/Android.bp
+++ b/tests/testapk/Android.bp
@@ -68,6 +68,7 @@
// (MicrodroidTestApp) can start a payload defined in the another app (MicrodroidVmShareApp).
cc_defaults {
name: "MicrodroidTestNativeLibDefaults",
+ defaults: ["avf_build_flags_cc"],
srcs: ["src/native/testbinary.cpp"],
stl: "libc++_static",
header_libs: ["vm_payload_restricted_headers"],
@@ -99,12 +100,14 @@
cc_library_shared {
name: "MicrodroidTestNativeLibSub",
+ defaults: ["avf_build_flags_cc"],
srcs: ["src/native/testlib.cpp"],
stl: "libc++_static",
}
cc_library_shared {
name: "MicrodroidIdleNativeLib",
+ defaults: ["avf_build_flags_cc"],
srcs: ["src/native/idlebinary.cpp"],
header_libs: ["vm_payload_headers"],
stl: "libc++_static",
@@ -113,6 +116,7 @@
// An empty payload missing AVmPayload_main
cc_library_shared {
name: "MicrodroidEmptyNativeLib",
+ defaults: ["avf_build_flags_cc"],
srcs: ["src/native/emptybinary.cpp"],
stl: "none",
}
@@ -120,6 +124,7 @@
// A payload that exits immediately on start
cc_library_shared {
name: "MicrodroidExitNativeLib",
+ defaults: ["avf_build_flags_cc"],
srcs: ["src/native/exitbinary.cpp"],
header_libs: ["vm_payload_headers"],
stl: "libc++_static",
@@ -128,6 +133,7 @@
// A payload which tries to link against libselinux, one of private libraries
cc_library_shared {
name: "MicrodroidPrivateLinkingNativeLib",
+ defaults: ["avf_build_flags_cc"],
srcs: ["src/native/idlebinary.cpp"],
header_libs: ["vm_payload_headers"],
// HACK: linking against "libselinux" will embed libselinux.so into the apk
@@ -139,6 +145,7 @@
// A payload that crashes immediately on start
cc_library_shared {
name: "MicrodroidCrashNativeLib",
+ defaults: ["avf_build_flags_cc"],
srcs: ["src/native/crashbinary.cpp"],
header_libs: ["vm_payload_headers"],
stl: "libc++_static",
diff --git a/vm_payload/Android.bp b/vm_payload/Android.bp
index 286612c..cf6a1b2 100644
--- a/vm_payload/Android.bp
+++ b/vm_payload/Android.bp
@@ -63,6 +63,7 @@
// Shared library for clients to link against.
cc_library_shared {
name: "libvm_payload",
+ defaults: ["avf_build_flags_cc"],
shared_libs: [
"libbinder_ndk",
"libbinder_rpc_unstable",
@@ -84,6 +85,7 @@
// declaration of AVmPayload_main().
cc_library_headers {
name: "vm_payload_headers",
+ defaults: ["avf_build_flags_cc"],
apex_available: ["com.android.compos"],
export_include_dirs: ["include"],
}
@@ -91,6 +93,7 @@
// Restricted headers for use by internal clients & associated tests.
cc_library_headers {
name: "vm_payload_restricted_headers",
+ defaults: ["avf_build_flags_cc"],
header_libs: ["vm_payload_headers"],
export_header_lib_headers: ["vm_payload_headers"],
export_include_dirs: ["include-restricted"],
diff --git a/vmbase/Android.bp b/vmbase/Android.bp
index e682773..07e1b4c 100644
--- a/vmbase/Android.bp
+++ b/vmbase/Android.bp
@@ -41,6 +41,7 @@
// Used by extra cc_library_static linked into the final ELF.
cc_defaults {
name: "vmbase_cc_defaults",
+ defaults: ["avf_build_flags_cc"],
nocrt: true,
no_libcrt: true,
system_shared_libs: [],