Add no_std version of library, with different set of features enabled.

This is necessary to use the spinlock implementation in no_std binaries
such as pVM firmware. Other users need the std features of the library
so we can't use the same target for both.

Bug: 223166344
Test: Ran pVM firmware with spinlock for console UART.
Change-Id: Ia06b1abedd3c6da0f75b0b131a669a7216db8877
diff --git a/Android.bp b/Android.bp
index ff9b357..6d0e88c 100644
--- a/Android.bp
+++ b/Android.bp
@@ -71,6 +71,26 @@
     ],
 }
 
+rust_library_rlib {
+    name: "libspin_nostd",
+    host_supported: true,
+    crate_name: "spin",
+    cargo_env_compat: true,
+    cargo_pkg_version: "0.9.2",
+    srcs: ["src/lib.rs"],
+    edition: "2015",
+    features: [
+        "mutex",
+        "spin_mutex",
+    ],
+    apex_available: [
+        "//apex_available:platform",
+        "com.android.virt",
+    ],
+    min_sdk_version: "29",
+}
+
+
 // Errors when listing tests:
 // error[E0433]: failed to resolve: could not find `Mutex` in `spin`
 // error[E0433]: failed to resolve: could not find `RwLock` in `spin`
diff --git a/cargo2android.json b/cargo2android.json
index 1fff1ac..086d38a 100644
--- a/cargo2android.json
+++ b/cargo2android.json
@@ -1,4 +1,5 @@
 {
+  "add-toplevel-block": "cargo2android_nostd.bp",
   "apex-available": [
     "//apex_available:platform",
     "com.android.compos",
diff --git a/cargo2android_nostd.bp b/cargo2android_nostd.bp
new file mode 100644
index 0000000..49d0318
--- /dev/null
+++ b/cargo2android_nostd.bp
@@ -0,0 +1,18 @@
+rust_library_rlib {
+    name: "libspin_nostd",
+    host_supported: true,
+    crate_name: "spin",
+    cargo_env_compat: true,
+    cargo_pkg_version: "0.9.2",
+    srcs: ["src/lib.rs"],
+    edition: "2015",
+    features: [
+        "mutex",
+        "spin_mutex",
+    ],
+    apex_available: [
+        "//apex_available:platform",
+        "com.android.virt",
+    ],
+    min_sdk_version: "29",
+}