Skip to contentSkip to conversation

qemu: upgrade to 1.6.1

PATCH Superseded Chris Patterson 3 participants 7 messages Oct 16, 2013 – Oct 30, 2013

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 qemu: upgrade to 1.6.1

This update also drops the following patches which appear to have been resolved upstream:
- ftd_header.patch
- target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch
- target-ppc_fix_bit_extraction.patch

---
 meta/recipes-devtools/qemu/files/fdt_header.patch  | 39 -----------
 ...-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch | 79 ----------------------
 .../qemu/files/target-ppc_fix_bit_extraction.patch | 70 -------------------
 meta/recipes-devtools/qemu/qemu.inc                |  2 +-
 .../qemu/{qemu_1.5.0.bb => qemu_1.6.1.bb}          | 15 ++--
 5 files changed, 9 insertions(+), 196 deletions(-)
 delete mode 100644 meta/recipes-devtools/qemu/files/fdt_header.patch
 delete mode 100644 meta/recipes-devtools/qemu/files/target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch
 delete mode 100644 meta/recipes-devtools/qemu/files/target-ppc_fix_bit_extraction.patch
 rename meta/recipes-devtools/qemu/{qemu_1.5.0.bb => qemu_1.6.1.bb} (44%)
meta/recipes-devtools/qemu/files/fdt_header.patch deleted +0 -39
deleted file mode 100644
index dccfe53..0000000
@@ -1,39 +0,0 @@
-Upstream-Status: Pending 
-
-qemu: define fdt types in libfdt_env.h from qemu
-    
-    * fixes
-    In file included from /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/libfdt.h:55:0,
-                     from /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/work/x86_64-linux/qemu-native/1.4.0-r0/qemu-1.4.0/hw/arm/../../device_tree.c:28:
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:58:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:59:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:60:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:61:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:62:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:63:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:64:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:67:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:70:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:73:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:77:2: error: unknown type name 'fdt64_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:78:2: error: unknown type name 'fdt64_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:82:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:87:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:88:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:89:2: error: unknown type name 'fdt32_t'
-
-Index: qemu-1.4.0/include/libfdt_env.h
-===================================================================
---- qemu-1.4.0.orig/include/libfdt_env.h	2013-02-15 23:05:35.000000000 +0000
-+++ qemu-1.4.0/include/libfdt_env.h	2013-04-13 14:17:27.918885225 +0000
-@@ -21,6 +21,10 @@
- 
- #include "qemu/bswap.h"
- 
-+typedef uint16_t fdt16_t;
-+typedef uint32_t fdt32_t;
-+typedef uint64_t fdt64_t;
-+
- #ifdef HOST_WORDS_BIGENDIAN
- #define fdt32_to_cpu(x)  (x)
- #define cpu_to_fdt32(x)  (x)
meta/recipes-devtools/qemu/files/target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch deleted +0 -79

79 lines not on this page · raw message

meta/recipes-devtools/qemu/files/target-ppc_fix_bit_extraction.patch deleted +0 -70

70 lines not on this page · raw message

meta/recipes-devtools/qemu/qemu.inc +1 -1
index 1b861d7..e533a84 100644
@@ -55,7 +55,7 @@ do_configure() {
        KVMOPTS="--enable-kvm"
     fi
 
-    ${S}/configure --prefix=${prefix} --sysconfdir=${sysconfdir} --libexecdir=${libexecdir} --disable-strip ${EXTRA_OECONF} $KVMOPTS
+    ${S}/configure --prefix=${prefix} --sysconfdir=${sysconfdir} --libexecdir=${libexecdir} --localstatedir=${localstatedir} --disable-strip ${EXTRA_OECONF} $KVMOPTS
     test ! -e ${S}/target-i386/beginend_funcs.sh || chmod a+x ${S}/target-i386/beginend_funcs.sh
 }
 
meta/recipes-devtools/qemu/qemu_1.6.1.bb renamed from meta/recipes-devtools/qemu/qemu_1.5.0.bb +8 -7
similarity index 44%
rename from meta/recipes-devtools/qemu/qemu_1.5.0.bb
rename to meta/recipes-devtools/qemu/qemu_1.6.1.bb
index 06c2cdb..03e28a0 100644
@@ -3,14 +3,15 @@ require qemu.inc
 LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
                     file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
 
-SRC_URI += "file://fdt_header.patch \
-            file://target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch \
-            file://target-ppc_fix_bit_extraction.patch \
-            file://fxrstorssefix.patch \
-           "
+SRC_URI += "file://fxrstorssefix.patch"
 
 SRC_URI_prepend = "http://wiki.qemu.org/download/qemu-${PV}.tar.bz2"
-SRC_URI[md5sum] = "b6f3265b8ed39d77e8f354f35cc26e16"
-SRC_URI[sha256sum] = "b22b30ee9712568dfb4eedf76783f4a76546e1cbc41659b909646bcf0b4867bb"
+SRC_URI[md5sum] = "3a897d722457c5a895cd6ac79a28fda0"
+SRC_URI[sha256sum] = "fc736f44aa10478223c881310a7e40fc8386547e9cadf7d01ca4685951605294"
 
 COMPATIBLE_HOST_class-target_mips64 = "null"
+
+do_install_append() {
+    # Prevent QA warnings about installed ${localstatedir}/run
+    if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi
+}
Signature · 1 line
1.8.4.rc3
#1 lore raw
Quoted 5 lines · Chris Patterson

This update also drops the following patches which appear to have been resolved upstream:
- ftd_header.patch
- target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch
- target-ppc_fix_bit_extraction.patch

There seems to be a problem with one of the patches when building for the nativesdk

Quoted 29 lines

ERROR: Command Error: exit status: 1 Output:
Applying patch relocatable_sdk.patch
can't find file to patch at input line 13
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------

|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 <[email protected]>
|
|Index: qemu-1.4.0/ldscripts/i386.ld
|===================================================================
|--- qemu-1.4.0.orig/ldscripts/i386.ld	2013-02-15 15:05:35.000000000 -0800
|+++ qemu-1.4.0/ldscripts/i386.ld	2013-02-28 22:55:36.138816418 -0800

--------------------------
No file to patch. Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 26
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------

|Index: qemu-1.4.0/ldscripts/x86_64.ld
|===================================================================
|--- qemu-1.4.0.orig/ldscripts/x86_64.ld	2013-02-15 15:05:35.000000000 -0800
|+++ qemu-1.4.0/ldscripts/x86_64.ld	2013-02-28 22:55:36.138816418 -0800
Quoted 5 lines

--------------------------
No file to patch. Skipping patch.
1 out of 1 hunk ignored
Patch relocatable_sdk.patch does not apply (enforce with -f)
ERROR: Function failed: patch_do_patch

Also, since qemu is core to the testing and developmen, can you clarify for us what kind of testing you have done across the architectures.

Thanks
Sau!

Quoted 263 lines
---
  meta/recipes-devtools/qemu/files/fdt_header.patch  | 39 -----------
  ...-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch | 79 ----------------------
  .../qemu/files/target-ppc_fix_bit_extraction.patch | 70 -------------------
  meta/recipes-devtools/qemu/qemu.inc                |  2 +-
  .../qemu/{qemu_1.5.0.bb => qemu_1.6.1.bb}          | 15 ++--
  5 files changed, 9 insertions(+), 196 deletions(-)

delete mode 100644 meta/recipes-devtools/qemu/files/fdt_header.patch
delete mode 100644 meta/recipes-devtools/qemu/files/target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch delete mode 100644 meta/recipes-devtools/qemu/files/target-ppc_fix_bit_extraction.patch rename meta/recipes-devtools/qemu/{qemu_1.5.0.bb => qemu_1.6.1.bb} (44%)

meta/recipes-devtools/qemu/files/fdt_header.patch deleted +0 -39
deleted file mode 100644
index dccfe53..0000000
@@ -1,39 +0,0 @@
-Upstream-Status: Pending
-
-qemu: define fdt types in libfdt_env.h from qemu
-
-    * fixes
-    In file included from /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/libfdt.h:55:0,
-                     from /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/work/x86_64-linux/qemu-native/1.4.0-r0/qemu-1.4.0/hw/arm/../../device_tree.c:28:
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:58:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:59:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:60:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:61:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:62:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:63:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:64:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:67:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:70:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:73:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:77:2: error: unknown type name 'fdt64_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:78:2: error: unknown type name 'fdt64_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:82:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:87:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:88:2: error: unknown type name 'fdt32_t'
-    /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:89:2: error: unknown type name 'fdt32_t'
-
-Index: qemu-1.4.0/include/libfdt_env.h
-===================================================================
---- qemu-1.4.0.orig/include/libfdt_env.h	2013-02-15 23:05:35.000000000 +0000
-+++ qemu-1.4.0/include/libfdt_env.h	2013-04-13 14:17:27.918885225 +0000
-@@ -21,6 +21,10 @@
-
- #include "qemu/bswap.h"
-
-+typedef uint16_t fdt16_t;
-+typedef uint32_t fdt32_t;
-+typedef uint64_t fdt64_t;
-+
- #ifdef HOST_WORDS_BIGENDIAN
- #define fdt32_to_cpu(x)  (x)
- #define cpu_to_fdt32(x)  (x)
meta/recipes-devtools/qemu/files/target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch deleted +0 -79
deleted file mode 100644
index 852efd1..0000000
@@ -1,79 +0,0 @@
-Upstream-Status: Backported
-
-From dec3fc9657e0682637de4d5a29d947284d01985c Mon Sep 17 00:00:00 2001
-From: Richard Henderson <[email protected]>
-Date: Wed, 29 May 2013 12:30:51 -0700
-Subject: [PATCH] target-i386: Fix aflag logic for CODE64 and the 0x67 prefix
-
-The code reorganization in commit 4a6fd938 broke handling of PREFIX_ADR.
-While fixing this, tidy and comment the code so that it's more obvious
-what's going on in setting both aflag and dflag.
-
-The TARGET_X86_64 ifdef can be eliminated because CODE64 expands to the
-constant zero when TARGET_X86_64 is undefined.
-
-Cc: Paolo Bonzini <[email protected]>
-Reported-by: Laszlo Ersek <[email protected]>
-Signed-off-by: Richard Henderson <[email protected]>
-Reviewed-by: Paolo Bonzini <[email protected]>
-Message-id: [email protected]
-Signed-off-by: Anthony Liguori <[email protected]>
----
- target-i386/translate.c |   30 +++++++++++++++---------------
- 1 file changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/target-i386/translate.c b/target-i386/translate.c
-index 0aeccdb..14b0298 100644
---- a/target-i386/translate.c
-+++ b/target-i386/translate.c
-@@ -4677,8 +4677,6 @@ static target_ulong disas_insn(CPUX86State *env, DisasContext *s,
-     }
-     s->pc = pc_start;
-     prefixes = 0;
--    aflag = s->code32;
--    dflag = s->code32;
-     s->override = -1;
-     rex_w = -1;
-     rex_r = 0;
-@@ -4801,23 +4799,25 @@ static target_ulong disas_insn(CPUX86State *env, DisasContext *s,
-     }
-
-     /* Post-process prefixes.  */
--    if (prefixes & PREFIX_DATA) {
--        dflag ^= 1;
--    }
--    if (prefixes & PREFIX_ADR) {
--        aflag ^= 1;
--    }
--#ifdef TARGET_X86_64
-     if (CODE64(s)) {
--        if (rex_w == 1) {
--            /* 0x66 is ignored if rex.w is set */
--            dflag = 2;
-+        /* In 64-bit mode, the default data size is 32-bit.  Select 64-bit
-+           data with rex_w, and 16-bit data with 0x66; rex_w takes precedence
-+           over 0x66 if both are present.  */
-+        dflag = (rex_w > 0 ? 2 : prefixes & PREFIX_DATA ? 0 : 1);
-+        /* In 64-bit mode, 0x67 selects 32-bit addressing.  */
-+        aflag = (prefixes & PREFIX_ADR ? 1 : 2);
-+    } else {
-+        /* In 16/32-bit mode, 0x66 selects the opposite data size.  */
-+        dflag = s->code32;
-+        if (prefixes & PREFIX_DATA) {
-+            dflag ^= 1;
-         }
--        if (!(prefixes & PREFIX_ADR)) {
--            aflag = 2;
-+        /* In 16/32-bit mode, 0x67 selects the opposite addressing.  */
-+        aflag = s->code32;
-+        if (prefixes & PREFIX_ADR) {
-+            aflag ^= 1;
-         }
-     }
--#endif
-
-     s->prefix = prefixes;
-     s->aflag = aflag;
---
-1.7.9.5
-
meta/recipes-devtools/qemu/files/target-ppc_fix_bit_extraction.patch deleted +0 -70
deleted file mode 100644
index 631d23b..0000000
@@ -1,70 +0,0 @@
-Delivered-To: [email protected]
-Received: by 10.50.216.195 with SMTP id os3csp11191igc;
-        Thu, 15 Aug 2013 04:32:45 -0700 (PDT)
-X-Received: by 10.180.98.3 with SMTP id ee3mr1508103wib.48.1376566364872;
-        Thu, 15 Aug 2013 04:32:44 -0700 (PDT)
-Return-Path: <[email protected]>
-Received: from hall.aurel32.net (hall.aurel32.net. [2001:470:1f0b:4a8::1])
-        by mx.google.com with ESMTPS id vv5si15578100wjc.49.2013.08.15.04.32.44
-        for <[email protected]>
-        (version=TLSv1.2 cipher=RC4-SHA bits=128/128);
-        Thu, 15 Aug 2013 04:32:44 -0700 (PDT)
-Received-SPF: pass (google.com: best guess record for domain of [email protected] designates 2001:470:1f0b:4a8::1 as permitted sender) client-ip=2001:470:1f0b:4a8::1;
-Authentication-Results: mx.google.com;
-       spf=pass (google.com: best guess record for domain of [email protected] designates 2001:470:1f0b:4a8::1 as permitted sender) [email protected]
-Received: from [2001:470:d4ed:1:2db:dfff:fe14:52d] (helo=ohm.aurel32.net)
-	by hall.aurel32.net with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128)
-	(Exim 4.80)
-	(envelope-from <[email protected]>)
-	id 1V9vnG-0006cO-NN; Thu, 15 Aug 2013 13:32:42 +0200
-Received: from aurel32 by ohm.aurel32.net with local (Exim 4.80)
-	(envelope-from <[email protected]>)
-	id 1V9vnF-0002Lw-7L; Thu, 15 Aug 2013 13:32:41 +0200
-From: Aurelien Jarno <[email protected]>
-To: [email protected]
-Cc: Khem Raj <[email protected]>,
-	Alexander Graf <[email protected]> ,
-	[email protected],
-	[email protected],
-	Aurelien Jarno <[email protected]>
-Subject: [PATCH] target-ppc: fix bit extraction for FPBF and FPL
-Date: Thu, 15 Aug 2013 13:32:38 +0200
-Message-Id: <[email protected]>
-X-Mailer: git-send-email 1.7.10.4
-
-Bit extraction for the FP BF and L field of the MTFSFI and MTFSF
-instructions is wrong and doesn't match the reference manual (which
-explain the bit number in big endian format). It has been broken in
-commit 7d08d85645def18eac2a9d672c1868a35e0bcf79.
-
-This patch fixes this, which in turn fixes the problem reported by
-Khem Raj about the floor() function of libm.
-
-Reported-by: Khem Raj <[email protected]>
-Signed-off-by: Aurelien Jarno <[email protected]>
-
-Upstream-Status: Backport
-
----
- target-ppc/translate.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-I don't know if we still have time to get this into 1.6, hence the Cc:
-to stable. In anycase it also needs to be fixed in 1.5.
-
-Index: qemu-1.5.0/target-ppc/translate.c
-===================================================================
---- qemu-1.5.0.orig/target-ppc/translate.c	2013-05-20 08:34:40.000000000 -0700
-+++ qemu-1.5.0/target-ppc/translate.c	2013-08-15 06:49:25.028144352 -0700
-@@ -428,9 +428,9 @@
- EXTRACT_HELPER(SR, 16, 4);
-
- /* mtfsf/mtfsfi */
--EXTRACT_HELPER(FPBF, 19, 3);
-+EXTRACT_HELPER(FPBF, 23, 3);
- EXTRACT_HELPER(FPIMM, 12, 4);
--EXTRACT_HELPER(FPL, 21, 1);
-+EXTRACT_HELPER(FPL, 25, 1);
- EXTRACT_HELPER(FPFLM, 17, 8);
- EXTRACT_HELPER(FPW, 16, 1);
-
meta/recipes-devtools/qemu/qemu.inc +1 -1
index 1b861d7..e533a84 100644
@@ -55,7 +55,7 @@ do_configure() {
         KVMOPTS="--enable-kvm"
      fi
 
-    ${S}/configure --prefix=${prefix} --sysconfdir=${sysconfdir} --libexecdir=${libexecdir} --disable-strip ${EXTRA_OECONF} $KVMOPTS
+    ${S}/configure --prefix=${prefix} --sysconfdir=${sysconfdir} --libexecdir=${libexecdir} --localstatedir=${localstatedir} --disable-strip ${EXTRA_OECONF} $KVMOPTS
      test ! -e ${S}/target-i386/beginend_funcs.sh || chmod a+x ${S}/target-i386/beginend_funcs.sh
  }
 
meta/recipes-devtools/qemu/qemu_1.6.1.bb renamed from meta/recipes-devtools/qemu/qemu_1.5.0.bb +8 -7
similarity index 44%
rename from meta/recipes-devtools/qemu/qemu_1.5.0.bb
rename to meta/recipes-devtools/qemu/qemu_1.6.1.bb
index 06c2cdb..03e28a0 100644
@@ -3,14 +3,15 @@ require qemu.inc
  LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
                      file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
 
-SRC_URI += "file://fdt_header.patch \
-            file://target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch \
-            file://target-ppc_fix_bit_extraction.patch \
-            file://fxrstorssefix.patch \
-           "
+SRC_URI += "file://fxrstorssefix.patch"
 
  SRC_URI_prepend = "http://wiki.qemu.org/download/qemu-${PV}.tar.bz2"
-SRC_URI[md5sum] = "b6f3265b8ed39d77e8f354f35cc26e16"
-SRC_URI[sha256sum] = "b22b30ee9712568dfb4eedf76783f4a76546e1cbc41659b909646bcf0b4867bb"
+SRC_URI[md5sum] = "3a897d722457c5a895cd6ac79a28fda0"
+SRC_URI[sha256sum] = "fc736f44aa10478223c881310a7e40fc8386547e9cadf7d01ca4685951605294"
 
  COMPATIBLE_HOST_class-target_mips64 = "null"
+
+do_install_append() {
+    # Prevent QA warnings about installed ${localstatedir}/run
+    if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi
+}
#2 lore raw

Hey Saul,

My tests built qemu-native, qemu-helper-native, qemuwrapper-cross, and qemu for MACHINE_LIST="qemuarm qemumips qemuppc qemux86 qemux86-64 qemux86 sugarbay". For each machine, I tested running core-image-minimal in the qemu instance using runqemu. I should add that my tests were all on a x86-64 build system.

I'm not terribly familiar with the nativesdk, and (foolishly) neglected to test that. However, I looked into it, and it looks like the relocatable_sdk.patch affects a linker script that is no longer available.
I dropped the patch and tested installing an oe-core sdk sysroot (via
bitbake -c populate_sdk core-image-minimal) and qemu appears to work fine from within the sdk environment.

I'm open to suggestions for further testing this upgrade (particularly a case to cover what relocatable_sdk.patch was originally intended to resolve). I'm certainly not the expert here, but am willing to help out.

Other notes:

- I did notice that qemu-native should possibly depend on libsdl for the qemu-native instance. For users of qemu-native (such as myself), you do not necessarily get an automatic (SDL) video window unless libsdl development libraries are installed on the build system. This is perhaps because there does not appear to be a libsdl-native dependency available for qemu, but from my testing seemingly pretty straightforward to add. However, from docs I've seen online ("getting started - openembedded")
imply you should install libsdl-dev for the build environemnt, and this does enable SDL support (assuming libsdl is available). In short, nativesdk does specify nativesdk-libsdl as a dependency and native does not (in fact, there is no libsdl-native), and as a result, user may see differences in behavior. I assume this is intended...?

- I'm using bitbake from master and have a missing fcntl python module dependency in my sdk in order to use runqemu wrapper from within the sdk environment. I assume that this is not supposed to work and running qemu-system-* directly within the sdk environment bypasses this issue.

Cheers,
Chris

Quoted 404 lines · Saul Wold
Quoted 7 lines · Chris Patterson

This update also drops the following patches which appear to have been resolved upstream:
- ftd_header.patch
- target-i386-Fix-aflag-logic-**for-CODE64-and-the-0x67-.patch
- target-ppc_fix_bit_extraction.**patch

There seems to be a problem with one of the patches when building for

the nativesdk

Quoted 30 lines

ERROR: Command Error: exit status: 1 Output:
Applying patch relocatable_sdk.patch
can't find file to patch at input line 13
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------

|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 <[email protected]>
|
|Index: qemu-1.4.0/ldscripts/i386.ld
|=============================**==============================**========
|--- qemu-1.4.0.orig/ldscripts/**i386.ld  2013-02-15 15:05:35.000000000

-0800
|+++ qemu-1.4.0/ldscripts/i386.ld 2013-02-28 22:55:36.138816418
-0800
--------------------------
No file to patch. Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 26
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------

|Index: qemu-1.4.0/ldscripts/x86_64.ld
|=============================**==============================**========
|--- qemu-1.4.0.orig/ldscripts/x86_**64.ld        2013-02-15
Quoted 9 lines

15:05:35.000000000 -0800
|+++ qemu-1.4.0/ldscripts/x86_64.ld 2013-02-28 22:55:36.138816418
-0800
--------------------------
No file to patch. Skipping patch.
1 out of 1 hunk ignored
Patch relocatable_sdk.patch does not apply (enforce with -f)
ERROR: Function failed: patch_do_patch

Also, since qemu is core to the testing and developmen, can you clarify for us what kind of testing you have done across the architectures.

Thanks
Sau!

Quoted 343 lines
---
  meta/recipes-devtools/qemu/**files/fdt_header.patch  | 39 -----------
  ...-Fix-aflag-logic-for-**CODE64-and-the-0x67-.patch | 79
----------------------
  .../qemu/files/target-ppc_fix_**bit_extraction.patch | 70
-------------------
  meta/recipes-devtools/qemu/**qemu.inc                |  2 +-
  .../qemu/{qemu_1.5.0.bb => qemu_1.6.1.bb}          | 15 ++--
  5 files changed, 9 insertions(+), 196 deletions(-)

delete mode 100644 meta/recipes-devtools/qemu/**files/fdt_header.patch delete mode 100644 meta/recipes-devtools/qemu/**
files/target-i386-Fix-aflag-**logic-for-CODE64-and-the-0x67-**.patch
delete mode 100644 meta/recipes-devtools/qemu/**
files/target-ppc_fix_bit_**extraction.patch
rename meta/recipes-devtools/qemu/{qe**mu_1.5.0.bb<http://qemu_1.5.0.bb>=>
qemu_1.6.1.bb} (44%)

meta/recipes-devtools/qemu/**files/fdt_header.patch deleted +0 -6
deleted file mode 100644
index dccfe53..0000000
@@ -1,39 +0,0 @@
-Upstream-Status: Pending
-
-qemu: define fdt types in libfdt_env.h from qemu
-
-    * fixes
-    In file included from /home/oe/setup-scripts/build/**

tmp-angstrom_next-uclibc/**sysroots/x86_64-linux/usr/** include/libfdt.h:55:0,
- from /home/oe/setup-scripts/build/**
tmp-angstrom_next-uclibc/work/**x86_64-linux/qemu-native/1.4.** 0-r0/qemu-1.4.0/hw/arm/../../**device_tree.c:28:
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:58:2: error: unknown type name 'fdt32_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:59:2: error: unknown type name 'fdt32_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:60:2: error: unknown type name 'fdt32_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:61:2: error: unknown type name 'fdt32_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:62:2: error: unknown type name 'fdt32_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:63:2: error: unknown type name 'fdt32_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:64:2: error: unknown type name 'fdt32_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:67:2: error: unknown type name 'fdt32_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:70:2: error: unknown type name 'fdt32_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:73:2: error: unknown type name 'fdt32_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:77:2: error: unknown type name 'fdt64_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:78:2: error: unknown type name 'fdt64_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:82:2: error: unknown type name 'fdt32_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:87:2: error: unknown type name 'fdt32_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:88:2: error: unknown type name 'fdt32_t'
- /home/oe/setup-scripts/build/**tmp-angstrom_next-uclibc/**
sysroots/x86_64-linux/usr/**include/fdt.h:89:2: error: unknown type name 'fdt32_t'

meta/recipes-devtools/qemu/**files/fdt_header.patch deleted +0 -4
-
-Index: qemu-1.4.0/include/libfdt_env.**h
-=============================**==============================**========
---- qemu-1.4.0.orig/include/**libfdt_env.h       2013-02-15

23:05:35.000000000 +0000
-+++ qemu-1.4.0/include/libfdt_env.**h 2013-04-13 14:17:27.918885225
+0000
-@@ -21,6 +21,10 @@

meta/recipes-devtools/qemu/**files/fdt_header.patch deleted +0 -10
-
- #include "qemu/bswap.h"
-
-+typedef uint16_t fdt16_t;
-+typedef uint32_t fdt32_t;
-+typedef uint64_t fdt64_t;
-+
- #ifdef HOST_WORDS_BIGENDIAN
- #define fdt32_to_cpu(x)  (x)
- #define cpu_to_fdt32(x)  (x)
(quoted diff) +0 -0

logic-for-CODE64-and-the-0x67-**.patch b/meta/recipes-devtools/qemu/** files/target-i386-Fix-aflag-**logic-for-CODE64-and-the-0x67-**.patch deleted file mode 100644
index 852efd1..0000000
--- a/meta/recipes-devtools/qemu/**files/target-i386-Fix-aflag-** logic-for-CODE64-and-the-0x67-**.patch
+++ /dev/null

meta/recipes-devtools/qemu/files/target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch deleted +0 -6
@@ -1,79 +0,0 @@
-Upstream-Status: Backported
-
-From dec3fc9657e0682637de4d5a29d947**284d01985c Mon Sep 17 00:00:00 2001
-From: Richard Henderson <[email protected]>
-Date: Wed, 29 May 2013 12:30:51 -0700
-Subject: [PATCH] target-i386: Fix aflag logic for CODE64 and the 0x67

prefix

meta/recipes-devtools/qemu/files/target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch deleted +0 -23
-
-The code reorganization in commit 4a6fd938 broke handling of PREFIX_ADR.
-While fixing this, tidy and comment the code so that it's more obvious
-what's going on in setting both aflag and dflag.
-
-The TARGET_X86_64 ifdef can be eliminated because CODE64 expands to the
-constant zero when TARGET_X86_64 is undefined.
-
-Cc: Paolo Bonzini <[email protected]>
-Reported-by: Laszlo Ersek <[email protected]>
-Signed-off-by: Richard Henderson <[email protected]>
-Reviewed-by: Paolo Bonzini <[email protected]>
-Message-id: 1369855851-21400-1-git-send-**[email protected]<[email protected]>
-Signed-off-by: Anthony Liguori <[email protected]>
----
- target-i386/translate.c |   30 +++++++++++++++---------------
- 1 file changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/target-i386/translate.c b/target-i386/translate.c
-index 0aeccdb..14b0298 100644
---- a/target-i386/translate.c
-+++ b/target-i386/translate.c
-@@ -4677,8 +4677,6 @@ static target_ulong disas_insn(CPUX86State *env,

DisasContext *s,

meta/recipes-devtools/qemu/files/target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch deleted +0 -9
-     }
-     s->pc = pc_start;
-     prefixes = 0;
--    aflag = s->code32;
--    dflag = s->code32;
-     s->override = -1;
-     rex_w = -1;
-     rex_r = 0;
-@@ -4801,23 +4799,25 @@ static target_ulong disas_insn(CPUX86State *env,

DisasContext *s,

meta/recipes-devtools/qemu/files/target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch deleted +0 -15
-     }
-
-     /* Post-process prefixes.  */
--    if (prefixes & PREFIX_DATA) {
--        dflag ^= 1;
--    }
--    if (prefixes & PREFIX_ADR) {
--        aflag ^= 1;
--    }
--#ifdef TARGET_X86_64
-     if (CODE64(s)) {
--        if (rex_w == 1) {
--            /* 0x66 is ignored if rex.w is set */
--            dflag = 2;
-+        /* In 64-bit mode, the default data size is 32-bit.  Select

64-bit
-+ data with rex_w, and 16-bit data with 0x66; rex_w takes
precedence
-+ over 0x66 if both are present. */

-+        dflag = (rex_w > 0 ? 2 : prefixes & PREFIX_DATA ? 0 : 1);
-+        /* In 64-bit mode, 0x67 selects 32-bit addressing.  */
-+        aflag = (prefixes & PREFIX_ADR ? 1 : 2);
-+    } else {
-+        /* In 16/32-bit mode, 0x66 selects the opposite data size.  */
-+        dflag = s->code32;
-+        if (prefixes & PREFIX_DATA) {

-+ dflag ^= 1;

meta/recipes-devtools/qemu/files/target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch deleted +0 -16
-         }
--        if (!(prefixes & PREFIX_ADR)) {
--            aflag = 2;
-+        /* In 16/32-bit mode, 0x67 selects the opposite addressing.  */
-+        aflag = s->code32;
-+        if (prefixes & PREFIX_ADR) {
-+            aflag ^= 1;
-         }
-     }
--#endif
-
-     s->prefix = prefixes;
-     s->aflag = aflag;
---
-1.7.9.5
-
meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_** renamed from meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_**extraction.patch +0 -0

extraction.patch
deleted file mode 100644
index 631d23b..0000000
--- a/meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_** extraction.patch
+++ /dev/null

meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_** renamed from meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_**extraction.patch +0 -4
@@ -1,70 +0,0 @@
-Delivered-To: [email protected]
-Received: by 10.50.216.195 with SMTP id os3csp11191igc;
-        Thu, 15 Aug 2013 04:32:45 -0700 (PDT)
-X-Received: by 10.180.98.3 with SMTP id ee3mr1508103wib.48.**

1376566364872;

meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_** renamed from meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_**extraction.patch +0 -3
-        Thu, 15 Aug 2013 04:32:44 -0700 (PDT)
-Return-Path: <[email protected]>
-Received: from hall.aurel32.net (hall.aurel32.net.

[2001:470:1f0b:4a8::1])
- by mx.google.com with ESMTPS id vv5si15578100wjc.49.2013.08.**
15.04.32.44

meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_** renamed from meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_**extraction.patch +0 -4
-        for <[email protected]>
-        (version=TLSv1.2 cipher=RC4-SHA bits=128/128);
-        Thu, 15 Aug 2013 04:32:44 -0700 (PDT)
-Received-SPF: pass (google.com: best guess record for domain of

[email protected] designates 2001:470:1f0b:4a8::1 as permitted sender) client-ip=2001:470:1f0b:4a8::**1;

meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_** renamed from meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_**extraction.patch +0 -2
-Authentication-Results: mx.google.com;
-       spf=pass (google.com: best guess record for domain of

[email protected] designates 2001:470:1f0b:4a8::1 as permitted sender) [email protected]
-Received: from [2001:470:d4ed:1:2db:dfff:**fe14:52d] (helo= ohm.aurel32.net)
- by hall.aurel32.net with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_**
SHA1:128)

meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_** renamed from meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_**extraction.patch +0 -16
-       (Exim 4.80)
-       (envelope-from <[email protected]>)
-       id 1V9vnG-0006cO-NN; Thu, 15 Aug 2013 13:32:42 +0200
-Received: from aurel32 by ohm.aurel32.net with local (Exim 4.80)
-       (envelope-from <[email protected]>)
-       id 1V9vnF-0002Lw-7L; Thu, 15 Aug 2013 13:32:41 +0200
-From: Aurelien Jarno <[email protected]>
-To: [email protected]
-Cc: Khem Raj <[email protected]>,
-       Alexander Graf <[email protected]> ,
-       [email protected],
-       [email protected],
-       Aurelien Jarno <[email protected]>
-Subject: [PATCH] target-ppc: fix bit extraction for FPBF and FPL
-Date: Thu, 15 Aug 2013 13:32:38 +0200
-Message-Id: <1376566358-8989-1-git-send-**[email protected]<[email protected]>
Quoted 1 line
meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_** renamed from meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_**extraction.patch +0 -25
-X-Mailer: git-send-email 1.7.10.4
-
-Bit extraction for the FP BF and L field of the MTFSFI and MTFSF
-instructions is wrong and doesn't match the reference manual (which
-explain the bit number in big endian format). It has been broken in
-commit 7d08d85645def18eac2a9d672c1868**a35e0bcf79.
-
-This patch fixes this, which in turn fixes the problem reported by
-Khem Raj about the floor() function of libm.
-
-Reported-by: Khem Raj <[email protected]>
-Signed-off-by: Aurelien Jarno <[email protected]>
-
-Upstream-Status: Backport
-
----
- target-ppc/translate.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-I don't know if we still have time to get this into 1.6, hence the Cc:
-to stable. In anycase it also needs to be fixed in 1.5.
-
-Index: qemu-1.5.0/target-ppc/**translate.c
-=============================**==============================**========
---- qemu-1.5.0.orig/target-ppc/**translate.c     2013-05-20

08:34:40.000000000 -0700
-+++ qemu-1.5.0/target-ppc/**translate.c 2013-08-15 06:49:25.028144352 -0700
-@@ -428,9 +428,9 @@
- EXTRACT_HELPER(SR, 16, 4);

meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_** renamed from meta/recipes-devtools/qemu/**files/target-ppc_fix_bit_**extraction.patch +0 -10
-
- /* mtfsf/mtfsfi */
--EXTRACT_HELPER(FPBF, 19, 3);
-+EXTRACT_HELPER(FPBF, 23, 3);
- EXTRACT_HELPER(FPIMM, 12, 4);
--EXTRACT_HELPER(FPL, 21, 1);
-+EXTRACT_HELPER(FPL, 25, 1);
- EXTRACT_HELPER(FPFLM, 17, 8);
- EXTRACT_HELPER(FPW, 16, 1);
-
meta/recipes-devtools/qemu/**qemu.inc +1 -4
index 1b861d7..e533a84 100644
@@ -55,7 +55,7 @@ do_configure() {
         KVMOPTS="--enable-kvm"
      fi
 
-    ${S}/configure --prefix=${prefix} --sysconfdir=${sysconfdir}
--libexecdir=${libexecdir} --disable-strip ${EXTRA_OECONF} $KVMOPTS
+    ${S}/configure --prefix=${prefix} --sysconfdir=${sysconfdir}
--libexecdir=${libexecdir} --localstatedir=${**localstatedir}
--disable-strip ${EXTRA_OECONF} $KVMOPTS
      test ! -e ${S}/target-i386/beginend_**funcs.sh || chmod a+x

${S}/target-i386/beginend_**funcs.sh
}

(quoted diff) +0 -0

q**emu_1.6.1.bb <http://qemu_1.6.1.bb>
similarity index 44%
rename from meta/recipes-devtools/qemu/qem**u_1.5.0.bb<http://qemu_1.5.0.bb> rename to meta/recipes-devtools/qemu/qem**u_1.6.1.bb<http://qemu_1.6.1.bb> index 06c2cdb..03e28a0 100644

meta/recipes-devtools/qemu/q**emu_1.6.1.bb <http://qemu_1.6.1.bb> renamed from meta/recipes-devtools/qemu/q**emu_1.5.0.bb <http://qemu_1.5.0.bb> +0 -0
@@ -3,14 +3,15 @@ require qemu.inc
  LIC_FILES_CHKSUM = "file://COPYING;md5=**441c28d2cf86e15a37fa47e15a72fb
 **ac \
                      file://COPYING.LIB;endline=24;**md5=**

c04def7ae38850e7d3ef5485881599**13"

meta/recipes-devtools/qemu/q**emu_1.6.1.bb <http://qemu_1.6.1.bb> renamed from meta/recipes-devtools/qemu/q**emu_1.5.0.bb <http://qemu_1.5.0.bb> +0 -2
-SRC_URI += "file://fdt_header.patch \
-            file://target-i386-Fix-aflag-**

logic-for-CODE64-and-the-0x67-**.patch \

meta/recipes-devtools/qemu/q**emu_1.6.1.bb <http://qemu_1.6.1.bb> renamed from meta/recipes-devtools/qemu/q**emu_1.5.0.bb <http://qemu_1.5.0.bb> +1 -3
-            file://target-ppc_fix_bit_**extraction.patch \
-            file://fxrstorssefix.patch \
-           "
+SRC_URI += "file://fxrstorssefix.patch"
 
  SRC_URI_prepend = "http://wiki.qemu.org/**download/qemu-${PV}.tar.bz2<http://wiki.qemu.org/download/qemu-$%7BPV%7D.tar.bz2>

"

meta/recipes-devtools/qemu/q**emu_1.6.1.bb <http://qemu_1.6.1.bb> renamed from meta/recipes-devtools/qemu/q**emu_1.5.0.bb <http://qemu_1.5.0.bb> +0 -2
-SRC_URI[md5sum] = "**b6f3265b8ed39d77e8f354f35cc26e**16"
-SRC_URI[sha256sum] = "**b22b30ee9712568dfb4eedf76783f4**

a76546e1cbc41659b909646bcf0b48**67bb"

meta/recipes-devtools/qemu/q**emu_1.6.1.bb <http://qemu_1.6.1.bb> renamed from meta/recipes-devtools/qemu/q**emu_1.5.0.bb <http://qemu_1.5.0.bb> +2 -0
+SRC_URI[md5sum] = "**3a897d722457c5a895cd6ac79a28fd**a0"
+SRC_URI[sha256sum] = "**fc736f44aa10478223c881310a7e40**

fc8386547e9cadf7d01ca468595160**5294"

COMPATIBLE_HOST_class-target_**mips64 = "null"

meta/recipes-devtools/qemu/q**emu_1.6.1.bb <http://qemu_1.6.1.bb> renamed from meta/recipes-devtools/qemu/q**emu_1.5.0.bb <http://qemu_1.5.0.bb> +4 -0
+
+do_install_append() {
+    # Prevent QA warnings about installed ${localstatedir}/run
+    if [ -d ${D}${localstatedir}/run ]; then rmdir

${D}${localstatedir}/run; fi
+}

#3 lore raw

Hi Chris,

Quoted 8 lines · Chris Patterson

I'm not terribly familiar with the nativesdk, and (foolishly) neglected to test that. However, I looked into it, and it looks like the relocatable_sdk.patch affects a linker script that is no longer available. I dropped the patch and tested installing an oe-core sdk sysroot (via bitbake -c populate_sdk core-image-minimal) and qemu appears to work fine from within the sdk environment.

Quoted 4 lines

I'm open to suggestions for further testing this upgrade (particularly a case to cover what relocatable_sdk.patch was originally intended to resolve). I'm certainly not the expert here, but am willing to help out.

To test this particular case, build meta-toolchain and install it in a different location than the default one. Then, just do a 'readelf -s" on any qemu binary and make sure the .interp section has a size of 0x1000 bytes.

If it does, then it's ok to drop the patch. That patch was needed because qemu happened to use their own linker scripts and, in order to have the SDK relocatable, we needed to reseve space in the .interp section to squeeze the new path.

Laurentiu

#4 lore raw
Quoted 25 lines · Laurentiu Palcu

Hi Chris,

Quoted 2 lines · Chris Patterson

I'm not terribly familiar with the nativesdk, and (foolishly) neglected

to test

Quoted 1 line

that. However, I looked into it, and it looks like the

relocatable_sdk.patch

Quoted 1 line

affects a linker script that is no longer available. I dropped the

patch and

Quoted 5 lines

tested installing an oe-core sdk sysroot (via bitbake -c populate_sdk core-image-minimal) and qemu appears to work fine from within the sdk environment.

I'm open to suggestions for further testing this upgrade (particularly a

case

Quoted 1 line

to cover what relocatable_sdk.patch was originally intended to resolve).

I'm

Quoted 2 lines

certainly not the expert here, but am willing to help out.

To test this particular case, build meta-toolchain and install it in a different location than the default one. Then, just do a 'readelf -s" on any qemu binary and make sure the .interp section has a size of 0x1000 bytes.

Quoted 4 lines

If it does, then it's ok to drop the patch. That patch was needed because qemu happened to use their own linker scripts and, in order to have the SDK relocatable, we needed to reseve space in the .interp section to squeeze the new path.

Thanks Laurentiu - I did validate that the interp section looks to be 0x1000 bytes for the qemu-* binaries:

$ /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/qemu-system-arm --version
QEMU emulator version 1.6.1, Copyright (c) 2003-2008 Fabrice Bellard

$ readelf -S
/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/qemu-system-arm

There are 29 section headers, starting at offset 0x5a14b8:

Section Headers:

  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .interp           PROGBITS         0000000000000270  00000270
       0000000000001000  0000000000000000   A       0     0     1
  [ 2] .note.ABI-tag     NOTE             0000000000001270  00001270
       0000000000000020  0000000000000000   A       0     0     4

[ 3] .note.gnu.build-i NOTE 0000000000001290 00001290
...

If anyone has any other suggestions to test, I will gladly attempt them before posting a v2.

Cheers!
-Chris

#5 lore raw
Quoted 59 lines · Chris Patterson

On Tue, Oct 29, 2013 at 3:27 AM, Laurentiu Palcu <[email protected] <mailto:[email protected]>> wrote:

Hi Chris,

On Mon, Oct 28, 2013 at 07:54:51PM -0400, Chris Patterson wrote:
>
> I'm not terribly familiar with the nativesdk, and (foolishly)
neglected to test
> that. However, I looked into it, and it looks like the
relocatable_sdk.patch
> affects a linker script that is no longer available. I dropped
the patch and
> tested installing an oe-core sdk sysroot (via bitbake -c populate_sdk > core-image-minimal) and qemu appears to work fine from within the sdk > environment.
>
> I'm open to suggestions for further testing this upgrade
(particularly a case
> to cover what relocatable_sdk.patch was originally intended to
resolve). I'm
> certainly not the expert here, but am willing to help out. >
To test this particular case, build meta-toolchain and install it in a different location than the default one. Then, just do a 'readelf -s" on any qemu binary and make sure the .interp section has a size of 0x1000 bytes.

If it does, then it's ok to drop the patch. That patch was needed because qemu happened to use their own linker scripts and, in order to have the SDK relocatable, we needed to reseve space in the .interp section to squeeze the new path.

Thanks Laurentiu - I did validate that the interp section looks to be 0x1000 bytes for the qemu-* binaries:

$ /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/qemu-system-arm --version
QEMU emulator version 1.6.1, Copyright (c) 2003-2008 Fabrice Bellard

$ readelf -S
/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/qemu-system-arm

There are 29 section headers, starting at offset 0x5a14b8:

Section Headers:

   [Nr] Name              Type             Address           Offset
        Size              EntSize          Flags  Link  Info  Align
   [ 0]                   NULL             0000000000000000  00000000
        0000000000000000  0000000000000000           0     0     0
   [ 1] .interp           PROGBITS         0000000000000270  00000270
        0000000000001000  0000000000000000   A       0     0     1
   [ 2] .note.ABI-tag     NOTE             0000000000001270  00001270
        0000000000000020  0000000000000000   A       0     0     4
Quoted 6 lines

[ 3] .note.gnu.build-i NOTE 0000000000001290 00001290
...

If anyone has any other suggestions to test, I will gladly attempt them before posting a v2.

Your last message said you tested core-image-minimal, did you do any testing with a graphical image like core-image sato? We really apperciate the work you put in here.

Thanks
Sau!

Quoted 2 lines

Cheers!
-Chris

#6 lore raw
Quoted 69 lines · Saul Wold
Quoted 67 lines · Chris Patterson

On Tue, Oct 29, 2013 at 3:27 AM, Laurentiu Palcu
<[email protected] <mailto:laurentiu.palcu@intel.**com<[email protected]>>> wrote:

Hi Chris,

On Mon, Oct 28, 2013 at 07:54:51PM -0400, Chris Patterson wrote:
>
> I'm not terribly familiar with the nativesdk, and (foolishly)
neglected to test
> that. However, I looked into it, and it looks like the
relocatable_sdk.patch
> affects a linker script that is no longer available. I dropped
the patch and
> tested installing an oe-core sdk sysroot (via bitbake -c
populate_sdk
> core-image-minimal) and qemu appears to work fine from within the
sdk
> environment.
>
> I'm open to suggestions for further testing this upgrade
(particularly a case
> to cover what relocatable_sdk.patch was originally intended to
resolve). I'm
> certainly not the expert here, but am willing to help out. >
To test this particular case, build meta-toolchain and install it in a different location than the default one. Then, just do a 'readelf -s" on any qemu binary and make sure the .interp section has a size of 0x1000 bytes.

If it does, then it's ok to drop the patch. That patch was needed because qemu happened to use their own linker scripts and, in order to have the SDK relocatable, we needed to reseve space in the .interp section to squeeze the new path.

Thanks Laurentiu - I did validate that the interp section looks to be 0x1000 bytes for the qemu-* binaries:

$ /usr/local/oecore-x86_64/**sysroots/x86_64-oesdk-linux/** usr/bin/qemu-system-arm
--version
QEMU emulator version 1.6.1, Copyright (c) 2003-2008 Fabrice Bellard

$ readelf -S
/usr/local/oecore-x86_64/**sysroots/x86_64-oesdk-linux/**
usr/bin/qemu-system-arm

There are 29 section headers, starting at offset 0x5a14b8:

Section Headers:

   [Nr] Name              Type             Address           Offset
        Size              EntSize          Flags  Link  Info  Align
   [ 0]                   NULL             0000000000000000  00000000
        0000000000000000  0000000000000000           0     0     0
   [ 1] .interp           PROGBITS         0000000000000270  00000270
        0000000000001000  0000000000000000   A       0     0     1
   [ 2] .note.ABI-tag     NOTE             0000000000001270  00001270
        0000000000000020  0000000000000000   A       0     0     4

[ 3] .note.gnu.build-i NOTE 0000000000001290 00001290
...

Quoted 9 lines
Quoted 4 lines

If anyone has any other suggestions to test, I will gladly attempt them before posting a v2.

Your last message said you tested core-image-minimal, did you do any testing with a graphical image like core-image sato? We really apperciate the work you put in here.

I built core-image-sato for qemuarm and it appears to work fine. Are there any other typical methods/scripts which invoke nativesdk-qemu or qemu-native besides runqemu? runqemu works fine for qemu-native, but runqemu doesn't work for me within the sdk (missing python fnctl module dependency). Instead I have tested nativesdk-qemu by directly invoking qemu-*.

Thanks

Quoted 7 lines

Thanks
Sau!

Cheers!

Quoted 2 lines

-Chris