kraft build uses aarch64-linux-gnu-gcc, which in turn calls the x86_64 assembler, resulting in a build error. At first, I was thinking about replacing the current arm64 toolchain with the linaro one (as mentioned in a previous comment). Finally, I managed to solve this by adding a missing directory (aarch64-linux-gnu) to the final kraft container. This way, we don't need to add linaro anymore.
In order for this to work fine, I think we should also update the unikraft/gcc:9.2.0-arm64-staging image from docker hub[1].
kraft run is always trying to enable hardware acceleration, even if the host architecture is different from the emulated one. This generates errors when trying to emulate ARM64 images on x86 hosts. The problem can be easily solved by checking the architecture in kvm.py and generating the right qemu command.
This PR comes to solve issue https://github.com/unikraft/kraft/issues/57. There are two problems with kraft on ARM64, solved by two different commits:
kraft build
usesaarch64-linux-gnu-gcc
, which in turn calls the x86_64 assembler, resulting in a build error. At first, I was thinking about replacing the current arm64 toolchain with the linaro one (as mentioned in a previous comment). Finally, I managed to solve this by adding a missing directory (aarch64-linux-gnu
) to the final kraft container. This way, we don't need to add linaro anymore. In order for this to work fine, I think we should also update theunikraft/gcc:9.2.0-arm64-staging
image from docker hub[1].kraft run
is always trying to enable hardware acceleration, even if the host architecture is different from the emulated one. This generates errors when trying to emulate ARM64 images on x86 hosts. The problem can be easily solved by checking the architecture inkvm.py
and generating the right qemu command.[1]https://hub.docker.com/layers/unikraft/gcc/9.2.0-arm64/images/sha256-3fd1ce6b6f7acb9e259212bf922b8b2090f10cf0e93621f94f04c51a92a5835e?context=explore
Signed-off-by: Răzvan Vîrtan virtanrazvan@gmail.com