diff options
author | Constantin Musca <constantinx.musca@intel.com> | 2012-12-10 10:08:13 +0200 |
---|---|---|
committer | Saul Wold <sgw@linux.intel.com> | 2012-12-11 20:27:26 -0800 |
commit | 7622c4f6c050f26f252066a0fcaacdbf340dcefa (patch) | |
tree | fff0958e0ea5f68f440ea0977a4d16a85d08066f /meta/recipes-devtools/qemu/files | |
parent | b41e55a7ee226a0ae4efdd633cab94e1cc846525 (diff) | |
download | openembedded-core-contrib-7622c4f6c050f26f252066a0fcaacdbf340dcefa.tar.gz |
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)
Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta/recipes-devtools/qemu/files')
11 files changed, 374 insertions, 0 deletions
diff --git a/meta/recipes-devtools/qemu/files/Revert-vmware_vga-Add-back-some-info-in-local-state-.patch b/meta/recipes-devtools/qemu/files/Revert-vmware_vga-Add-back-some-info-in-local-state-.patch new file mode 100644 index 0000000000..d56256e05c --- /dev/null +++ b/meta/recipes-devtools/qemu/files/Revert-vmware_vga-Add-back-some-info-in-local-state-.patch @@ -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 + diff --git a/meta/recipes-devtools/qemu/files/arm-bgr.patch b/meta/recipes-devtools/qemu/files/arm-bgr.patch new file mode 100644 index 0000000000..f3ebde6364 --- /dev/null +++ b/meta/recipes-devtools/qemu/files/arm-bgr.patch @@ -0,0 +1,30 @@ +After kernel commit: + +http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-3.0/commit/?h=meta&id=9728c1b6a724daefc413b44e10253cdbb5e06d08 + +It appears that the emulated colours in qemu are incorrect and that +the red and blue channels are reversed. This patch reverses that logic +so the colours are correctly displayed on the versatile platform which +doesn't support the BGR bit. + +RP 16/9/2011 + +Upstream-Status: Pending + +Index: qemu-1.2.0/hw/pl110.c +=================================================================== +--- qemu-1.2.0.orig/hw/pl110.c 2012-09-06 14:07:27.619821133 -0700 ++++ qemu-1.2.0/hw/pl110.c 2012-09-06 14:12:07.699829648 -0700 +@@ -168,7 +168,11 @@ + fprintf(stderr, "pl110: Bad color depth\n"); + exit(1); + } +- if (s->cr & PL110_CR_BGR) ++ ++ if (s->version && s->bpp == BPP_16) ++ /* Code assumes BPP_16 == 565 and BGR is never set on the versatile in 565 mode */ ++ bpp_offset = 0; ++ else if (s->cr & PL110_CR_BGR) + bpp_offset = 0; + else + bpp_offset = 24; diff --git a/meta/recipes-devtools/qemu/files/enable-i386-linux-user.patch b/meta/recipes-devtools/qemu/files/enable-i386-linux-user.patch new file mode 100644 index 0000000000..bb0d6a3848 --- /dev/null +++ b/meta/recipes-devtools/qemu/files/enable-i386-linux-user.patch @@ -0,0 +1,55 @@ +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) ++{ ++} diff --git a/meta/recipes-devtools/qemu/files/fallback-to-safe-mmap_min_addr.patch b/meta/recipes-devtools/qemu/files/fallback-to-safe-mmap_min_addr.patch new file mode 100644 index 0000000000..2075386b9f --- /dev/null +++ b/meta/recipes-devtools/qemu/files/fallback-to-safe-mmap_min_addr.patch @@ -0,0 +1,39 @@ +From c313f89c33217ac0e471554dace2144718f86669 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Thu, 13 May 2010 12:23:40 +0200 +Subject: [PATCH] linux-user: use default mmap_min_addr 65536 when /proc/sys/vm/mmap_min_addr cannot be read + +* 65536 is default at least for ubuntu and fedora. +--- + linux-user/main.c | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +Upstream-Status: Pending + +Index: qemu-0.14.0/linux-user/main.c +=================================================================== +--- qemu-0.14.0.orig/linux-user/main.c ++++ qemu-0.14.0/linux-user/main.c +@@ -36,6 +36,7 @@ + #include "envlist.h" + + #define DEBUG_LOGFILE "/tmp/qemu.log" ++#define MMAP_MIN_ADDR_DEFAULT 65536 + + char *exec_path; + +@@ -3010,8 +3011,14 @@ int main(int argc, char **argv, char **e + if (fscanf(fp, "%lu", &tmp) == 1) { + mmap_min_addr = tmp; + qemu_log("host mmap_min_addr=0x%lx\n", mmap_min_addr); ++ } else { ++ qemu_log("cannot read value from /proc/sys/vm/mmap_min_addr, assuming %d\n", MMAP_MIN_ADDR_DEFAULT); ++ mmap_min_addr = MMAP_MIN_ADDR_DEFAULT; + } + fclose(fp); ++ } else { ++ qemu_log("cannot open /proc/sys/vm/mmap_min_addr for reading, assuming %d\n", MMAP_MIN_ADDR_DEFAULT); ++ mmap_min_addr = MMAP_MIN_ADDR_DEFAULT; + } + } + diff --git a/meta/recipes-devtools/qemu/files/fix-configure-checks.patch b/meta/recipes-devtools/qemu/files/fix-configure-checks.patch new file mode 100644 index 0000000000..ef77c92842 --- /dev/null +++ b/meta/recipes-devtools/qemu/files/fix-configure-checks.patch @@ -0,0 +1,22 @@ +In native builds, qemu can fail to find zlib development files in the native +sysroot and the build machine might not have zlib-dev packages installed. + +Add CFLAGS to qemu's CFLAGS which in the native case means BUILD_CFLAGS are +added and files in the sysroot can be found. + +Patch from Paul Eggleton, Comments by RP 28/11/10 + +Upstream-Status: Inappropriate [embedded specific] + +Index: qemu-1.2.0/configure +=================================================================== +--- qemu-1.2.0.orig/configure 2012-09-05 07:03:06.000000000 -0700 ++++ qemu-1.2.0/configure 2012-09-06 13:55:07.007793823 -0700 +@@ -281,6 +281,7 @@ + QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS" + QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS" + QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu" ++QEMU_CFLAGS="$QEMU_CFLAGS $CFLAGS" + if test "$debug_info" = "yes"; then + CFLAGS="-g $CFLAGS" + LDFLAGS="-g $LDFLAGS" diff --git a/meta/recipes-devtools/qemu/files/init-info.patch b/meta/recipes-devtools/qemu/files/init-info.patch new file mode 100644 index 0000000000..2250444a2b --- /dev/null +++ b/meta/recipes-devtools/qemu/files/init-info.patch @@ -0,0 +1,18 @@ +# This is a workaround to the crashes seen on Ubuntu. Setting info to zero +# makes info.info.x11.display zero and avoids the calls to +# opengl_exec_set_parent_window, one of which is crashing. + +Upstream-Status: Pending + +Index: qemu-0.14.0/ui/sdl.c +=================================================================== +--- qemu-0.14.0.orig/ui/sdl.c ++++ qemu-0.14.0/ui/sdl.c +@@ -863,6 +863,7 @@ void sdl_display_init(DisplayState *ds, + vi = SDL_GetVideoInfo(); + host_format = *(vi->vfmt); + ++ bzero(&info, sizeof(info)); + SDL_GetWMInfo(&info); + if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display) + opengl_exec_set_parent_window(info.info.x11.display, diff --git a/meta/recipes-devtools/qemu/files/larger_default_ram_size.patch b/meta/recipes-devtools/qemu/files/larger_default_ram_size.patch new file mode 100644 index 0000000000..711c36071d --- /dev/null +++ b/meta/recipes-devtools/qemu/files/larger_default_ram_size.patch @@ -0,0 +1,22 @@ +This patch is taken from debian. 128M is too less sometimes if distro +with lot of packages is booted so this patch raises the default to 384M + +It has not been applied to upstream qemu + +Khem Raj <raj.khem@gmail.com> + +Upstream-Status: Pending + +Index: qemu-0.14.0/vl.c +=================================================================== +--- qemu-0.14.0.orig/vl.c ++++ qemu-0.14.0/vl.c +@@ -168,7 +168,7 @@ int main(int argc, char **argv) + //#define DEBUG_NET + //#define DEBUG_SLIRP + +-#define DEFAULT_RAM_SIZE 128 ++#define DEFAULT_RAM_SIZE 384 + + #define MAX_VIRTIO_CONSOLES 1 + diff --git a/meta/recipes-devtools/qemu/files/linker-flags.patch b/meta/recipes-devtools/qemu/files/linker-flags.patch new file mode 100644 index 0000000000..0106ae2420 --- /dev/null +++ b/meta/recipes-devtools/qemu/files/linker-flags.patch @@ -0,0 +1,25 @@ +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-1.2.0/Makefile.target +=================================================================== +--- qemu-1.2.0.orig/Makefile.target 2012-09-05 07:03:06.000000000 -0700 ++++ qemu-1.2.0/Makefile.target 2012-09-06 13:42:24.819764288 -0700 +@@ -130,7 +130,7 @@ + obj-$(CONFIG_HAVE_CORE_DUMP) += dump.o + obj-$(CONFIG_NO_GET_MEMORY_MAPPING) += memory_mapping-stub.o + obj-$(CONFIG_NO_CORE_DUMP) += dump-stub.o +-LIBS+=-lz ++LIBS+=-lz -lX11 -ldl + + QEMU_CFLAGS += $(VNC_TLS_CFLAGS) + QEMU_CFLAGS += $(VNC_SASL_CFLAGS) diff --git a/meta/recipes-devtools/qemu/files/no-strip.patch b/meta/recipes-devtools/qemu/files/no-strip.patch new file mode 100644 index 0000000000..d6a4377cd0 --- /dev/null +++ b/meta/recipes-devtools/qemu/files/no-strip.patch @@ -0,0 +1,15 @@ +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)" diff --git a/meta/recipes-devtools/qemu/files/powerpc_rom.bin b/meta/recipes-devtools/qemu/files/powerpc_rom.bin Binary files differnew file mode 100644 index 0000000000..c4044296c5 --- /dev/null +++ b/meta/recipes-devtools/qemu/files/powerpc_rom.bin diff --git a/meta/recipes-devtools/qemu/files/relocatable_sdk.patch b/meta/recipes-devtools/qemu/files/relocatable_sdk.patch new file mode 100644 index 0000000000..0a01a8a048 --- /dev/null +++ b/meta/recipes-devtools/qemu/files/relocatable_sdk.patch @@ -0,0 +1,34 @@ +Upstream-Status: Inappropriate [SDK specific] + +In order to be able to change the dynamic loader path when relocating +binaries, the interp section has to be made big enough to accomodate +the new path (4096 is the maximum path length in Linux). + +Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> + +Index: qemu-1.2.0/i386.ld +=================================================================== +--- qemu-1.2.0.orig/i386.ld ++++ qemu-1.2.0/i386.ld +@@ -8,7 +8,7 @@ SECTIONS + { + /* Read-only sections, merged into text segment: */ + . = 0x60000000 + SIZEOF_HEADERS; +- .interp : { *(.interp) } ++ .interp : { *(.interp); . = 0x1000; } + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } +Index: qemu-1.2.0/x86_64.ld +=================================================================== +--- qemu-1.2.0.orig/x86_64.ld ++++ qemu-1.2.0/x86_64.ld +@@ -6,7 +6,7 @@ SECTIONS + { + /* Read-only sections, merged into text segment: */ + . = 0x60000000 + SIZEOF_HEADERS; +- .interp : { *(.interp) } ++ .interp : { *(.interp); . = 0x1000; } + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } |