[oe] [STABLE][PATCH 013/125] qemu 0.10.3: port OE patches, make preferable version

Marcin Juszkiewicz marcin at juszkiewicz.com.pl
Wed Jul 1 18:54:14 UTC 2009


From: Roman I Khimov <khimov at altell.ru>

Fixes binary locale generation broken by
6065fa491c009118ae282ae933215649cccfcd24.

Tested to work on ARM OABI (simpad), ARM EABI (qemuarm), PowerPC (efika)
and i686 (x86-prescott).

Acked-by: Philipp Zabel <philipp.zabel at gmail.com>
Signed-off-by: Marcin Juszkiewicz <marcin at juszkiewicz.com.pl>
---
 recipes/qemu/qemu-0.10.3/06_exit_segfault.patch    |   45 ++++++++++++++++
 recipes/qemu/qemu-0.10.3/11_signal_sigaction.patch |   21 ++++++++
 recipes/qemu/qemu-0.10.3/22_net_tuntap_stall.patch |   13 +++++
 recipes/qemu/qemu-0.10.3/31_syscalls.patch         |   22 ++++++++
 recipes/qemu/qemu-0.10.3/32_syscall_sysctl.patch   |   55 ++++++++++++++++++++
 recipes/qemu/qemu-0.10.3/52_ne2000_return.patch    |   17 ++++++
 recipes/qemu/qemu-0.10.3/61_safe_64bit_int.patch   |   27 ++++++++++
 recipes/qemu/qemu-0.10.3/63_sparc_build.patch      |   18 ++++++
 .../qemu/qemu-0.10.3/64_ppc_asm_constraints.patch  |   18 ++++++
 recipes/qemu/qemu-0.10.3/66_tls_ld.patch           |   55 ++++++++++++++++++++
 recipes/qemu/qemu-0.10.3/91-oh-sdl-cursor.patch    |   18 ++++++
 .../qemu/qemu-0.10.3/fix_baum_c_compilation.patch  |   30 +++++++++++
 recipes/qemu/qemu-0.10.3/fix_segfault.patch        |   37 +++++++++++++
 recipes/qemu/qemu-0.10.3/no-strip.patch            |   26 +++++++++
 recipes/qemu/qemu_0.10.3.bb                        |   17 +++++-
 15 files changed, 417 insertions(+), 2 deletions(-)
 create mode 100644 recipes/qemu/qemu-0.10.3/06_exit_segfault.patch
 create mode 100644 recipes/qemu/qemu-0.10.3/11_signal_sigaction.patch
 create mode 100644 recipes/qemu/qemu-0.10.3/22_net_tuntap_stall.patch
 create mode 100644 recipes/qemu/qemu-0.10.3/31_syscalls.patch
 create mode 100644 recipes/qemu/qemu-0.10.3/32_syscall_sysctl.patch
 create mode 100644 recipes/qemu/qemu-0.10.3/52_ne2000_return.patch
 create mode 100644 recipes/qemu/qemu-0.10.3/61_safe_64bit_int.patch
 create mode 100644 recipes/qemu/qemu-0.10.3/63_sparc_build.patch
 create mode 100644 recipes/qemu/qemu-0.10.3/64_ppc_asm_constraints.patch
 create mode 100644 recipes/qemu/qemu-0.10.3/66_tls_ld.patch
 create mode 100644 recipes/qemu/qemu-0.10.3/91-oh-sdl-cursor.patch
 create mode 100644 recipes/qemu/qemu-0.10.3/fix_baum_c_compilation.patch
 create mode 100644 recipes/qemu/qemu-0.10.3/fix_segfault.patch
 create mode 100644 recipes/qemu/qemu-0.10.3/no-strip.patch

diff --git a/recipes/qemu/qemu-0.10.3/06_exit_segfault.patch b/recipes/qemu/qemu-0.10.3/06_exit_segfault.patch
new file mode 100644
index 0000000..bc02d31
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/06_exit_segfault.patch
@@ -0,0 +1,45 @@
+#DPATCHLEVEL=0
+---
+# linux-user/main.c |    8 ++++----
+# 1 file changed, 4 insertions(+), 4 deletions(-)
+#
+Index: linux-user/main.c
+===================================================================
+--- linux-user/main.c.orig	2008-04-24 20:15:46.000000000 +0100
++++ linux-user/main.c	2008-04-24 20:15:53.000000000 +0100
+@@ -765,7 +765,7 @@
+         default:
+             printf ("Unhandled trap: 0x%x\n", trapnr);
+             cpu_dump_state(env, stderr, fprintf, 0);
+-            exit (1);
++            _exit (1);
+         }
+         process_pending_signals (env);
+     }
+@@ -1697,7 +1697,7 @@
+         default:
+             printf ("Unhandled trap: 0x%x\n", trapnr);
+             cpu_dump_state(env, stderr, fprintf, 0);
+-            exit (1);
++            _exit (1);
+         }
+         process_pending_signals (env);
+     }
+@@ -2026,7 +2026,7 @@
+                 for(item = cpu_log_items; item->mask != 0; item++) {
+                     printf("%-10s %s\n", item->name, item->help);
+                 }
+-                exit(1);
++                _exit(1);
+             }
+             cpu_set_log(mask);
+         } else if (!strcmp(r, "s")) {
+@@ -2045,7 +2045,7 @@
+             if (qemu_host_page_size == 0 ||
+                 (qemu_host_page_size & (qemu_host_page_size - 1)) != 0) {
+                 fprintf(stderr, "page size must be a power of two\n");
+-                exit(1);
++                _exit(1);
+             }
+         } else if (!strcmp(r, "g")) {
+             gdbstub_port = atoi(argv[optind++]);
diff --git a/recipes/qemu/qemu-0.10.3/11_signal_sigaction.patch b/recipes/qemu/qemu-0.10.3/11_signal_sigaction.patch
new file mode 100644
index 0000000..cd56541
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/11_signal_sigaction.patch
@@ -0,0 +1,21 @@
+#DPATCHLEVEL=0
+---
+# linux-user/signal.c |    5 +++++
+# 1 file changed, 5 insertions(+)
+#
+Index: linux-user/signal.c
+===================================================================
+--- linux-user/signal.c.orig	2008-04-24 20:15:55.000000000 +0100
++++ linux-user/signal.c	2008-04-24 20:15:57.000000000 +0100
+@@ -512,6 +512,11 @@
+ 
+     if (sig < 1 || sig > TARGET_NSIG || sig == SIGKILL || sig == SIGSTOP)
+         return -EINVAL;
++
++    /* no point doing the stuff as those are not allowed for sigaction */
++    if ((sig == TARGET_SIGKILL) || (sig == TARGET_SIGSTOP))
++        return -EINVAL;
++
+     k = &sigact_table[sig - 1];
+ #if defined(DEBUG_SIGNAL)
+     fprintf(stderr, "sigaction sig=%d act=0x%08x, oact=0x%08x\n",
diff --git a/recipes/qemu/qemu-0.10.3/22_net_tuntap_stall.patch b/recipes/qemu/qemu-0.10.3/22_net_tuntap_stall.patch
new file mode 100644
index 0000000..993960b
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/22_net_tuntap_stall.patch
@@ -0,0 +1,13 @@
+Index: qemu-0.10.3/net.c
+===================================================================
+--- qemu-0.10.3.orig/net.c	2009-05-19 17:46:54.650870195 +0400
++++ qemu-0.10.3/net.c	2009-05-19 17:47:05.612854521 +0400
+@@ -955,7 +955,7 @@
+         return -1;
+     }
+     memset(&ifr, 0, sizeof(ifr));
+-    ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
++    ifr.ifr_flags = IFF_TAP | IFF_NO_PI | IFF_ONE_QUEUE;
+     if (ifname[0] != '\0')
+         pstrcpy(ifr.ifr_name, IFNAMSIZ, ifname);
+     else
diff --git a/recipes/qemu/qemu-0.10.3/31_syscalls.patch b/recipes/qemu/qemu-0.10.3/31_syscalls.patch
new file mode 100644
index 0000000..20a1499
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/31_syscalls.patch
@@ -0,0 +1,22 @@
+Index: linux-user/syscall.c
+===================================================================
+--- linux-user/syscall.c.orig	2008-04-24 20:15:46.000000000 +0100
++++ linux-user/syscall.c	2008-04-24 20:15:59.000000000 +0100
+@@ -250,6 +250,7 @@
+ extern int setresgid(gid_t, gid_t, gid_t);
+ extern int getresgid(gid_t *, gid_t *, gid_t *);
+ extern int setgroups(int, gid_t *);
++extern int uselib(const char*);
+ 
+ #define ERRNO_TABLE_SIZE 1200
+ 
+@@ -4041,7 +4042,8 @@
+ #endif
+ #ifdef TARGET_NR_uselib
+     case TARGET_NR_uselib:
+-        goto unimplemented;
++        ret = get_errno(uselib(path((const char*)arg1)));
++        break;
+ #endif
+ #ifdef TARGET_NR_swapon
+     case TARGET_NR_swapon:
diff --git a/recipes/qemu/qemu-0.10.3/32_syscall_sysctl.patch b/recipes/qemu/qemu-0.10.3/32_syscall_sysctl.patch
new file mode 100644
index 0000000..2a670c9
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/32_syscall_sysctl.patch
@@ -0,0 +1,55 @@
+#DPATCHLEVEL=0
+---
+# linux-user/syscall.c |   32 +++++++++++++++++++++++++++++---
+# 1 file changed, 29 insertions(+), 3 deletions(-)
+#
+Index: linux-user/syscall.c
+===================================================================
+--- linux-user/syscall.c.orig	2009-05-19 17:50:28.000000000 +0400
++++ linux-user/syscall.c	2009-05-19 17:52:19.094103462 +0400
+@@ -55,6 +55,7 @@
+ #include <netinet/ip.h>
+ #include <netinet/tcp.h>
+ #include <qemu-common.h>
++#include <sys/sysctl.h>
+ #ifdef HAVE_GPROF
+ #include <sys/gmon.h>
+ #endif
+@@ -5193,9 +5194,34 @@
+         break;
+ #endif
+     case TARGET_NR__sysctl:
+-        /* We don't implement this, but ENOTDIR is always a safe
+-           return value. */
+-        ret = -TARGET_ENOTDIR;
++        {
++            struct __sysctl_args *args = (struct __sysctl_args *) arg1;
++            int *name_target, *name, nlen, *oldlenp, oldlen, newlen, i;
++            void *oldval, *newval;
++
++            name_target = (int *) tswapl((long) args->name);
++            nlen = tswapl(args->nlen);
++            oldval = (void *) tswapl((long) args->oldval);
++            oldlenp = (int *) tswapl((long) args->oldlenp);
++            oldlen = tswapl(*oldlenp);
++            newval = (void *) tswapl((long) args->newval);
++            newlen = tswapl(args->newlen);
++
++            name = alloca(nlen * sizeof (int));
++            for (i = 0; i < nlen; i++)
++                name[i] = tswapl(name_target[i]);
++
++            if (nlen == 2 && name[0] == CTL_KERN && name[1] == KERN_VERSION) {
++                ret = get_errno(
++                        sysctl(name, nlen, oldval, &oldlen, newval, newlen));
++                if (!is_error(ret)) {
++                    *oldlenp = tswapl(oldlen);
++                }
++            } else {
++                gemu_log("qemu: Unsupported sysctl name\n");
++                ret = -ENOSYS;
++            }
++        }
+         break;
+     case TARGET_NR_sched_setparam:
+         {
diff --git a/recipes/qemu/qemu-0.10.3/52_ne2000_return.patch b/recipes/qemu/qemu-0.10.3/52_ne2000_return.patch
new file mode 100644
index 0000000..e364bff
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/52_ne2000_return.patch
@@ -0,0 +1,17 @@
+---
+ hw/ne2000.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: trunk/hw/ne2000.c
+===================================================================
+--- trunk.orig/hw/ne2000.c	2008-04-24 20:15:46.000000000 +0100
++++ trunk/hw/ne2000.c	2008-04-24 20:16:05.000000000 +0100
+@@ -217,7 +217,7 @@
+     NE2000State *s = opaque;
+ 
+     if (s->cmd & E8390_STOP)
+-        return 1;
++        return 0;
+     return !ne2000_buffer_full(s);
+ }
+ 
diff --git a/recipes/qemu/qemu-0.10.3/61_safe_64bit_int.patch b/recipes/qemu/qemu-0.10.3/61_safe_64bit_int.patch
new file mode 100644
index 0000000..80e7b22
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/61_safe_64bit_int.patch
@@ -0,0 +1,27 @@
+#DPATCHLEVEL=0
+---
+# dyngen-exec.h |    4 ++--
+# 1 file changed, 2 insertions(+), 2 deletions(-)
+#
+Index: dyngen-exec.h
+===================================================================
+--- dyngen-exec.h.orig	2009-05-01 21:02:44.000000000 +0400
++++ dyngen-exec.h	2009-05-19 17:56:28.164854448 +0400
+@@ -41,7 +41,7 @@
+ // Linux/Sparc64 defines uint64_t
+ #if !(defined (__sparc_v9__) && defined(__linux__)) && !(defined(__APPLE__) && defined(__x86_64__))
+ /* XXX may be done for all 64 bits targets ? */
+-#if defined (__x86_64__) || defined(__ia64) || defined(__s390x__) || defined(__alpha__) || defined(_ARCH_PPC64)
++#if defined (__x86_64__) || defined(__ia64) || defined(__s390x__) || defined(__alpha__) || defined(_ARCH_PPC64) || defined(__sparc__)
+ typedef unsigned long uint64_t;
+ #else
+ typedef unsigned long long uint64_t;
+@@ -58,7 +58,7 @@
+ typedef signed int int32_t;
+ // Linux/Sparc64 defines int64_t
+ #if !(defined (__sparc_v9__) && defined(__linux__)) && !(defined(__APPLE__) && defined(__x86_64__))
+-#if defined (__x86_64__) || defined(__ia64) || defined(__s390x__) || defined(__alpha__) || defined(_ARCH_PPC64)
++#if defined (__x86_64__) || defined(__ia64) || defined(__s390x__) || defined(__alpha__) || defined(_ARCH_PPC64) || defined(__sparc__)
+ typedef signed long int64_t;
+ #else
+ typedef signed long long int64_t;
diff --git a/recipes/qemu/qemu-0.10.3/63_sparc_build.patch b/recipes/qemu/qemu-0.10.3/63_sparc_build.patch
new file mode 100644
index 0000000..097f55a
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/63_sparc_build.patch
@@ -0,0 +1,18 @@
+#DPATCHLEVEL=0
+---
+# sparc.ld |    2 +-
+# 1 file changed, 1 insertion(+), 1 deletion(-)
+#
+Index: sparc.ld
+===================================================================
+--- sparc.ld.orig	2008-04-24 20:15:46.000000000 +0100
++++ sparc.ld	2008-04-24 20:16:07.000000000 +0100
+@@ -6,7 +6,7 @@
+ SECTIONS
+ {
+   /* Read-only sections, merged into text segment: */
+-  . = 0x60000000 + SIZEOF_HEADERS;
++  . = 0x60000000 + 0x400;
+   .interp     : { *(.interp)    }
+   .hash          : { *(.hash)           }
+   .dynsym        : { *(.dynsym)         }
diff --git a/recipes/qemu/qemu-0.10.3/64_ppc_asm_constraints.patch b/recipes/qemu/qemu-0.10.3/64_ppc_asm_constraints.patch
new file mode 100644
index 0000000..7562daf
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/64_ppc_asm_constraints.patch
@@ -0,0 +1,18 @@
+#DPATCHLEVEL=1
+---
+# cpu-all.h |    2 +-
+# 1 file changed, 1 insertion(+), 1 deletion(-)
+#
+Index: qemu-0.10.3/cpu-all.h
+===================================================================
+--- qemu-0.10.3.orig/cpu-all.h	2009-05-01 21:02:44.000000000 +0400
++++ qemu-0.10.3/cpu-all.h	2009-05-19 17:59:28.357103179 +0400
+@@ -288,7 +288,7 @@
+ static inline void stl_le_p(void *ptr, int v)
+ {
+ #ifdef _ARCH_PPC
+-    __asm__ __volatile__ ("stwbrx %1,0,%2" : "=m" (*(uint32_t *)ptr) : "r" (v), "r" (ptr));
++     __asm__ __volatile__ ("stwbrx %0,0,%1" : : "r" (v), "r" (ptr) : "memory");
+ #else
+     uint8_t *p = ptr;
+     p[0] = v;
diff --git a/recipes/qemu/qemu-0.10.3/66_tls_ld.patch b/recipes/qemu/qemu-0.10.3/66_tls_ld.patch
new file mode 100644
index 0000000..cbd3f87
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/66_tls_ld.patch
@@ -0,0 +1,55 @@
+---
+ arm.ld  |    7 +++++++
+ i386.ld |    7 +++++++
+ 2 files changed, 14 insertions(+)
+
+Index: arm.ld
+===================================================================
+--- arm.ld.orig	2008-04-24 20:15:45.000000000 +0100
++++ arm.ld	2008-04-24 20:16:11.000000000 +0100
+@@ -26,6 +26,10 @@
+     { *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
+   .rela.rodata   :
+     { *(.rela.rodata) *(.rela.gnu.linkonce.r*) }
++  .rel.tdata     : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
++  .rela.tdata    : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
++  .rel.tbss      : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
++  .rela.tbss     : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
+   .rel.got       : { *(.rel.got)		}
+   .rela.got      : { *(.rela.got)		}
+   .rel.ctors     : { *(.rel.ctors)	}
+@@ -58,6 +62,9 @@
+   .ARM.exidx   : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
+    __exidx_end = .;
+   .reginfo : { *(.reginfo) }
++  /* Thread Local Storage sections  */
++  .tdata	  : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
++  .tbss		  : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
+   /* Adjust the address for the data segment.  We want to adjust up to
+      the same address within the page on the next page up.  */
+   . = ALIGN(0x100000) + (. & (0x100000 - 1));
+Index: i386.ld
+===================================================================
+--- i386.ld.orig	2008-04-24 20:15:45.000000000 +0100
++++ i386.ld	2008-04-24 20:16:11.000000000 +0100
+@@ -28,6 +28,10 @@
+     { *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
+   .rela.rodata   :
+     { *(.rela.rodata) *(.rela.gnu.linkonce.r*) }
++  .rel.tdata     : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
++  .rela.tdata    : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
++  .rel.tbss      : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
++  .rela.tbss     : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
+   .rel.got       : { *(.rel.got)		}
+   .rela.got      : { *(.rela.got)		}
+   .rel.ctors     : { *(.rel.ctors)	}
+@@ -53,6 +57,9 @@
+   _etext = .;
+   PROVIDE (etext = .);
+   .fini      : { *(.fini)    } =0x47ff041f
++  /* Thread Local Storage sections  */
++  .tdata	  : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
++  .tbss		  : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
+   . = ALIGN(32 / 8);
+   PROVIDE (__preinit_array_start = .);
+   .preinit_array     : { *(.preinit_array) }
diff --git a/recipes/qemu/qemu-0.10.3/91-oh-sdl-cursor.patch b/recipes/qemu/qemu-0.10.3/91-oh-sdl-cursor.patch
new file mode 100644
index 0000000..b3d95a4
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/91-oh-sdl-cursor.patch
@@ -0,0 +1,18 @@
+=== modified file 'sdl.c'
+---
+ sdl.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: sdl.c
+===================================================================
+--- sdl.c.orig	2008-04-24 20:15:45.000000000 +0100
++++ sdl.c	2008-04-24 20:16:12.000000000 +0100
+@@ -247,7 +247,7 @@
+ 
+     if (kbd_mouse_is_absolute()) {
+         SDL_ShowCursor(1);
+-        SDL_SetCursor(sdl_cursor_hidden);
++        /* SDL_SetCursor(sdl_cursor_hidden); */
+     } else {
+         SDL_ShowCursor(0);
+     }
diff --git a/recipes/qemu/qemu-0.10.3/fix_baum_c_compilation.patch b/recipes/qemu/qemu-0.10.3/fix_baum_c_compilation.patch
new file mode 100644
index 0000000..a2eb438
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/fix_baum_c_compilation.patch
@@ -0,0 +1,30 @@
+Index: trunk/hw/baum.c
+===================================================================
+--- trunk.orig/hw/baum.c	2008-11-29 05:12:40.418390606 +0300
++++ trunk/hw/baum.c	2008-11-29 05:13:11.498378426 +0300
+@@ -569,8 +569,10 @@ CharDriverState *chr_baum_init(void)
+     CharDriverState *chr;
+     brlapi_handle_t *handle;
+ #ifdef CONFIG_SDL
++#ifdef SDL_VIDEO_DRIVER_X11
+     SDL_SysWMinfo info;
+ #endif
++#endif
+     int tty;
+
+     baum = qemu_mallocz(sizeof(BaumDriverState));
+@@ -605,12 +607,14 @@ CharDriverState *chr_baum_init(void)
+     }
+
+ #ifdef CONFIG_SDL
++#ifdef SDL_VIDEO_DRIVER_X11
+     memset(&info, 0, sizeof(info));
+     SDL_VERSION(&info.version);
+     if (SDL_GetWMInfo(&info))
+         tty = info.info.x11.wmwindow;
+     else
+ #endif
++#endif
+         tty = BRLAPI_TTY_DEFAULT;
+
+     if (brlapi__enterTtyMode(handle, tty, NULL) == -1) {
diff --git a/recipes/qemu/qemu-0.10.3/fix_segfault.patch b/recipes/qemu/qemu-0.10.3/fix_segfault.patch
new file mode 100644
index 0000000..32ca3c0
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/fix_segfault.patch
@@ -0,0 +1,37 @@
+---
+ linux-user/syscall.c |   22 ----------------------
+ 1 file changed, 22 deletions(-)
+
+Index: qemu-0.10.3/linux-user/syscall.c
+===================================================================
+--- qemu-0.10.3.orig/linux-user/syscall.c	2009-05-19 18:18:04.000000000 +0400
++++ qemu-0.10.3/linux-user/syscall.c	2009-05-19 18:18:40.397103379 +0400
+@@ -6024,28 +6024,6 @@
+         goto unimplemented_nowarn;
+ #endif
+ 
+-#ifdef TARGET_NR_clock_gettime
+-    case TARGET_NR_clock_gettime:
+-    {
+-        struct timespec ts;
+-        ret = get_errno(clock_gettime(arg1, &ts));
+-        if (!is_error(ret)) {
+-            host_to_target_timespec(arg2, &ts);
+-        }
+-        break;
+-    }
+-#endif
+-#ifdef TARGET_NR_clock_getres
+-    case TARGET_NR_clock_getres:
+-    {
+-        struct timespec ts;
+-        ret = get_errno(clock_getres(arg1, &ts));
+-        if (!is_error(ret)) {
+-            host_to_target_timespec(arg2, &ts);
+-        }
+-        break;
+-    }
+-#endif
+ #ifdef TARGET_NR_clock_nanosleep
+     case TARGET_NR_clock_nanosleep:
+     {
diff --git a/recipes/qemu/qemu-0.10.3/no-strip.patch b/recipes/qemu/qemu-0.10.3/no-strip.patch
new file mode 100644
index 0000000..4813dd4
--- /dev/null
+++ b/recipes/qemu/qemu-0.10.3/no-strip.patch
@@ -0,0 +1,26 @@
+Index: trunk/Makefile
+===================================================================
+--- trunk.orig/Makefile	2008-04-24 20:15:37.000000000 +0100
++++ trunk/Makefile	2008-04-24 20:16:30.000000000 +0100
+@@ -196,7 +196,7 @@
+ install: all $(if $(BUILD_DOCS),install-doc)
+ 	mkdir -p "$(DESTDIR)$(bindir)"
+ ifneq ($(TOOLS),)
+-	$(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)"
++	$(INSTALL) -m 755 $(TOOLS) "$(DESTDIR)$(bindir)"
+ endif
+ 	mkdir -p "$(DESTDIR)$(datadir)"
+ 	set -e; for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
+Index: trunk/Makefile.target
+===================================================================
+--- trunk.orig/Makefile.target	2008-04-24 20:15:37.000000000 +0100
++++ trunk/Makefile.target	2008-04-24 20:16:30.000000000 +0100
+@@ -685,7 +685,7 @@
+ 
+ install: all
+ ifneq ($(PROGS),)
+-	$(INSTALL) -m 755 -s $(PROGS) "$(DESTDIR)$(bindir)"
++	$(INSTALL) -m 755 $(PROGS) "$(DESTDIR)$(bindir)"
+ endif
+ 
+ # Include automatically generated dependency files
diff --git a/recipes/qemu/qemu_0.10.3.bb b/recipes/qemu/qemu_0.10.3.bb
index d6ad1d7..f65f60d 100644
--- a/recipes/qemu/qemu_0.10.3.bb
+++ b/recipes/qemu/qemu_0.10.3.bb
@@ -1,14 +1,27 @@
 LICENSE = "GPL"
 DEPENDS = "zlib"
 
-# Need to port OE patches there
-DEFAULT_PREFERENCE = "-1"
+PR = "r1"
 
 FILESPATH = "${FILE_DIRNAME}/qemu-${PV}"
 FILESDIR = "${WORKDIR}"
 
 SRC_URI = "\
     http://download.savannah.gnu.org/releases/qemu/qemu-${PV}.tar.gz \
+    file://06_exit_segfault.patch;patch=1;pnum=0 \
+    file://11_signal_sigaction.patch;patch=1;pnum=0 \
+    file://22_net_tuntap_stall.patch;patch=1 \
+    file://31_syscalls.patch;patch=1;pnum=0 \
+    file://32_syscall_sysctl.patch;patch=1;pnum=0 \
+    file://52_ne2000_return.patch;patch=1 \
+    file://61_safe_64bit_int.patch;patch=1;pnum=0 \
+    file://63_sparc_build.patch;patch=1;pnum=0 \
+    file://64_ppc_asm_constraints.patch;patch=1 \
+    file://66_tls_ld.patch;patch=1;pnum=0 \
+    file://91-oh-sdl-cursor.patch;patch=1;pnum=0 \
+    file://fix_segfault.patch;patch=1 \
+    file://no-strip.patch;patch=1 \
+    file://fix_baum_c_compilation.patch;patch=1 \
     "
 
 S = "${WORKDIR}/qemu-${PV}"
-- 
1.6.3.1







More information about the Openembedded-devel mailing list