aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergii Parubochyi <sergiip@google.com>2023-10-16 13:05:07 +1100
committerSergii Parubochyi <sergiip@google.com>2023-10-17 15:47:49 +1100
commitcfb21e96639f3b8037f8dd47d74a30503c02b739 (patch)
tree76b37006288cb8acf7121d04211bb64458a1b5d0
parente5706fcac14315071e617920fa0ee2702548ac84 (diff)
downloadavb-cfb21e96639f3b8037f8dd47d74a30503c02b739.tar.gz
Add missing rust target
Adding 'host_supported' target. Adding missing variants for host tests dependency. GBL target depends on it (b/294059574) Test: mm Change-Id: I4e591402cc3d967e68f54f177576f2f1104b42e5
-rw-r--r--rust/Android.bp28
-rw-r--r--rust/src/lib.rs5
2 files changed, 29 insertions, 4 deletions
diff --git a/rust/Android.bp b/rust/Android.bp
index 685f51b..6284bfc 100644
--- a/rust/Android.bp
+++ b/rust/Android.bp
@@ -76,10 +76,16 @@ rust_test {
// Rust library wrapping libavb C implementation.
rust_defaults {
- name: "libavb_rs.defaults",
+ name: "libavb_rs_common.defaults",
+ crate_name: "avb",
srcs: ["src/lib.rs"],
// Require unsafe blocks for inside unsafe functions.
flags: ["-Dunsafe_op_in_unsafe_fn"],
+}
+
+rust_defaults {
+ name: "libavb_rs_nostd.defaults",
+ defaults: ["libavb_rs_common.defaults"],
rustlibs: [
"libavb_bindgen_nostd",
],
@@ -88,11 +94,27 @@ rust_defaults {
],
}
+rust_defaults {
+ name: "libavb_rs.defaults",
+ defaults: ["libavb_rs_common.defaults"],
+ host_supported: true,
+ rustlibs: [
+ "libavb_bindgen",
+ ],
+ whole_static_libs: [
+ "libavb",
+ ],
+}
+
+rust_library {
+ name: "libavb_rs",
+ defaults: ["libavb_rs.defaults"],
+}
+
rust_library_rlib {
name: "libavb_rs_nostd",
- crate_name: "avb",
prefer_rlib: true,
- defaults: ["libavb_rs.defaults"],
+ defaults: ["libavb_rs_nostd.defaults"],
no_stdlibs: true,
stdlibs: [
"libcore.rust_sysroot",
diff --git a/rust/src/lib.rs b/rust/src/lib.rs
index adb3796..6a63baa 100644
--- a/rust/src/lib.rs
+++ b/rust/src/lib.rs
@@ -21,7 +21,10 @@
//!
//! This library is [no_std] for portability.
-#![cfg_attr(not(test), no_std)]
+// ANDROID: Use std to allow building as a dylib.
+// This condition lets us make the hack to add a dependency on std for the
+// panic_handler and eh_personality conditional on actually building a dylib.
+#![cfg_attr(not(any(test, android_dylib)), no_std)]
mod error;
mod verify;