diff --git a/base/Android.bp b/base/Android.bp index 32859ea24..5d7e55e42 100644 --- a/base/Android.bp +++ b/base/Android.bp @@ -15,7 +15,7 @@ package { rust_test { name: "base_test_src_lib", defaults: ["crosvm_defaults"], - host_supported: true, + host_supported: false, // Can't seem to access syslog in TH host tests. crate_name: "base", cargo_env_compat: true, cargo_pkg_version: "0.1.0", @@ -47,12 +47,31 @@ rust_test { "libbase_event_token_derive", "libremain", ], + target: { + android: { + rustlibs: ["libandroid_log_sys"], + }, + linux_bionic_arm64: { + // For ARM architecture, we use aarch64-linux-android for BOTH + // device and host targets. As a result, host targets are also + // built with target_os = "android". Therefore, sys_util/src/android + // is used and thus this android module is required. + // This seems incorrect, but is inevitable because rustc doesn't + // yet support a Linux-based target using Bionic as libc. We can't + // use aarch64-unknown-linux-gnu because it's using glibc which + // we don't support for cross-host builds. + rustlibs: [ + "libandroid_log_sys", + ], + }, + }, + shared_libs: ["libcap"], // specified in src/linux/capabilities.rs } rust_test { name: "base_test_tests_linux_main", defaults: ["crosvm_defaults"], - host_supported: true, + host_supported: false, // Can't seem to access syslog in TH host tests. crate_name: "linux", cargo_env_compat: true, cargo_pkg_version: "0.1.0", @@ -161,6 +180,25 @@ rust_test { "libbase_event_token_derive", "libremain", ], + target: { + android: { + rustlibs: ["libandroid_log_sys"], + }, + linux_bionic_arm64: { + // For ARM architecture, we use aarch64-linux-android for BOTH + // device and host targets. As a result, host targets are also + // built with target_os = "android". Therefore, sys_util/src/android + // is used and thus this android module is required. + // This seems incorrect, but is inevitable because rustc doesn't + // yet support a Linux-based target using Bionic as libc. We can't + // use aarch64-unknown-linux-gnu because it's using glibc which + // we don't support for cross-host builds. + rustlibs: [ + "libandroid_log_sys", + ], + }, + }, + shared_libs: ["libcap"], // specified in src/linux/capabilities.rs } rust_library { @@ -194,3 +232,22 @@ rust_library { ], apex_available: ["com.android.virt"], + target: { + android: { + rustlibs: ["libandroid_log_sys"], + }, + linux_bionic_arm64: { + // For ARM architecture, we use aarch64-linux-android for BOTH + // device and host targets. As a result, host targets are also + // built with target_os = "android". Therefore, sys_util/src/android + // is used and thus this android module is required. + // This seems incorrect, but is inevitable because rustc doesn't + // yet support a Linux-based target using Bionic as libc. We can't + // use aarch64-unknown-linux-gnu because it's using glibc which + // we don't support for cross-host builds. + rustlibs: [ + "libandroid_log_sys", + ], + }, + }, + shared_libs: ["libcap"], // specified in src/linux/capabilities.rs }