qemu: remove version 0.14.0
0.15.1 has been available in OE-Core for some time and has demonstrated no major regressions, so remove the older version. (From OE-Core rev: d242e637a2b5101985befd93d3b560f17b37504b) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
ef36dc896d
commit
c8af05547e
|
@ -1,86 +0,0 @@
|
|||
From de01f17a2cb88dc5ff53cc321342b888c33b120a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Lo=C3=AFc=20Minier?= <lool@dooz.org>
|
||||
Date: Thu, 11 Feb 2010 17:42:33 +0100
|
||||
Subject: [PATCH] Detect and use GCC atomic builtins for locking
|
||||
|
||||
---
|
||||
configure | 17 +++++++++++++++++
|
||||
qemu-lock.h | 13 +++++++++++++
|
||||
2 files changed, 30 insertions(+), 0 deletions(-)
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Index: qemu-0.14.0/configure
|
||||
===================================================================
|
||||
--- qemu-0.14.0.orig/configure
|
||||
+++ qemu-0.14.0/configure
|
||||
@@ -2243,6 +2243,20 @@ fi
|
||||
##########################################
|
||||
|
||||
##########################################
|
||||
+# check if we have gcc atomic built-ins
|
||||
+gcc_atomic_builtins=no
|
||||
+cat > $TMPC << EOF
|
||||
+int main(void) {
|
||||
+ int i;
|
||||
+ __sync_lock_test_and_set(&i, 1);
|
||||
+ __sync_lock_release(&i);
|
||||
+}
|
||||
+EOF
|
||||
+if compile_prog "" ""; then
|
||||
+ gcc_atomic_builtins=yes
|
||||
+fi
|
||||
+
|
||||
+##########################################
|
||||
# check if we have fdatasync
|
||||
|
||||
fdatasync=no
|
||||
@@ -2731,6 +2745,9 @@ fi
|
||||
if test "$gcc_attribute_warn_unused_result" = "yes" ; then
|
||||
echo "CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT=y" >> $config_host_mak
|
||||
fi
|
||||
+if test "$gcc_atomic_builtins" = "yes" ; then
|
||||
+ echo "CONFIG_GCC_ATOMIC_BUILTINS=y" >> $config_host_mak
|
||||
+fi
|
||||
if test "$fdatasync" = "yes" ; then
|
||||
echo "CONFIG_FDATASYNC=y" >> $config_host_mak
|
||||
fi
|
||||
Index: qemu-0.14.0/qemu-lock.h
|
||||
===================================================================
|
||||
--- qemu-0.14.0.orig/qemu-lock.h
|
||||
+++ qemu-0.14.0/qemu-lock.h
|
||||
@@ -33,6 +33,14 @@
|
||||
|
||||
#else
|
||||
|
||||
+#ifdef CONFIG_GCC_ATOMIC_BUILTINS
|
||||
+typedef int spinlock_t;
|
||||
+
|
||||
+#define SPIN_LOCK_UNLOCKED 0
|
||||
+
|
||||
+#define resetlock(p) __sync_lock_release((p))
|
||||
+#else /* CONFIG_GCC_ATOMIC_BUILTINS */
|
||||
+
|
||||
#if defined(__hppa__)
|
||||
|
||||
typedef int spinlock_t[4];
|
||||
@@ -56,7 +64,11 @@ static inline void resetlock (spinlock_t
|
||||
}
|
||||
|
||||
#endif
|
||||
+#endif /* !CONFIG_GCC_ATOMIC_BUILTINS */
|
||||
|
||||
+#ifdef CONFIG_GCC_ATOMIC_BUILTINS
|
||||
+#define testandset(p) __sync_lock_test_and_set((p), 1)
|
||||
+#else /* CONFIG_GCC_ATOMIC_BUILTINS */
|
||||
#if defined(_ARCH_PPC)
|
||||
static inline int testandset (int *p)
|
||||
{
|
||||
@@ -213,6 +225,7 @@ static inline int testandset (int *p)
|
||||
#else
|
||||
#error unimplemented CPU support
|
||||
#endif
|
||||
+#endif /* !CONFIG_GCC_ATOMIC_BUILTINS */
|
||||
|
||||
#if defined(CONFIG_USER_ONLY)
|
||||
static inline void spin_lock(spinlock_t *lock)
|
|
@ -1,30 +0,0 @@
|
|||
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-0.14.0/hw/pl110.c
|
||||
===================================================================
|
||||
--- qemu-0.14.0.orig/hw/pl110.c 2011-09-16 14:45:34.228668514 +0100
|
||||
+++ qemu-0.14.0/hw/pl110.c 2011-09-16 15:17:22.458671206 +0100
|
||||
@@ -141,7 +141,11 @@
|
||||
fprintf(stderr, "pl110: Bad color depth\n");
|
||||
exit(1);
|
||||
}
|
||||
- if (s->cr & PL110_CR_BGR)
|
||||
+
|
||||
+ if (s->versatile && 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 = 18;
|
|
@ -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)
|
||||
+{
|
||||
+}
|
|
@ -1,39 +0,0 @@
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
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-0.14.0/configure
|
||||
===================================================================
|
||||
--- qemu-0.14.0.orig/configure
|
||||
+++ qemu-0.14.0/configure
|
||||
@@ -229,6 +229,7 @@ QEMU_CFLAGS="-Wstrict-prototypes -Wredun
|
||||
QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
|
||||
QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
|
||||
QEMU_INCLUDES="-I. -I\$(SRC_PATH)"
|
||||
+QEMU_CFLAGS="$QEMU_CFLAGS $CFLAGS"
|
||||
LDFLAGS="-g $LDFLAGS"
|
||||
|
||||
# make source path absolute
|
|
@ -1,127 +0,0 @@
|
|||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
Index: qemu-0.14.0/Makefile.target
|
||||
===================================================================
|
||||
--- qemu-0.14.0.orig/Makefile.target
|
||||
+++ qemu-0.14.0/Makefile.target
|
||||
@@ -79,6 +79,12 @@ libobj-y += cpuid.o
|
||||
endif
|
||||
libobj-$(CONFIG_NEED_MMU) += mmu.o
|
||||
libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o
|
||||
+libobj-$(TARGET_X86_64) += helper_opengl.o opengl_exec.o
|
||||
+libobj-$(TARGET_ARM) += dummygl.o
|
||||
+libobj-$(TARGET_MIPS) += dummygl.o
|
||||
+libobj-$(TARGET_MIPS64) += dummygl.o
|
||||
+libobj-$(TARGET_PPC) += dummygl.o
|
||||
+libobj-$(TARGET_SH4) += dummygl.o
|
||||
libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o
|
||||
|
||||
libobj-y += disas.o
|
||||
Index: qemu-0.14.0/target-arm/dummygl.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ qemu-0.14.0/target-arm/dummygl.c
|
||||
@@ -0,0 +1,22 @@
|
||||
+#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)
|
||||
+{
|
||||
+
|
||||
+}
|
||||
Index: qemu-0.14.0/target-mips/dummygl.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ qemu-0.14.0/target-mips/dummygl.c
|
||||
@@ -0,0 +1,22 @@
|
||||
+#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)
|
||||
+{
|
||||
+
|
||||
+}
|
||||
Index: qemu-0.14.0/target-ppc/dummygl.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ qemu-0.14.0/target-ppc/dummygl.c
|
||||
@@ -0,0 +1,22 @@
|
||||
+#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)
|
||||
+{
|
||||
+
|
||||
+}
|
||||
Index: qemu-0.14.0/target-sh4/dummygl.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ qemu-0.14.0/target-sh4/dummygl.c
|
||||
@@ -0,0 +1,22 @@
|
||||
+#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)
|
||||
+{
|
||||
+
|
||||
+}
|
|
@ -1,15 +0,0 @@
|
|||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
Index: qemu-0.14.0/Makefile.target
|
||||
===================================================================
|
||||
--- qemu-0.14.0.orig/Makefile.target 2011-04-04 12:12:19.142871742 +0100
|
||||
+++ qemu-0.14.0/Makefile.target 2011-04-04 12:12:21.772871742 +0100
|
||||
@@ -362,7 +362,7 @@
|
||||
|
||||
monitor.o: hmp-commands.h qmp-commands.h
|
||||
|
||||
-LIBS += -lGL -lGLU
|
||||
+LIBS += -lGL
|
||||
|
||||
$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS)
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
# 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,
|
|
@ -1,22 +0,0 @@
|
|||
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
|
||||
|
|
@ -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)
|
|
@ -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)"
|
|
@ -1,43 +0,0 @@
|
|||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
diff -u -r qemu-0.14.0/Makefile.target qemu-0.14.0-fixed/Makefile.target
|
||||
--- qemu-0.14.0/Makefile.target 2011-04-26 21:22:17.627637741 -0700
|
||||
+++ qemu-0.14.0-fixed/Makefile.target 2011-04-26 21:23:02.767637747 -0700
|
||||
@@ -82,8 +82,10 @@
|
||||
libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o
|
||||
libobj-$(TARGET_X86_64) += helper_opengl.o opengl_exec.o
|
||||
else
|
||||
+ifdef CONFIG_SDL
|
||||
libobj-$(TARGET_I386) += dummygl.o
|
||||
libobj-$(TARGET_X86_64) += dummygl.o
|
||||
+endif
|
||||
endif #CONFIG_LINUX_USER
|
||||
libobj-$(TARGET_ARM) += dummygl.o
|
||||
libobj-$(TARGET_MIPS) += dummygl.o
|
||||
Only in qemu-0.14.0-fixed: config.log
|
||||
diff -u -r qemu-0.14.0/target-i386/helper.h qemu-0.14.0-fixed/target-i386/helper.h
|
||||
--- qemu-0.14.0/target-i386/helper.h 2011-04-26 21:22:11.418637742 -0700
|
||||
+++ qemu-0.14.0-fixed/target-i386/helper.h 2011-04-26 21:23:02.539637747 -0700
|
||||
@@ -217,6 +217,9 @@
|
||||
DEF_HELPER_2(rcrq, tl, tl, tl)
|
||||
#endif
|
||||
|
||||
+#ifdef CONFIG_SDL
|
||||
DEF_HELPER_0(opengl, void)
|
||||
+#endif
|
||||
+
|
||||
|
||||
#include "def-helper.h"
|
||||
diff -u -r qemu-0.14.0/target-i386/translate.c qemu-0.14.0-fixed/target-i386/translate.c
|
||||
--- qemu-0.14.0/target-i386/translate.c 2011-04-26 21:22:21.600637743 -0700
|
||||
+++ qemu-0.14.0-fixed/target-i386/translate.c 2011-04-26 21:23:02.538637747 -0700
|
||||
@@ -2659,7 +2659,7 @@
|
||||
static void gen_interrupt(DisasContext *s, int intno,
|
||||
target_ulong cur_eip, target_ulong next_eip)
|
||||
{
|
||||
-#if !defined(CONFIG_USER_ONLY)
|
||||
+#if !defined(CONFIG_USER_ONLY) && defined(CONFIG_SDL)
|
||||
if (enable_gl && intno == 0x99) {
|
||||
gen_helper_opengl();
|
||||
return;
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -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) {
|
|
@ -1,65 +0,0 @@
|
|||
Allow releasing the GLXContext/Drawable with glXMakeCurrent.
|
||||
|
||||
---
|
||||
commit d942ed4e853e08d2298f3e11e9a952c1d952bff5
|
||||
tree f0a934efd8a8ff48e2d96f0d6fc7d70bef106bfe
|
||||
parent 93619e6be184f8de08759d347825ee0d678a6f9c
|
||||
author Andrzej Zaborowski <andrew.zaborowski@intel.com> Tue, 16 Jun 2009 22:22:05 +0200
|
||||
committer Andrzej Zaborowski <andrew.zaborowski@intel.com> Tue, 16 Jun 2009 22:22:05 +0200
|
||||
|
||||
target-i386/opengl_exec.c | 31 ++++++++++++++++---------------
|
||||
1 files changed, 16 insertions(+), 15 deletions(-)
|
||||
|
||||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
Index: qemu-0.14.0/target-i386/opengl_exec.c
|
||||
===================================================================
|
||||
--- qemu-0.14.0.orig/target-i386/opengl_exec.c
|
||||
+++ qemu-0.14.0/target-i386/opengl_exec.c
|
||||
@@ -1600,10 +1600,9 @@ int do_function_call(int func_number, ar
|
||||
fprintf(stderr, "client_drawable=%p fake_ctx=%d\n",
|
||||
(void *) client_drawable, fake_ctxt);
|
||||
|
||||
- if (client_drawable == 0 && fake_ctxt == 0) {
|
||||
+ if (client_drawable == 0 && fake_ctxt == 0)
|
||||
ret_int = glXMakeCurrent(dpy, 0, NULL);
|
||||
- process->current_state = &process->default_state;
|
||||
- } else if ((drawable = (GLXDrawable)
|
||||
+ else if ((drawable = (GLXDrawable)
|
||||
get_association_fakepbuffer_pbuffer(
|
||||
process, client_drawable))) {
|
||||
GLXContext ctxt = get_association_fakecontext_glxcontext(
|
||||
@@ -1651,19 +1650,21 @@ int do_function_call(int func_number, ar
|
||||
}
|
||||
|
||||
if (ret_int) {
|
||||
- for (i = 0; i < process->nb_states; i ++) {
|
||||
- if (process->glstates[i]->fake_ctxt == fake_ctxt) {
|
||||
- /* HACK !!! REMOVE */
|
||||
- process->current_state = process->glstates[i];
|
||||
- process->current_state->drawable = drawable;
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
+ if (fake_ctxt) {
|
||||
+ for (i = 0; i < process->nb_states; i ++)
|
||||
+ if (process->glstates[i]->fake_ctxt == fake_ctxt) {
|
||||
+ /* HACK !!! REMOVE */
|
||||
+ process->current_state = process->glstates[i];
|
||||
+ process->current_state->drawable = drawable;
|
||||
+ break;
|
||||
+ }
|
||||
|
||||
- if (i == process->nb_states) {
|
||||
- fprintf(stderr, "error remembering the new context\n");
|
||||
- exit(-1);
|
||||
- }
|
||||
+ if (i == process->nb_states) {
|
||||
+ fprintf(stderr, "error remembering the new context\n");
|
||||
+ exit(-1);
|
||||
+ }
|
||||
+ } else
|
||||
+ process->current_state = &process->default_state;
|
||||
}
|
||||
break;
|
||||
}
|
|
@ -1,74 +0,0 @@
|
|||
This patch fix GL application start failure on qemu 0.14.0.
|
||||
|
||||
Some turn-on macro/variable are re-arranged, buffer pointer is extended to
|
||||
support 32/64b combination of target/host.
|
||||
|
||||
This is not perfect fix, and we need consider other GL alternatives in future.
|
||||
|
||||
Upstream-Status: Inappropriate [other] - depends on qemu gl patch
|
||||
|
||||
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
|
||||
|
||||
|
||||
Index: qemu-0.14.0/target-i386/opengl_func.h
|
||||
===================================================================
|
||||
--- qemu-0.14.0.orig/target-i386/opengl_func.h 2011-04-08 16:43:46.000000000 +0800
|
||||
+++ qemu-0.14.0/target-i386/opengl_func.h 2011-04-08 16:45:55.000000000 +0800
|
||||
@@ -26,8 +26,9 @@
|
||||
#include "mesa_glext.h"
|
||||
|
||||
/* Argument list are internally of a type that can hold a target pointer
|
||||
- * or a host pointer. */
|
||||
-typedef target_phys_addr_t arg_t;
|
||||
+ * or a host pointer. If 32b target runs on 64b host, it should be big enough
|
||||
+ * to hold host pointer */
|
||||
+typedef long unsigned int arg_t;
|
||||
|
||||
enum {
|
||||
TYPE_NONE,
|
||||
Index: qemu-0.14.0/target-i386/translate.c
|
||||
===================================================================
|
||||
--- qemu-0.14.0.orig/target-i386/translate.c 2011-04-08 16:19:15.000000000 +0800
|
||||
+++ qemu-0.14.0/target-i386/translate.c 2011-04-08 16:22:03.000000000 +0800
|
||||
@@ -2652,17 +2652,19 @@
|
||||
s->is_jmp = DISAS_TB_JUMP;
|
||||
}
|
||||
|
||||
-int enable_gl = 0;
|
||||
+extern int enable_gl;
|
||||
|
||||
/* an interrupt is different from an exception because of the
|
||||
privilege checks */
|
||||
static void gen_interrupt(DisasContext *s, int intno,
|
||||
target_ulong cur_eip, target_ulong next_eip)
|
||||
{
|
||||
+#if !defined(CONFIG_USER_ONLY)
|
||||
if (enable_gl && intno == 0x99) {
|
||||
gen_helper_opengl();
|
||||
return;
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (s->cc_op != CC_OP_DYNAMIC)
|
||||
gen_op_set_cc_op(s->cc_op);
|
||||
Index: qemu-0.14.0/vl.c
|
||||
===================================================================
|
||||
--- qemu-0.14.0.orig/vl.c 2011-04-08 16:11:43.000000000 +0800
|
||||
+++ qemu-0.14.0/vl.c 2011-04-08 16:20:05.000000000 +0800
|
||||
@@ -229,7 +229,7 @@
|
||||
unsigned int nb_prom_envs = 0;
|
||||
const char *prom_envs[MAX_PROM_ENVS];
|
||||
int boot_menu;
|
||||
-extern int enable_gl;
|
||||
+int enable_gl = 0;
|
||||
|
||||
typedef struct FWBootEntry FWBootEntry;
|
||||
|
||||
@@ -1909,6 +1909,7 @@
|
||||
return popt;
|
||||
}
|
||||
|
||||
+#define TARGET_OPENGL_OK
|
||||
int main(int argc, char **argv, char **envp)
|
||||
{
|
||||
const char *gdbstub_dev = NULL;
|
|
@ -1,152 +0,0 @@
|
|||
Description: spice/qxl: locking fix for qemu-kvm
|
||||
Author: Gerd Hoffmann <kraxel@redhat.com>
|
||||
Source: upstream, http://patchwork.ozlabs.org/patch/84704/
|
||||
Forwarding: not-needed
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Index: qemu-0.14.0/hw/qxl.c
|
||||
===================================================================
|
||||
--- qemu-0.14.0.orig/hw/qxl.c
|
||||
+++ qemu-0.14.0/hw/qxl.c
|
||||
@@ -125,6 +125,27 @@ static void qxl_reset_memslots(PCIQXLDev
|
||||
static void qxl_reset_surfaces(PCIQXLDevice *d);
|
||||
static void qxl_ring_set_dirty(PCIQXLDevice *qxl);
|
||||
|
||||
+/* qemu-kvm locking ... */
|
||||
+void qxl_unlock_iothread(SimpleSpiceDisplay *ssd)
|
||||
+{
|
||||
+ if (cpu_single_env) {
|
||||
+ assert(ssd->env == NULL);
|
||||
+ ssd->env = cpu_single_env;
|
||||
+ cpu_single_env = NULL;
|
||||
+ }
|
||||
+ qemu_mutex_unlock_iothread();
|
||||
+}
|
||||
+
|
||||
+void qxl_lock_iothread(SimpleSpiceDisplay *ssd)
|
||||
+{
|
||||
+ qemu_mutex_lock_iothread();
|
||||
+ if (ssd->env) {
|
||||
+ assert(cpu_single_env == NULL);
|
||||
+ cpu_single_env = ssd->env;
|
||||
+ ssd->env = NULL;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static inline uint32_t msb_mask(uint32_t val)
|
||||
{
|
||||
uint32_t mask;
|
||||
@@ -662,10 +683,10 @@ static void qxl_hard_reset(PCIQXLDevice
|
||||
dprint(d, 1, "%s: start%s\n", __FUNCTION__,
|
||||
loadvm ? " (loadvm)" : "");
|
||||
|
||||
- qemu_mutex_unlock_iothread();
|
||||
+ qxl_unlock_iothread(&d->ssd);
|
||||
d->ssd.worker->reset_cursor(d->ssd.worker);
|
||||
d->ssd.worker->reset_image_cache(d->ssd.worker);
|
||||
- qemu_mutex_lock_iothread();
|
||||
+ qxl_lock_iothread(&d->ssd);
|
||||
qxl_reset_surfaces(d);
|
||||
qxl_reset_memslots(d);
|
||||
|
||||
@@ -795,9 +816,9 @@ static void qxl_reset_surfaces(PCIQXLDev
|
||||
{
|
||||
dprint(d, 1, "%s:\n", __FUNCTION__);
|
||||
d->mode = QXL_MODE_UNDEFINED;
|
||||
- qemu_mutex_unlock_iothread();
|
||||
+ qxl_unlock_iothread(&d->ssd);
|
||||
d->ssd.worker->destroy_surfaces(d->ssd.worker);
|
||||
- qemu_mutex_lock_iothread();
|
||||
+ qxl_lock_iothread(&d->ssd);
|
||||
memset(&d->guest_surfaces.cmds, 0, sizeof(d->guest_surfaces.cmds));
|
||||
}
|
||||
|
||||
@@ -866,9 +887,9 @@ static void qxl_destroy_primary(PCIQXLDe
|
||||
dprint(d, 1, "%s\n", __FUNCTION__);
|
||||
|
||||
d->mode = QXL_MODE_UNDEFINED;
|
||||
- qemu_mutex_unlock_iothread();
|
||||
+ qxl_unlock_iothread(&d->ssd);
|
||||
d->ssd.worker->destroy_primary_surface(d->ssd.worker, 0);
|
||||
- qemu_mutex_lock_iothread();
|
||||
+ qxl_lock_iothread(&d->ssd);
|
||||
}
|
||||
|
||||
static void qxl_set_mode(PCIQXLDevice *d, int modenr, int loadvm)
|
||||
@@ -938,10 +959,10 @@ static void ioport_write(void *opaque, u
|
||||
case QXL_IO_UPDATE_AREA:
|
||||
{
|
||||
QXLRect update = d->ram->update_area;
|
||||
- qemu_mutex_unlock_iothread();
|
||||
+ qxl_unlock_iothread(&d->ssd);
|
||||
d->ssd.worker->update_area(d->ssd.worker, d->ram->update_surface,
|
||||
&update, NULL, 0, 0);
|
||||
- qemu_mutex_lock_iothread();
|
||||
+ qxl_lock_iothread(&d->ssd);
|
||||
break;
|
||||
}
|
||||
case QXL_IO_NOTIFY_CMD:
|
||||
Index: qemu-0.14.0/ui/spice-display.c
|
||||
===================================================================
|
||||
--- qemu-0.14.0.orig/ui/spice-display.c
|
||||
+++ qemu-0.14.0/ui/spice-display.c
|
||||
@@ -186,18 +186,18 @@ void qemu_spice_create_host_primary(Simp
|
||||
surface.mem = (intptr_t)ssd->buf;
|
||||
surface.group_id = MEMSLOT_GROUP_HOST;
|
||||
|
||||
- qemu_mutex_unlock_iothread();
|
||||
+ qxl_unlock_iothread(ssd);
|
||||
ssd->worker->create_primary_surface(ssd->worker, 0, &surface);
|
||||
- qemu_mutex_lock_iothread();
|
||||
+ qxl_lock_iothread(ssd);
|
||||
}
|
||||
|
||||
void qemu_spice_destroy_host_primary(SimpleSpiceDisplay *ssd)
|
||||
{
|
||||
dprint(1, "%s:\n", __FUNCTION__);
|
||||
|
||||
- qemu_mutex_unlock_iothread();
|
||||
+ qxl_unlock_iothread(ssd);
|
||||
ssd->worker->destroy_primary_surface(ssd->worker, 0);
|
||||
- qemu_mutex_lock_iothread();
|
||||
+ qxl_lock_iothread(ssd);
|
||||
}
|
||||
|
||||
void qemu_spice_vm_change_state_handler(void *opaque, int running, int reason)
|
||||
@@ -207,9 +207,9 @@ void qemu_spice_vm_change_state_handler(
|
||||
if (running) {
|
||||
ssd->worker->start(ssd->worker);
|
||||
} else {
|
||||
- qemu_mutex_unlock_iothread();
|
||||
+ qxl_unlock_iothread(ssd);
|
||||
ssd->worker->stop(ssd->worker);
|
||||
- qemu_mutex_lock_iothread();
|
||||
+ qxl_lock_iothread(ssd);
|
||||
}
|
||||
ssd->running = running;
|
||||
}
|
||||
Index: qemu-0.14.0/ui/spice-display.h
|
||||
===================================================================
|
||||
--- qemu-0.14.0.orig/ui/spice-display.h
|
||||
+++ qemu-0.14.0/ui/spice-display.h
|
||||
@@ -43,6 +43,9 @@ typedef struct SimpleSpiceDisplay {
|
||||
QXLRect dirty;
|
||||
int notify;
|
||||
int running;
|
||||
+
|
||||
+ /* qemu-kvm locking ... */
|
||||
+ void *env;
|
||||
} SimpleSpiceDisplay;
|
||||
|
||||
typedef struct SimpleSpiceUpdate {
|
||||
@@ -52,6 +55,9 @@ typedef struct SimpleSpiceUpdate {
|
||||
uint8_t *bitmap;
|
||||
} SimpleSpiceUpdate;
|
||||
|
||||
+void qxl_unlock_iothread(SimpleSpiceDisplay *ssd);
|
||||
+void qxl_lock_iothread(SimpleSpiceDisplay *ssd);
|
||||
+
|
||||
int qemu_spice_rect_is_empty(const QXLRect* r);
|
||||
void qemu_spice_rect_union(QXLRect *dest, const QXLRect *r);
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
require qemu.inc
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
|
||||
file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
|
||||
|
||||
PR = "r6"
|
||||
|
||||
FILESPATH = "${FILE_DIRNAME}/qemu-${PV}"
|
||||
FILESDIR = "${WORKDIR}"
|
||||
|
||||
SRC_URI = "\
|
||||
http://download.savannah.gnu.org/releases/qemu/qemu-${PV}.tar.gz \
|
||||
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://spice-qxl-locking-fix-for-qemu-kvm.patch \
|
||||
file://Detect-and-use-GCC-atomic-builtins-for-locking.patch \
|
||||
file://larger_default_ram_size.patch \
|
||||
file://arm-bgr.patch \
|
||||
"
|
||||
|
||||
# Only use the GL passthrough patches for native/nativesdk versions
|
||||
QEMUGLPATCHES = "\
|
||||
file://qemu-git-qemugl-host.patch \
|
||||
file://fix-nogl.patch \
|
||||
file://qemugl-allow-glxcontext-release.patch \
|
||||
file://init-info.patch \
|
||||
file://enable-i386-linux-user.patch \
|
||||
file://qemugl-fix.patch \
|
||||
file://opengl-sdl-fix.patch \
|
||||
"
|
||||
|
||||
SRC_URI_append_virtclass-native = "\
|
||||
${QEMUGLPATCHES} \
|
||||
"
|
||||
|
||||
SRC_URI_append_virtclass-nativesdk = "\
|
||||
${QEMUGLPATCHES} \
|
||||
file://glflags.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "f9d145d5c09de9f0984ffe9bd1229970"
|
||||
SRC_URI[sha256sum] = "ba21e84d7853217830e167dae9999cdbff481189c6a0bb600ac7fb7201453108"
|
||||
|
||||
S = "${WORKDIR}/qemu-${PV}"
|
Loading…
Reference in New Issue