qemu: allow to build host variant statically

Compiling Qemu statically allows to use it to chroot into target/. It is a
nice feature, so add an option for it.

Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
[Thomas: slightly tweak Config.in help text.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Jérôme Pouiller 2016-11-09 11:03:05 +01:00 committed by Thomas Petazzoni
parent ef9e1d0e4b
commit a6afa968fc
2 changed files with 32 additions and 0 deletions

View File

@ -17,6 +17,34 @@ config BR2_PACKAGE_HOST_QEMU
if BR2_PACKAGE_HOST_QEMU if BR2_PACKAGE_HOST_QEMU
config BR2_PACKAGE_HOST_QEMU_STATIC
bool "Build statically"
help
Build qemu as a statically linked executable. Use this
option if you want to 'chroot' in your target directory. The
following steps detail how to achieve this with an ARM
target:
1. Copy the qemu binary in your target directory:
cp host/usr/bin/qemu-arm target/usr/bin
2. Make sure binfmt_misc is mounted on /proc/sys/fs/binfmt_misc:
mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
3. Register /usr/bin/qemu-arm is interpreter for arm
binaries. See linux/Documentation/binfmt_misc.txt for
more information:
MAGIC='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00'
MASK='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
echo ":qemu-arm:M:0:$MAGIC:$MASK:/usr/bin/qemu-arm:OC" > /proc/sys/fs/binfmt_misc/register
4. Chroot into your target:
chroot target /bin/sh
comment "Emulators selection" comment "Emulators selection"
config BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE config BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE

View File

@ -120,6 +120,10 @@ HOST_QEMU_OPTS += --enable-vde
HOST_QEMU_DEPENDENCIES += host-vde2 HOST_QEMU_DEPENDENCIES += host-vde2
endif endif
ifeq ($(BR2_PACKAGE_HOST_QEMU_STATIC),y)
HOST_QEMU_OPTS += --static
endif
# Override CPP, as it expects to be able to call it like it'd # Override CPP, as it expects to be able to call it like it'd
# call the compiler. # call the compiler.
define HOST_QEMU_CONFIGURE_CMDS define HOST_QEMU_CONFIGURE_CMDS