Skip to content

Add armv8-aarch64 mkenvimage#2

Open
whoismissing wants to merge 1 commit intopolaco1782:masterfrom
whoismissing:add-aarch64-mkenvimage
Open

Add armv8-aarch64 mkenvimage#2
whoismissing wants to merge 1 commit intopolaco1782:masterfrom
whoismissing:add-aarch64-mkenvimage

Conversation

@whoismissing
Copy link

The cvd-host.tar.gz tools for various revisions of the Android Open Source Platform (AOSP) android-12.1.0_r* only provides an x86-64 version of mkenvimage for the Cuttlefish emulator even for aarch64 builds when cross-compiling on an x86-64 host.

$ file ./device/google/cuttlefish_prebuilts/uboot_tools/mkenvimage
./device/google/cuttlefish_prebuilts/uboot_tools/mkenvimage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, not stripped

This can be remediated by statically compiling mkenvimage for aarch64 and providing it to the cvd-host.tar.gz package.

The binary was statically compiled for source commit version commit 7b79f5b573949b55c0c794ee971a57849ad6ec1c (HEAD, m/u-boot-mainline, aosp/u-boot-mainline) using the aarch64-linux-gnu-gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0 compiler.

After following the normal build instructions to create the object files, run the following command to link the objects together for mkenvimage to build a static binary:

$ cd u-boot/tools/
$ aarch64-linux-gnu-gcc -static -o mkenvimage-static mkenvimage.o generated/lib/crc32.o
$ file mkenvimage-static        
mkenvimage-static: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=6c5444b49484490d1f050bf4a60f2dfe8a5a407c, for GNU/Linux 3.7.0, not stripped

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant