qemu: upgrade to 1.3.0

remove-hardcoded-libexec.patch: removed
    - included in the new version

qemu-vmware-vga-depth.patch: removed
    - doesn't apply anymore
    - the problem addressed by the patch is fixed by
reverting commit 1f202568e0553b416483e5993f1bde219c22cf72

Revert-vmware_vga-Add-back-some-info-in-local-state-.patch:
    - VMware VGA requires that the depth presented to the guest
to be the same as the Display Surface depth in order to do not
corrupt the display
    - do not cache the DS depth (the depth might change)
    - revert commit 1f202568

- QEMU now uses pixman (DEPENDS += "pixman")
- rearrange the recipe in order to mimic the bitbake flow
- update both variants (.tar.bz2, git)

(From OE-Core rev: 7622c4f6c050f26f252066a0fcaacdbf340dcefa)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Constantin Musca 2012-12-10 10:08:13 +02:00 committed by Richard Purdie
parent 24b4976a42
commit 505f88fd3e
23 changed files with 178 additions and 476 deletions

View File

@ -0,0 +1,114 @@
From 2cf7df441ce4c36525ba4d2d040f8cb0b0c75f14 Mon Sep 17 00:00:00 2001
From: Constantin Musca <constantinx.musca@intel.com>
Date: Fri, 7 Dec 2012 12:33:42 +0200
Subject: [PATCH] Revert "vmware_vga: Add back some info in local state
partially reverting aa32b38c"
- this reverts commit 1f202568e0553b416483e5993f1bde219c22cf72
- do not cache the DS depth (the depth might change)
Upstream-Status: Pending
Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
---
hw/vmware_vga.c | 30 +++++++++---------------------
1 file changed, 9 insertions(+), 21 deletions(-)
diff --git a/hw/vmware_vga.c b/hw/vmware_vga.c
index 834588d..7c766fb 100644
--- a/hw/vmware_vga.c
+++ b/hw/vmware_vga.c
@@ -39,8 +39,6 @@ struct vmsvga_state_s {
VGACommonState vga;
int invalidated;
- int depth;
- int bypp;
int enable;
int config;
struct {
@@ -57,9 +55,6 @@ struct vmsvga_state_s {
int new_height;
uint32_t guest;
uint32_t svgaid;
- uint32_t wred;
- uint32_t wgreen;
- uint32_t wblue;
int syncing;
MemoryRegion fifo_ram;
@@ -723,25 +718,25 @@ static uint32_t vmsvga_value_read(void *opaque, uint32_t address)
return SVGA_MAX_HEIGHT;
case SVGA_REG_DEPTH:
- return s->depth;
+ return ds_get_depth(s->vga.ds);
case SVGA_REG_BITS_PER_PIXEL:
- return (s->depth + 7) & ~7;
+ return ds_get_bits_per_pixel(s->vga.ds);
case SVGA_REG_PSEUDOCOLOR:
return 0x0;
case SVGA_REG_RED_MASK:
- return s->wred;
+ return ds_get_rmask(s->vga.ds);
case SVGA_REG_GREEN_MASK:
- return s->wgreen;
+ return ds_get_gmask(s->vga.ds);
case SVGA_REG_BLUE_MASK:
- return s->wblue;
+ return ds_get_bmask(s->vga.ds);
case SVGA_REG_BYTES_PER_LINE:
- return s->bypp * s->new_width;
+ return ds_get_bytes_per_pixel(s->vga.ds) * s->new_width;
case SVGA_REG_FB_START: {
struct pci_vmsvga_state_s *pci_vmsvga
@@ -806,7 +801,7 @@ static uint32_t vmsvga_value_read(void *opaque, uint32_t address)
return s->cursor.on;
case SVGA_REG_HOST_BITS_PER_PIXEL:
- return (s->depth + 7) & ~7;
+ return ds_get_bits_per_pixel(s->vga.ds);
case SVGA_REG_SCRATCH_SIZE:
return s->scratch_size;
@@ -869,7 +864,7 @@ static void vmsvga_value_write(void *opaque, uint32_t address, uint32_t value)
break;
case SVGA_REG_BITS_PER_PIXEL:
- if (value != s->depth) {
+ if (value != ds_get_bits_per_pixel(s->vga.ds)) {
printf("%s: Bad bits per pixel: %i bits\n", __func__, value);
s->config = 0;
}
@@ -1089,7 +1084,7 @@ static const VMStateDescription vmstate_vmware_vga_internal = {
.minimum_version_id_old = 0,
.post_load = vmsvga_post_load,
.fields = (VMStateField[]) {
- VMSTATE_INT32_EQUAL(depth, struct vmsvga_state_s),
+ VMSTATE_UNUSED(4), /* was depth */
VMSTATE_INT32(enable, struct vmsvga_state_s),
VMSTATE_INT32(config, struct vmsvga_state_s),
VMSTATE_INT32(cursor.id, struct vmsvga_state_s),
@@ -1142,13 +1137,6 @@ static void vmsvga_init(struct vmsvga_state_s *s,
vga_common_init(&s->vga);
vga_init(&s->vga, address_space, io, true);
vmstate_register(NULL, 0, &vmstate_vga_common, &s->vga);
- /* Save some values here in case they are changed later.
- * This is suspicious and needs more though why it is needed. */
- s->depth = ds_get_bits_per_pixel(s->vga.ds);
- s->bypp = ds_get_bytes_per_pixel(s->vga.ds);
- s->wred = ds_get_rmask(s->vga.ds);
- s->wgreen = ds_get_gmask(s->vga.ds);
- s->wblue = ds_get_bmask(s->vga.ds);
}
static uint64_t vmsvga_io_read(void *opaque, hwaddr addr, unsigned size)
--
1.7.11.7

View File

@ -1,106 +0,0 @@
# fix VMware VGA driver depth calculation error, which may cause segmentation fault
#
# ktian1, 06/29/2010
Upstream-Status: Pending
Index: qemu-1.2.0/console.h
===================================================================
--- qemu-1.2.0.orig/console.h 2012-09-06 14:12:23.371832381 -0700
+++ qemu-1.2.0/console.h 2012-09-06 14:12:23.627832390 -0700
@@ -171,6 +171,12 @@
void (*free_displaysurface)(DisplaySurface *surface);
};
+struct DisplayPostCallback {
+ void (*postcall) (void *);
+ void *parm;
+ struct DisplayPostCallback *next;
+};
+
struct DisplayState {
struct DisplaySurface *surface;
void *opaque;
@@ -178,6 +184,7 @@
struct DisplayAllocator* allocator;
struct DisplayChangeListener* listeners;
+ struct DisplayPostCallback* postcalls;
void (*mouse_set)(int x, int y, int on);
void (*cursor_define)(QEMUCursor *cursor);
@@ -233,6 +240,12 @@
ds->listeners = dcl;
}
+static inline void register_displaypostcallback(DisplayState *ds, DisplayPostCallback *dpc)
+{
+ dpc->next = ds->postcalls;
+ ds->postcalls = dpc;
+}
+
static inline void dpy_update(DisplayState *s, int x, int y, int w, int h)
{
struct DisplayChangeListener *dcl = s->listeners;
Index: qemu-1.2.0/hw/vmware_vga.c
===================================================================
--- qemu-1.2.0.orig/hw/vmware_vga.c 2012-09-06 14:12:23.371832381 -0700
+++ qemu-1.2.0/hw/vmware_vga.c 2012-09-06 14:18:05.595845288 -0700
@@ -1081,6 +1081,8 @@
static void vmsvga_init(struct vmsvga_state_s *s,
MemoryRegion *address_space, MemoryRegion *io)
{
+ DisplayPostCallback *dpc;
+
s->scratch_size = SVGA_SCRATCH_SIZE;
s->scratch = g_malloc(s->scratch_size * 4);
@@ -1098,6 +1100,10 @@
vga_common_init(&s->vga);
vga_init(&s->vga, address_space, io, true);
vmstate_register(NULL, 0, &vmstate_vga_common, &s->vga);
+ dpc = g_malloc0(sizeof(DisplayPostCallback));
+ dpc->postcall = vmsvga_reset;
+ dpc->parm = s;
+ register_displaypostcallback(s->vga.ds, dpc);
s->depth = ds_get_bits_per_pixel(s->vga.ds);
s->bypp = ds_get_bytes_per_pixel(s->vga.ds);
Index: qemu-1.2.0/qemu-common.h
===================================================================
--- qemu-1.2.0.orig/qemu-common.h 2012-09-06 14:12:23.371832381 -0700
+++ qemu-1.2.0/qemu-common.h 2012-09-06 14:12:23.643832391 -0700
@@ -250,6 +250,7 @@
typedef struct DisplayChangeListener DisplayChangeListener;
typedef struct DisplaySurface DisplaySurface;
typedef struct DisplayAllocator DisplayAllocator;
+typedef struct DisplayPostCallback DisplayPostCallback;
typedef struct PixelFormat PixelFormat;
typedef struct TextConsole TextConsole;
typedef TextConsole QEMUConsole;
Index: qemu-1.2.0/vl.c
===================================================================
--- qemu-1.2.0.orig/vl.c 2012-09-06 14:12:23.371832381 -0700
+++ qemu-1.2.0/vl.c 2012-09-06 14:17:32.635844142 -0700
@@ -2352,6 +2352,7 @@
char boot_devices[33] = "cad"; /* default to HD->floppy->CD-ROM */
DisplayState *ds;
DisplayChangeListener *dcl;
+ DisplayPostCallback *dpc;
int cyls, heads, secs, translation;
QemuOpts *hda_opts = NULL, *opts, *machine_opts;
QemuOptsList *olist;
@@ -3699,6 +3700,13 @@
/* display setup */
dpy_resize(ds);
+ dpc = ds->postcalls;
+ while (dpc != NULL) {
+ if (dpc->postcall != NULL)
+ dpc->postcall(dpc->parm);
+ dpc = dpc->next;
+ }
+
dcl = ds->listeners;
while (dcl != NULL) {
if (dcl->dpy_refresh != NULL) {

View File

@ -1,41 +0,0 @@
This will allow the libexecdir to be set on the command line
and have the files installed and used from the correct location
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Index: qemu-1.2.0/configure
===================================================================
--- qemu-1.2.0.orig/configure
+++ qemu-1.2.0/configure
@@ -183,6 +183,7 @@ datadir="\${prefix}/share"
qemu_docdir="\${prefix}/share/doc/qemu"
bindir="\${prefix}/bin"
libdir="\${prefix}/lib"
+libexecdir="\${prefix}/libexec"
includedir="\${prefix}/include"
sysconfdir="\${prefix}/etc"
confsuffix="/qemu"
@@ -644,7 +645,9 @@ for opt do
;;
--sysconfdir=*) sysconfdir="$optarg"
;;
- --sbindir=*|--libexecdir=*|--sharedstatedir=*|--localstatedir=*|\
+ --libexecdir=*) libexecdir="$optarg"
+ ;;
+ --sbindir=*|--sharedstatedir=*|--localstatedir=*|\
--oldincludedir=*|--datarootdir=*|--infodir=*|--localedir=*|\
--htmldir=*|--dvidir=*|--pdfdir=*|--psdir=*)
# These switches are silently ignored, for compatibility with
@@ -3190,8 +3193,8 @@ echo "sysconfdir=$sysconfdir" >> $config
echo "qemu_confdir=$qemu_confdir" >> $config_host_mak
echo "qemu_datadir=$qemu_datadir" >> $config_host_mak
echo "qemu_docdir=$qemu_docdir" >> $config_host_mak
-echo "libexecdir=\${prefix}/libexec" >> $config_host_mak
-echo "CONFIG_QEMU_HELPERDIR=\"$prefix/libexec\"" >> $config_host_mak
+echo "libexecdir=$libexecdir" >> $config_host_mak
+echo "CONFIG_QEMU_HELPERDIR=\"$libexecdir\"" >> $config_host_mak
echo "ARCH=$ARCH" >> $config_host_mak
if test "$debug_tcg" = "yes" ; then

View File

@ -1,55 +0,0 @@
Enable i386-linux-user
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Upstream-Status: Inappropriate [configuration]
Index: qemu-0.14.0/Makefile.target
===================================================================
--- qemu-0.14.0.orig/Makefile.target
+++ qemu-0.14.0/Makefile.target
@@ -78,8 +78,13 @@ ifeq ($(TARGET_BASE_ARCH), i386)
libobj-y += cpuid.o
endif
libobj-$(CONFIG_NEED_MMU) += mmu.o
+ifndef CONFIG_LINUX_USER
libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o
libobj-$(TARGET_X86_64) += helper_opengl.o opengl_exec.o
+else
+libobj-$(TARGET_I386) += dummygl.o
+libobj-$(TARGET_X86_64) += dummygl.o
+endif #CONFIG_LINUX_USER
libobj-$(TARGET_ARM) += dummygl.o
libobj-$(TARGET_MIPS) += dummygl.o
libobj-$(TARGET_PPC) += dummygl.o
Index: qemu-0.14.0/target-i386/dummygl.c
===================================================================
--- /dev/null
+++ qemu-0.14.0/target-i386/dummygl.c
@@ -0,0 +1,26 @@
+#include <string.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <stdint.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+void opengl_exec_set_parent_window(Display* _dpy, Window _parent_window)
+{
+
+}
+
+void opengl_process_enable(void)
+{
+
+}
+
+
+void mem_opengl(uint64_t ptr)
+{
+
+}
+
+void helper_opengl(void)
+{
+}

View File

@ -1,25 +0,0 @@
Fedora 13 switched the default behaviour of the linker to no longer
indirectly link to required libraries (i.e. dependencies of a library
already linked to). Therefore we need to explicitly pass the depended on
libraries into the linker for building to work on Fedora 13.
More information is available on the Fedora Wiki:
https://fedoraproject.org/wiki/UnderstandingDSOLinkChange
JL - 15/06/10
Upstream-Status: Inappropriate [configuration]
Index: qemu-0.14.0/Makefile.target
===================================================================
--- qemu-0.14.0.orig/Makefile.target
+++ qemu-0.14.0/Makefile.target
@@ -218,7 +218,7 @@ obj-$(CONFIG_REALLY_VIRTFS) += virtio-9p
obj-y += rwhandler.o
obj-$(CONFIG_KVM) += kvm.o kvm-all.o
obj-$(CONFIG_NO_KVM) += kvm-stub.o
-LIBS+=-lz
+LIBS+=-lz -lX11 -ldl
QEMU_CFLAGS += $(VNC_TLS_CFLAGS)
QEMU_CFLAGS += $(VNC_SASL_CFLAGS)

View File

@ -1,15 +0,0 @@
Upstream-Status: Inappropriate [configuration]
Index: qemu-0.14.0/Makefile
===================================================================
--- qemu-0.14.0.orig/Makefile
+++ qemu-0.14.0/Makefile
@@ -235,7 +235,7 @@ install-sysconfig:
install: all $(if $(BUILD_DOCS),install-doc) install-sysconfig
$(INSTALL_DIR) "$(DESTDIR)$(bindir)"
ifneq ($(TOOLS),)
- $(INSTALL_PROG) $(STRIP_OPT) $(TOOLS) "$(DESTDIR)$(bindir)"
+ $(INSTALL_PROG) $(TOOLS) "$(DESTDIR)$(bindir)"
endif
ifneq ($(BLOBS),)
$(INSTALL_DIR) "$(DESTDIR)$(datadir)"

View File

@ -1,118 +0,0 @@
# fix VMware VGA driver depth calculation error, which may cause segmentation fault
#
# ktian1, 06/29/2010
Upstream-Status: Pending
Index: qemu-0.14.0/console.h
===================================================================
--- qemu-0.14.0.orig/console.h
+++ qemu-0.14.0/console.h
@@ -171,6 +171,12 @@ struct DisplayAllocator {
void (*free_displaysurface)(DisplaySurface *surface);
};
+struct DisplayPostCallback {
+ void (*postcall) (void *);
+ void *parm;
+ struct DisplayPostCallback *next;
+};
+
struct DisplayState {
struct DisplaySurface *surface;
void *opaque;
@@ -178,6 +184,7 @@ struct DisplayState {
struct DisplayAllocator* allocator;
struct DisplayChangeListener* listeners;
+ struct DisplayPostCallback* postcalls;
void (*mouse_set)(int x, int y, int on);
void (*cursor_define)(QEMUCursor *cursor);
@@ -229,6 +236,12 @@ static inline void register_displaychang
ds->listeners = dcl;
}
+static inline void register_displaypostcallback(DisplayState *ds, DisplayPostCallback *dpc)
+{
+ dpc->next = ds->postcalls;
+ ds->postcalls = dpc;
+}
+
static inline void dpy_update(DisplayState *s, int x, int y, int w, int h)
{
struct DisplayChangeListener *dcl = s->listeners;
Index: qemu-0.14.0/hw/vmware_vga.c
===================================================================
--- qemu-0.14.0.orig/hw/vmware_vga.c
+++ qemu-0.14.0/hw/vmware_vga.c
@@ -1001,8 +1001,9 @@ static void vmsvga_update_display(void *
}
}
-static void vmsvga_reset(struct vmsvga_state_s *s)
+static void vmsvga_reset(void *parm)
{
+ struct vmsvga_state_s *s = (struct vmsvga_state_s *)parm;
s->index = 0;
s->enable = 0;
s->config = 0;
@@ -1207,6 +1208,8 @@ static const VMStateDescription vmstate_
static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size)
{
+ DisplayPostCallback *dpc;
+
s->scratch_size = SVGA_SCRATCH_SIZE;
s->scratch = qemu_malloc(s->scratch_size * 4);
@@ -1224,7 +1227,10 @@ static void vmsvga_init(struct vmsvga_st
vga_init(&s->vga);
vmstate_register(NULL, 0, &vmstate_vga_common, &s->vga);
- vmsvga_reset(s);
+ dpc = qemu_mallocz(sizeof(DisplayPostCallback));
+ dpc->postcall = vmsvga_reset;
+ dpc->parm = s;
+ register_displaypostcallback(s->vga.ds, dpc);
}
static void pci_vmsvga_map_ioport(PCIDevice *pci_dev, int region_num,
Index: qemu-0.14.0/qemu-common.h
===================================================================
--- qemu-0.14.0.orig/qemu-common.h
+++ qemu-0.14.0/qemu-common.h
@@ -241,6 +241,7 @@ typedef struct DisplayState DisplayState
typedef struct DisplayChangeListener DisplayChangeListener;
typedef struct DisplaySurface DisplaySurface;
typedef struct DisplayAllocator DisplayAllocator;
+typedef struct DisplayPostCallback DisplayPostCallback;
typedef struct PixelFormat PixelFormat;
typedef struct TextConsole TextConsole;
typedef TextConsole QEMUConsole;
Index: qemu-0.14.0/vl.c
===================================================================
--- qemu-0.14.0.orig/vl.c
+++ qemu-0.14.0/vl.c
@@ -1920,6 +1920,7 @@ int main(int argc, char **argv, char **e
char boot_devices[33] = "cad"; /* default to HD->floppy->CD-ROM */
DisplayState *ds;
DisplayChangeListener *dcl;
+ DisplayPostCallback *dpc;
int cyls, heads, secs, translation;
QemuOpts *hda_opts = NULL, *opts;
QemuOptsList *olist;
@@ -3101,6 +3102,13 @@ int main(int argc, char **argv, char **e
/* display setup */
dpy_resize(ds);
+ dpc = ds->postcalls;
+ while (dpc != NULL) {
+ if (dpc->postcall != NULL)
+ dpc->postcall(dpc->parm);
+ dpc = dpc->next;
+ }
+
dcl = ds->listeners;
while (dcl != NULL) {
if (dcl->dpy_refresh != NULL) {

View File

@ -1,41 +0,0 @@
This will allow the libexecdir to be set on the command line
and have the files installed and used from the correct location
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Index: qemu-1.2.0/configure
===================================================================
--- qemu-1.2.0.orig/configure
+++ qemu-1.2.0/configure
@@ -183,6 +183,7 @@ datadir="\${prefix}/share"
qemu_docdir="\${prefix}/share/doc/qemu"
bindir="\${prefix}/bin"
libdir="\${prefix}/lib"
+libexecdir="\${prefix}/libexec"
includedir="\${prefix}/include"
sysconfdir="\${prefix}/etc"
confsuffix="/qemu"
@@ -644,7 +645,9 @@ for opt do
;;
--sysconfdir=*) sysconfdir="$optarg"
;;
- --sbindir=*|--libexecdir=*|--sharedstatedir=*|--localstatedir=*|\
+ --libexecdir=*) libexecdir="$optarg"
+ ;;
+ --sbindir=*|--sharedstatedir=*|--localstatedir=*|\
--oldincludedir=*|--datarootdir=*|--infodir=*|--localedir=*|\
--htmldir=*|--dvidir=*|--pdfdir=*|--psdir=*)
# These switches are silently ignored, for compatibility with
@@ -3190,8 +3193,8 @@ echo "sysconfdir=$sysconfdir" >> $config
echo "qemu_confdir=$qemu_confdir" >> $config_host_mak
echo "qemu_datadir=$qemu_datadir" >> $config_host_mak
echo "qemu_docdir=$qemu_docdir" >> $config_host_mak
-echo "libexecdir=\${prefix}/libexec" >> $config_host_mak
-echo "CONFIG_QEMU_HELPERDIR=\"$prefix/libexec\"" >> $config_host_mak
+echo "libexecdir=$libexecdir" >> $config_host_mak
+echo "CONFIG_QEMU_HELPERDIR=$libexecdir" >> $config_host_mak
echo "ARCH=$ARCH" >> $config_host_mak
if test "$debug_tcg" = "yes" ; then

View File

@ -1,23 +1,54 @@
DESCRIPTION = "open source processor emulator"
HOMEPAGE = "http://qemu.org"
LICENSE = "GPLv2 & LGPLv2.1"
DEPENDS = "glib-2.0 zlib alsa-lib virtual/libx11"
DEPENDS = "glib-2.0 zlib alsa-lib virtual/libx11 pixman"
DEPENDS_class-native = "zlib-native alsa-lib-native glib-2.0-native pixman-native"
DEPENDS_class-nativesdk = "nativesdk-zlib nativesdk-libsdl nativesdk-glib-2.0 nativesdk-pixman"
RDEPENDS_class-nativesdk = "nativesdk-libsdl"
require qemu-targets.inc
inherit autotools
BBCLASSEXTEND = "native nativesdk"
# QEMU_TARGETS is overridable variable
QEMU_TARGETS ?= "arm i386 mips mipsel mips64 mips64el ppc sh4 x86_64"
require qemu-targets.inc
SDL ?= "--disable-sdl"
SDL_class-native ?= ""
SDL_class-nativesdk ?= ""
EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls --audio-drv-list=oss,alsa --audio-card-list=ac97,es1370 ${SDL} --disable-curl --disable-vnc-jpeg --disable-bluez"
SRC_URI = "\
file://powerpc_rom.bin \
file://no-strip.patch \
file://linker-flags.patch \
file://fix-configure-checks.patch \
file://fallback-to-safe-mmap_min_addr.patch \
file://larger_default_ram_size.patch \
file://arm-bgr.patch \
file://Revert-vmware_vga-Add-back-some-info-in-local-state-.patch \
"
#EXTRA_OECONF += "--disable-sdl"
SRC_URI_append_class-nativesdk = "\
file://relocatable_sdk.patch \
"
EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls --audio-drv-list=oss,alsa --audio-card-list=ac97,es1370 ${SDL} --disable-curl --disable-vnc-jpeg --disable-bluez --with-system-pixman"
inherit autotools
EXTRA_OECONF_class-nativesdk = "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls \
--disable-curl \
"
do_configure_prepend_class-native() {
# Undo the -lX11 added by linker-flags.patch, don't assume that host has libX11 installed
sed -i 's/-lX11//g' Makefile.target
}
do_configure_prepend_class-nativesdk() {
if [ "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" = "" ] ; then
# Undo the -lX11 added by linker-flags.patch
sed -i 's/-lX11//g' Makefile.target
fi
}
do_configure() {
# Handle distros such as CentOS 5 32-bit that do not have kvm support
@ -38,17 +69,22 @@ do_install () {
install -m 0755 ${WORKDIR}/powerpc_rom.bin ${D}${datadir}/qemu
}
# The following fragment will create a wrapper for qemu-mips user emulation
# binary in order to work around a segmentation fault issue. Basically, by
# default, the reserved virtual address space for 32-on-64 bit is set to 4GB.
# This will trigger a MMU access fault in the virtual CPU. With this change,
# the qemu-mips works fine.
# IMPORTANT: This piece needs to be removed once the root cause is fixed!
do_install_append() {
if [ -e "${D}/${bindir}/qemu-mips" ]; then
create_wrapper ${D}/${bindir}/qemu-mips \
QEMU_RESERVED_VA=0x0
fi
}
# END of qemu-mips workaround
PACKAGECONFIG ??= ""
DEPENDS_class-native = "zlib-native alsa-lib-native glib-2.0-native"
DEPENDS_class-nativesdk = "nativesdk-zlib nativesdk-libsdl nativesdk-glib-2.0"
RDEPENDS_class-nativesdk = "nativesdk-libsdl"
EXTRA_OECONF_class-nativesdk = "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls \
--disable-curl \
"
BBCLASSEXTEND = "native nativesdk"
# Qemu target will not build in world build for ARM or Mips
BROKEN_qemuarm = "1"
BROKEN_qemumips = "1"

View File

@ -1,52 +0,0 @@
require qemu.inc
LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
SRC_URI = "\
http://wiki.qemu.org/download/qemu-${PV}.tar.bz2 \
file://powerpc_rom.bin \
file://no-strip.patch \
file://linker-flags.patch \
file://qemu-vmware-vga-depth.patch \
file://fix-configure-checks.patch \
file://fallback-to-safe-mmap_min_addr.patch \
file://larger_default_ram_size.patch \
file://arm-bgr.patch \
file://remove-hardcoded-libexec.patch \
"
SRC_URI[md5sum] = "78eb1e984f4532aa9f2bdd3c127b5b61"
SRC_URI[sha256sum] = "c8b84420d9f4869397f84cad2dabd9a475b7723d619a924a873740353e9df936"
PR = "r4"
SRC_URI_append_class-nativesdk = "\
file://relocatable_sdk.patch \
"
do_configure_prepend_class-nativesdk() {
if [ "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" = "" ] ; then
# Undo the -lX11 added by linker-flags.patch
sed -i 's/-lX11//g' Makefile.target
fi
}
# The following fragment will create a wrapper for qemu-mips user emulation
# binary in order to work around a segmentation fault issue. Basically, by
# default, the reserved virtual address space for 32-on-64 bit is set to 4GB.
# This will trigger a MMU access fault in the virtual CPU. With this change,
# the qemu-mips works fine.
# IMPORTANT: This piece needs to be removed once the root cause is fixed!
do_install_append() {
if [ -e "${D}/${bindir}/qemu-mips" ]; then
create_wrapper ${D}/${bindir}/qemu-mips \
QEMU_RESERVED_VA=0x0
fi
}
# END of qemu-mips workaround
do_configure_prepend_class-native() {
# Undo the -lX11 added by linker-flags.patch, don't assume that host has libX11 installed
sed -i 's/-lX11//g' Makefile.target
}

View File

@ -0,0 +1,10 @@
require qemu.inc
LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
SRC_URI_prepend = "http://wiki.qemu.org/download/qemu-${PV}.tar.bz2"
SRC_URI[md5sum] = "a4030ddd2ba324152a97d65d3c0b247d"
SRC_URI[sha256sum] = "878055ec05bc28fecfe2da97eb8bc992e8635575b67cebdfc5ca1ede171140a8"
PR = "r0"

View File

@ -1,19 +1,14 @@
require qemu.inc
SRCREV = "6e4c0d1f03d6ab407509c32fab7cb4b8230f57ff"
SRCREV = "6d6c9f59ca1b1a76ade7ad868bef191818f58819"
LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
PV = "1.2+git"
PV = "1.3.0+git${SRCPV}"
PR = "r0"
FILESPATH = "${FILE_DIRNAME}/qemu-${PV}/:${FILE_DIRNAME}/qemu-git/"
SRC_URI = "\
git://git.qemu.org/qemu.git;protocol=git \
file://powerpc_rom.bin \
"
SRC_URI_prepend = "git://git.qemu.org/qemu.git;protocol=git"
S = "${WORKDIR}/git"
DEFAULT_PREFERENCE = "-1"