[Buildroot] [git commit] package/qemu: fix specifying custom target sub-set

Peter Korsgaard peter at korsgaard.com
Sat Nov 8 16:32:27 UTC 2014

commit: http://git.buildroot.net/buildroot/commit/?id=78c0bbacdf0e7ff9b86fd12e8b7ddfcfc4277af5
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master

The logic was wrong.

Even though it was working for previous versions of QEMU, it changed in
later versions, and thus now breaks on the version we currently package.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Signed-off-by: Peter Korsgaard <peter at korsgaard.com>
 package/qemu/qemu.mk |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 8182697..fe65a87 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -99,6 +99,18 @@ QEMU_VARS = \
 	PYTHON=$(HOST_DIR)/usr/bin/python2 \
+# If we want to specify only a subset of targets, we must still enable all
+# of them, so that QEMU properly builds its list of default targets, from
+# which it then checks if the specified sub-set is valid. That's what we
+# do in the first part of the if-clause.
+# Otherwise, if we do not want to pass a sub-set of targets, we then need
+# to either enable or disable -user and/or -system emulation appropriately.
+# That's what we do in the else-clause.
+ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),)
+QEMU_OPTS += --enable-system --enable-linux-user
+QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))"
 QEMU_OPTS += --enable-system
@@ -111,8 +123,6 @@ else
 QEMU_OPTS += --disable-linux-user
-ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),)
-QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))"
 ifeq ($(BR2_PACKAGE_QEMU_SDL),y)

More information about the buildroot mailing list