From patchwork Mon Dec 10 23:44:44 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yann E. MORIN" X-Patchwork-Id: 205076 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from hemlock.osuosl.org (hemlock.osuosl.org [140.211.166.133]) by ozlabs.org (Postfix) with ESMTP id 921482C0322 for ; Tue, 11 Dec 2012 10:48:39 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 32A08A01DD; Mon, 10 Dec 2012 23:48:38 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id prZ9xCacjNE4; Mon, 10 Dec 2012 23:48:29 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id ED92EA0145; Mon, 10 Dec 2012 23:47:30 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id CECFB8F74B for ; Mon, 10 Dec 2012 23:46:32 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 3085A8B10E for ; Mon, 10 Dec 2012 23:46:27 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9B18gMGshk0K for ; Mon, 10 Dec 2012 23:46:13 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wg0-f43.google.com (mail-wg0-f43.google.com [74.125.82.43]) by whitealder.osuosl.org (Postfix) with ESMTPS id 25AFC89B39 for ; Mon, 10 Dec 2012 23:45:44 +0000 (UTC) Received: by mail-wg0-f43.google.com with SMTP id e12so1703600wge.10 for ; Mon, 10 Dec 2012 15:45:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references; bh=xaBezb0PKJrYXNvxfO2LUMXJJ5rXvrU1Cw7nI2ThG6A=; b=o8qn6F1Ap50/N8oO49989ZZ5uw5GKRjd6g0ijaFQ1UVdgIT2dmNMf3SXCXipRr2xQ1 O2cHLSwrcOEjUq1m6HkMqm+kINh9fXyEO7TiraYo2VgSImSOeqTwRc779/eeMjEEv+Jn mJmr8uSY5390J2PkT3jCKOvwY4X5ggtv0RqXKUhyOWCwRoBpE9BHLPNE1O3yOkkp743F rBapmjKoQV43ohfE0tGTy4iU+Biuq7r79P9ZP+hjjgVscH5LVS82WgciAX6HeZ6jWMC+ UdwAuotvQX4Q7I26IOinAOtubME4/LfIAcLnvtR24MD2onU7PWmcz/cDhx/achScLwuK LURA== Received: by 10.180.92.71 with SMTP id ck7mr13665124wib.20.1355183144797; Mon, 10 Dec 2012 15:45:44 -0800 (PST) Received: from localhost.localdomain (ARennes-256-1-41-119.w90-32.abo.wanadoo.fr. [90.32.24.119]) by mx.google.com with ESMTPS id bz12sm13895257wib.5.2012.12.10.15.45.43 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 10 Dec 2012 15:45:44 -0800 (PST) From: "Yann E. MORIN" To: buildroot@busybox.net Date: Tue, 11 Dec 2012 00:44:44 +0100 Message-Id: <1355183112-10735-25-git-send-email-yann.morin.1998@free.fr> X-Mailer: git-send-email 1.7.2.5 In-Reply-To: <1355183112-10735-1-git-send-email-yann.morin.1998@free.fr> References: <1355183112-10735-1-git-send-email-yann.morin.1998@free.fr> Cc: "Yann E. MORIN" Subject: [Buildroot] [PATCH 24/52] package/qemu: build for the target (i386 or x86_64 only) X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: buildroot-bounces@busybox.net Untested for other architectures, so only enabled for known-working ones. We explicitly disable all features that depends on other packages, for now. Such features will be added one by one in the next patches. Features that do not rely on external packages are explicitly enabled to catch the dependencies on toolchain features early. Signed-off-by: "Yann E. MORIN" --- package/Config.in | 1 + package/qemu/Config.in | 25 ++++++++++++++++ package/qemu/qemu.mk | 73 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 99 insertions(+), 0 deletions(-) create mode 100644 package/qemu/Config.in diff --git a/package/Config.in b/package/Config.in index d395326..a93aed2 100644 --- a/package/Config.in +++ b/package/Config.in @@ -571,6 +571,7 @@ source "package/collectd/Config.in" source "package/empty/Config.in" source "package/googlefontdirectory/Config.in" source "package/mobile-broadband-provider-info/Config.in" +source "package/qemu/Config.in" source "package/shared-mime-info/Config.in" source "package/snowball-init/Config.in" source "package/sound-theme-borealis/Config.in" diff --git a/package/qemu/Config.in b/package/qemu/Config.in new file mode 100644 index 0000000..4b05e3d --- /dev/null +++ b/package/qemu/Config.in @@ -0,0 +1,25 @@ +comment "QEMU requires a toolchain with threads" + depends on !BR2_i386 && !BR2_x86_64 + depends on !BR2_TOOLCHAIN_HAS_THREADS + +config BR2_PACKAGE_QEMU + bool "QEMU" + depends on BR2_i386 || BR2_x86_64 + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_ZLIB + help + QEMU is a generic and open source machine emulator and virtualizer. + + When used as a machine emulator, QEMU can run OSes and programs made + for one machine (e.g. an ARM board) on a different machine (e.g. + your own PC). By using dynamic translation, it achieves very good + performance. + + When used as a virtualizer, QEMU achieves near native performances + by executing the guest code directly on the host CPU. QEMU supports + virtualization when executing under the Xen hypervisor or using the + KVM kernel module in Linux. When using KVM, QEMU can virtualize x86, + server and embedded PowerPC, and S390 guests. + + http://qemu.org/ diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk index 241a392..4c7be50 100644 --- a/package/qemu/qemu.mk +++ b/package/qemu/qemu.mk @@ -81,3 +81,76 @@ $(eval $(host-autotools-package)) # variable used by other packages QEMU_USER = $(HOST_DIR)/usr/bin/qemu-$(QEMU_ARCH) + +#------------------------------------------------------------- +# Target-qemu + +QEMU_DEPENDENCIES = host-pkgconf host-python libglib2 zlib + +# Need the LIBS variable because librt and libm are +# not automatically pulled. :-( +QEMU_LIBS = -lrt -lm + +QEMU_OPTS = + +QEMU_VARS = \ + PYTHON=$(HOST_DIR)/usr/bin/python \ + PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \ + +# Note: although QEMU uses a ./configure script, it is not compatible with +# the traditional autotools options (eg. --target et al.), so we have +# to override the default provided by the autotools-package infra, and +# provide our own. Sigh... :-/ + +define QEMU_CONFIGURE_CMDS + ( cd $(@D); \ + LIBS='$(QEMU_LIBS)' \ + $(TARGET_CONFIGURE_OPTS) \ + $(TARGET_CONFIGURE_ARGS) \ + $(QEMU_VARS) \ + ./configure \ + --prefix=/usr \ + --cross-prefix=$(TARGET_CROSS) \ + --audio-drv-list= \ + --audio-card-list= \ + --enable-kvm \ + --enable-nptl \ + --enable-attr \ + --enable-vhost-net \ + --enable-system \ + --enable-linux-user \ + --disable-bsd-user \ + --disable-xen \ + --disable-slirp \ + --disable-sdl \ + --disable-vnc \ + --disable-virtfs \ + --disable-brlapi \ + --disable-curses \ + --disable-curl \ + --disable-fdt \ + --disable-bluez \ + --disable-guest-base \ + --disable-uuid \ + --disable-vde \ + --disable-linux-aio \ + --disable-cap-ng \ + --disable-docs \ + --disable-spice \ + --disable-rbd \ + --disable-libiscsi \ + --disable-usb-redir \ + --disable-smartcard \ + --disable-strip \ + --disable-seccomp \ + --disable-sparse \ + $(QEMU_OPTS) \ + ) +endef + +# Need the LIBS_QGA because it does not 'inherit' the LIBS_TOOLS +# we set at configure time, and there is no conrresponding LIBS_QGA +# at configure time +QEMU_MAKE_ENV += LIBS_TOOLS="$(QEMU_LIBS)" LIBS_QGA="$(QEMU_LIBS)" LIBS="$(QEMU_LIBS)" + +$(eval $(autotools-package))