diff options
author | Pierre Labatut <plabatut@google.com> | 2023-10-30 19:19:24 +0100 |
---|---|---|
committer | Pierre Labatut <plabatut@google.com> | 2023-11-02 10:56:33 +0100 |
commit | e677fdd856251f1380c055231dffff7e01155002 (patch) | |
tree | b1edc2c533e5ca0f53be8730fc6e873039c543ef | |
parent | 34ee9eeac33e6bc31a0cd20d2ae2b945295cad43 (diff) | |
download | cuttlefish_vmm-e677fdd856251f1380c055231dffff7e01155002.tar.gz |
Add qemu8 to host package.
Bug: b/296286524
Change-Id: Ic155910a76eb3e389637d18a64cd30d7376fb664
-rw-r--r-- | Android.bp | 67 | ||||
-rwxr-xr-x | gen_android_bp.sh | 67 |
2 files changed, 134 insertions, 0 deletions
@@ -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})" |