Add rules for building guest VM combined ramdisk
The guest VM ramdisk is a combination of "base ramdisk" (containing
the init process and test binaries/resources) and a "vendor ramdisk"
(containing kernel modules).
This CL adds build rules that concatenate the base and vendor ramdisks.
This can be done as a simple `cat x1 x2` because both LZ4 and CPIO
formats are concatenable.
One ramdisk per target architecture is generated because genrules cannot
be specialized using the 'arch' field.
Test: m virt_hostside_tests_initramfs-{arm64,x86_64}
Change-Id: I7f52226ea68b8bfb497e481538eb35267578c38f
diff --git a/tests/hostside/Android.bp b/tests/hostside/Android.bp
index bfe215d..d8c9871 100644
--- a/tests/hostside/Android.bp
+++ b/tests/hostside/Android.bp
@@ -12,6 +12,11 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+kernel_version = "5.4"
+
+kernel_target_stem = ":kernel_prebuilts-" + kernel_version
+vendor_ramdisk_target_stem = ":cf_prebuilts_initramfs-" + kernel_version
+
// Ramdisk containing /init and test binaries/resources needed inside guest.
genrule {
name: "virt_hostside_tests_initramfs_base",
@@ -28,3 +33,27 @@
"$(genDir)/root/init " +
"&& $(location mkbootfs) $(genDir)/root | $(location lz4) -fq - $(out)",
}
+
+// Default rule for producing a combined base + vendor ramdisk.
+genrule_defaults {
+ name: "virt_hostside_tests_initramfs_concat",
+ srcs: [":virt_hostside_tests_initramfs_base"],
+ tools: ["lz4"],
+ cmd: "cat $(in) | $(location lz4) -dfq - $(out)",
+}
+
+// Combined base + vendor ramdisk for arm64.
+genrule {
+ name: "virt_hostside_tests_initramfs-arm64",
+ defaults: ["virt_hostside_tests_initramfs_concat"],
+ srcs: [vendor_ramdisk_target_stem + "-arm64"],
+ out: ["virt_hostside_tests_initramfs-arm64"],
+}
+
+// Combined base + vendor ramdisk for x86_64.
+genrule {
+ name: "virt_hostside_tests_initramfs-x86_64",
+ defaults: ["virt_hostside_tests_initramfs_concat"],
+ srcs: [vendor_ramdisk_target_stem + "-x86_64"],
+ out: ["virt_hostside_tests_initramfs-x86_64"],
+}