aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Labatut <plabatut@google.com>2023-10-30 19:19:24 +0100
committerPierre Labatut <plabatut@google.com>2023-11-02 10:56:33 +0100
commite677fdd856251f1380c055231dffff7e01155002 (patch)
treeb1edc2c533e5ca0f53be8730fc6e873039c543ef
parent34ee9eeac33e6bc31a0cd20d2ae2b945295cad43 (diff)
downloadcuttlefish_vmm-e677fdd856251f1380c055231dffff7e01155002.tar.gz
Add qemu8 to host package.
Bug: b/296286524 Change-Id: Ic155910a76eb3e389637d18a64cd30d7376fb664
-rw-r--r--Android.bp67
-rwxr-xr-xgen_android_bp.sh67
2 files changed, 134 insertions, 0 deletions
diff --git a/Android.bp b/Android.bp
index 9f4fbf6..fb61904 100644
--- a/Android.bp
+++ b/Android.bp
@@ -165,3 +165,70 @@ cc_prebuilt_binary {
defaults: ["cuttlefish_host"],
check_elf_files: false,
}
+cc_prebuilt_binary {
+ name: "x86_64_linux_gnu_libc++.so.1_binary_for_qemu",
+ srcs: ["qemu/x86_64-linux-gnu/bin/libc++.so.1"],
+ stem: "libc++.so.1",
+ defaults: ["cuttlefish_host"],
+ check_elf_files: false,
+}
+cc_prebuilt_binary {
+ name: "x86_64_linux_gnu_libgfxstream_backend.so.0_binary_for_qemu",
+ srcs: ["qemu/x86_64-linux-gnu/bin/libgfxstream_backend.so.0"],
+ stem: "libgfxstream_backend.so.0",
+ defaults: ["cuttlefish_host"],
+ check_elf_files: false,
+}
+cc_prebuilt_binary {
+ name: "x86_64_linux_gnu_librutabaga_gfx_ffi.so.0_binary_for_qemu",
+ srcs: ["qemu/x86_64-linux-gnu/bin/librutabaga_gfx_ffi.so.0"],
+ stem: "librutabaga_gfx_ffi.so.0",
+ defaults: ["cuttlefish_host"],
+ check_elf_files: false,
+}
+cc_prebuilt_binary {
+ name: "x86_64_linux_gnu_libz.so.1_binary_for_qemu",
+ srcs: ["qemu/x86_64-linux-gnu/bin/libz.so.1"],
+ stem: "libz.so.1",
+ defaults: ["cuttlefish_host"],
+ check_elf_files: false,
+}
+cc_prebuilt_binary {
+ name: "x86_64_linux_gnu_qemu-system-aarch64_binary_for_qemu",
+ srcs: ["qemu/x86_64-linux-gnu/bin/qemu-system-aarch64"],
+ stem: "qemu-system-aarch64",
+ defaults: ["cuttlefish_host"],
+ check_elf_files: false,
+}
+cc_prebuilt_binary {
+ name: "x86_64_linux_gnu_qemu-system-riscv64_binary_for_qemu",
+ srcs: ["qemu/x86_64-linux-gnu/bin/qemu-system-riscv64"],
+ stem: "qemu-system-riscv64",
+ defaults: ["cuttlefish_host"],
+ check_elf_files: false,
+}
+cc_prebuilt_binary {
+ name: "x86_64_linux_gnu_qemu-system-x86_64_binary_for_qemu",
+ srcs: ["qemu/x86_64-linux-gnu/bin/qemu-system-x86_64"],
+ stem: "qemu-system-x86_64",
+ defaults: ["cuttlefish_host"],
+ check_elf_files: false,
+}
+prebuilt_usr_share_host {
+ name: "x86_64_efi-virtio.rom_resource_for_qemu",
+ src: "qemu/x86_64-linux-gnu/usr/share/qemu/efi-virtio.rom",
+ filename: "efi-virtio.rom",
+ sub_dir: "qemu",
+}
+prebuilt_usr_share_host {
+ name: "x86_64_en-us_resource_for_qemu",
+ src: "qemu/x86_64-linux-gnu/usr/share/qemu/keymaps/en-us",
+ filename: "en-us",
+ sub_dir: "qemu/keymaps",
+}
+prebuilt_usr_share_host {
+ name: "x86_64_opensbi-riscv64-generic-fw_dynamic.bin_resource_for_qemu",
+ src: "qemu/x86_64-linux-gnu/usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.bin",
+ filename: "opensbi-riscv64-generic-fw_dynamic.bin",
+ sub_dir: "qemu",
+}
diff --git a/gen_android_bp.sh b/gen_android_bp.sh
index e80fd94..62ceeaf 100755
--- a/gen_android_bp.sh
+++ b/gen_android_bp.sh
@@ -10,6 +10,32 @@ readonly seccomp_archs=("x86_64" "aarch64")
# under get_arch_dir() in cuttlefish_vmm, where is seccomp?
readonly subdir="etc/seccomp"
+# Replaces the generated section with content read from stdin.
+#
+# Args:
+# path to the file to edit in place
+# tag uniquely identifying the generated section.
+# The generated content is delimited by two lines ending with
+# "Start of generated ${tag}" and "End of generated ${tag}"
+function update_generated_section {
+ local -r file="$1"
+ local -r tag="$2"
+ local -r lead="^.*Start of generated ${tag}$"
+ local -r tail="^.*End of generated ${tag}$"
+ egrep --silent "${lead}" "${file}"
+ egrep --silent "${tail}" "${file}"
+ sed -i -e "
+ /$lead/,/$tail/{
+ /$lead/{
+ p;
+ a \ // Generated by device/google/cuttlefish_vmm/gen_android_bp.sh
+ r /dev/stdin
+ };
+ /$tail/p;
+ d
+ }" "${file}"""
+}
+
function remove_trailing_slash {
if [[ $1 == "/" ]]; then
echo $i
@@ -182,14 +208,55 @@ for arch_dir in $(get_arch_dir aarch64) $(get_arch_dir x86_64); do
--check_elf_files="false" | "${comment_or_noop}"
done
done
+
+ for binary_path in qemu/x86_64-linux-gnu/bin/*.so* qemu/x86_64-linux-gnu/bin/qemu-system*; do
+ gen_module "cc_prebuilt_binary" ' ' \
+ --name="\"x86_64_linux_gnu_$(basename "${binary_path}")_binary_for_qemu\"" \
+ --srcs="[\"${binary_path}\"]" \
+ --stem="\"$(basename "${binary_path}")"\" \
+ --defaults="[\"cuttlefish_host\"]" \
+ --check_elf_files="false"
+ done
+ resource_paths=(
+ qemu/efi-virtio.rom
+ qemu/keymaps/en-us
+ qemu/opensbi-riscv64-generic-fw_dynamic.bin
+ )
+
+ for resource_path in "${resource_paths[@]}"
+ do
+ local base_name="$(basename "${resource_path}")"
+ local arch='x86_64'
+ local arch_dir="$(get_arch_dir ${arch})"
+ local sub_dir="$(dirname "${resource_path}")"
+ gen_module "prebuilt_usr_share_host" ' ' \
+ --name="\"${arch}_${base_name}_resource_for_qemu\"" \
+ --src="\"qemu/x86_64-linux-gnu/usr/share/${resource_path}\"" \
+ --filename="\"${base_name}\"" \
+ --sub_dir="\"${sub_dir}\""
+ done
}
+function generate_all_cuttlefish_host_package_android_bp() {
+ #TODO: Handle Crosvm prebuilts which are currently performed manually.
+ qemu_binaries="$(grep "_binary_for_qemu" Android.bp | sed 's/name: / /g')"
+ qemu_resources="$(grep "_resource_for_qemu" Android.bp | sed 's/name: / /g')"
+
+ local android_bp_file="../cuttlefish/build/Android.bp"
+ echo "${qemu_binaries}" | update_generated_section "${android_bp_file}" "qemu_x86_64_linux_gnu_binary"
+ echo "${qemu_resources}" | update_generated_section "${android_bp_file}" "qemu_x86_64_linux_gnu_resource"
+}
+
+
# main
# Set the current directory to the script location.
cd "$(dirname "$0")"
gen_main_android_bp > $(get_output_file .)
+generate_all_cuttlefish_host_package_android_bp
+
+
for arch in ${seccomp_archs[@]}; do
arch_dir=$(get_arch_dir ${arch})
outfile="$(get_output_file ${arch_dir})"