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

Koen Kooi k.kooi at student.utwente.nl
Wed Jul 1 19:15:35 UTC 2009


On 01-07-09 20:54, Marcin Juszkiewicz wrote:
> 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>

Acked-by: Koen Kooi <koen at openembedded.org>


> ---
>   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}"






More information about the Openembedded-devel mailing list