Define linker.recovery

By removing the "recovery_available" property from "linker" module.
"recovery_available" property should be used to allow the reverse
dependencies recovery modules to depend on the module, not to
install the module to the recovery partition.

Test: m soong_generated_recovery_filesystem_test
Bug: 381888358
Change-Id: I9741cc40a1984016310123bf2fa6a31905abcbf1
diff --git a/linker/Android.bp b/linker/Android.bp
index 4863b92..1d0e14d 100644
--- a/linker/Android.bp
+++ b/linker/Android.bp
@@ -350,8 +350,8 @@
 // linker[_asan][64] binary
 // ========================================================
 
-cc_binary {
-    name: "linker",
+cc_defaults {
+    name: "linker_binary_defaults",
     defaults: [
         "linker_bin_template",
         "linux_bionic_supported",
@@ -376,8 +376,6 @@
 
     compile_multilib: "both",
 
-    recovery_available: true,
-    vendor_ramdisk_available: true,
     apex_available: [
         "//apex_available:platform",
         "com.android.runtime",
@@ -403,6 +401,25 @@
     afdo: true,
 }
 
+cc_binary {
+    name: "linker",
+    defaults: [
+        "linker_binary_defaults",
+    ],
+
+    vendor_ramdisk_available: true,
+}
+
+cc_binary {
+    name: "linker.recovery",
+    defaults: [
+        "linker_binary_defaults",
+    ],
+
+    recovery: true,
+    stem: "linker",
+}
+
 // ========================================================
 // assorted modules
 // ========================================================