Android.bp: Clean up vmbase_*_defaults

Re-purpose vmbase_rust_defaults, which was only used by libvmbase, to be
a rust_defaults for all rust_library_rlib intended for vmbase-based
binaries and mark those as no_stdlibs, prefer_rlib, and linking against
libcore.

Dedicate vmbase_ffi_defaults to rust_ffi_static building a vmbase-based
binary i.e. pvmfw, Rialto, and vmbase_example. This is currently a
wrapper around vmbase_rlib_defaults.

Remove redundant properties in users of those defaults.

Mark vmbase_cc_defaults as no_libcrt and disable native_coverage.

Remove duplicates in vmbase_elf_defaults.

Test: TH
Change-Id: Ia88e94b5994f39d6b6ad707ad2e9215027bb50f0
diff --git a/pvmfw/Android.bp b/pvmfw/Android.bp
index c9909e6..35fd52f 100644
--- a/pvmfw/Android.bp
+++ b/pvmfw/Android.bp
@@ -7,7 +7,6 @@
     crate_name: "pvmfw",
     defaults: ["vmbase_ffi_defaults"],
     srcs: ["src/main.rs"],
-    edition: "2021",
     // Require unsafe blocks for inside unsafe functions.
     flags: ["-Dunsafe_op_in_unsafe_fn"],
     features: [
@@ -83,7 +82,6 @@
     // partition image. This is just to package the unstripped file into the
     // symbols zip file for debugging purpose.
     installable: true,
-    native_coverage: false,
 }
 
 raw_binary {
@@ -135,8 +133,7 @@
 
 rust_library_rlib {
     name: "libpvmfw_embedded_key",
-    defaults: ["vmbase_ffi_defaults"],
-    prefer_rlib: true,
+    defaults: ["vmbase_rlib_defaults"],
     srcs: [":pvmfw_embedded_key_rs"],
     crate_name: "pvmfw_embedded_key",
     apex_available: ["com.android.virt"],
@@ -193,8 +190,7 @@
 
 rust_library_rlib {
     name: "libpvmfw_fdt_template",
-    defaults: ["vmbase_ffi_defaults"],
-    prefer_rlib: true,
+    defaults: ["vmbase_rlib_defaults"],
     srcs: [":pvmfw_fdt_template_rs"],
     crate_name: "pvmfw_fdt_template",
 }