prng_seeder is a bootstrap process in microdroid
It is started very early before linker namespaces are configured, thus
making it a bootstrap process. Also, it is built with `prefer_rlib:
true` so that we don't spend time for dynamically linking the dylibs.
Bug: 263398430
Test: watch boottime benchmark
Change-Id: I5193d0d36958de5b6d6dfa8584212f82edb727bc
diff --git a/prng_seeder/Android.bp b/prng_seeder/Android.bp
index 5759731..292535a 100644
--- a/prng_seeder/Android.bp
+++ b/prng_seeder/Android.bp
@@ -31,10 +31,9 @@
],
}
-rust_binary {
- name: "prng_seeder",
+rust_defaults {
+ name: "prng_seeder_defaults",
edition: "2021",
- srcs: ["src/main.rs"],
rustlibs: [
"libanyhow",
"libbssl_ffi",
@@ -48,3 +47,19 @@
init_rc: ["prng_seeder.rc"],
}
+
+rust_binary {
+ name: "prng_seeder",
+ defaults: ["prng_seeder_defaults"],
+ srcs: ["src/main.rs"],
+}
+
+rust_binary {
+ name: "prng_seeder_microdroid",
+ defaults: ["prng_seeder_defaults"],
+ srcs: ["src/main.rs"],
+ stem: "prng_seeder",
+ bootstrap: true,
+ installable: false,
+ prefer_rlib: true,
+}