Accepting request 295056 from home:a_faerber:branches:Virtualization

Fix bios-tables-test failures on ppc

OBS-URL: https://build.opensuse.org/request/show/295056
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=244
This commit is contained in:
Andreas Färber 2015-04-08 22:46:22 +00:00 committed by Git OBS Bridge
parent 7ec08f4da1
commit b172f44bec
7 changed files with 75 additions and 0 deletions

View File

@ -0,0 +1,48 @@
From 4a886245fce97b79af5841d6b0849124c8d30243 Mon Sep 17 00:00:00 2001
From: Peter Maydell <peter.maydell@linaro.org>
Date: Wed, 8 Apr 2015 20:57:09 +0100
Subject: [PATCH] tcg/tcg-op.c: Fix ld/st of 64 bit values on 32-bit bigendian
hosts
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Commit 951c6300f7 out-of-lined the 32-bit-host versions of
tcg_gen_{ld,st}_i64, but in the process it inadvertently changed
an #ifdef HOST_WORDS_BIGENDIAN to #ifdef TCG_TARGET_WORDS_BIGENDIAN.
Since the latter doesn't get defined anywhere this meant we always
took the "LE host" codepath, and stored the two halves of the value
in the wrong order on BE hosts. This typically breaks any 64-bit
guest on a 32-bit BE host completely, and will have possibly more
subtle effects even for 32-bit guests.
Switch the ifdef back to HOST_WORDS_BIGENDIAN.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
tcg/tcg-op.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c
index f7a2767..2b6be75 100644
--- a/tcg/tcg-op.c
+++ b/tcg/tcg-op.c
@@ -808,7 +808,7 @@ void tcg_gen_ld_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset)
{
/* Since arg2 and ret have different types,
they cannot be the same temporary */
-#ifdef TCG_TARGET_WORDS_BIGENDIAN
+#ifdef HOST_WORDS_BIGENDIAN
tcg_gen_ld_i32(TCGV_HIGH(ret), arg2, offset);
tcg_gen_ld_i32(TCGV_LOW(ret), arg2, offset + 4);
#else
@@ -819,7 +819,7 @@ void tcg_gen_ld_i64(TCGv_i64 ret, TCGv_ptr arg2, tcg_target_long offset)
void tcg_gen_st_i64(TCGv_i64 arg1, TCGv_ptr arg2, tcg_target_long offset)
{
-#ifdef TCG_TARGET_WORDS_BIGENDIAN
+#ifdef HOST_WORDS_BIGENDIAN
tcg_gen_st_i32(TCGV_HIGH(arg1), arg2, offset);
tcg_gen_st_i32(TCGV_LOW(arg1), arg2, offset + 4);
#else

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Wed Apr 8 20:47:40 UTC 2015 - afaerber@suse.de
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3
* Patches added:
0038-tcg-tcg-op.c-Fix-ld-st-of-64-bit-va.patch
-------------------------------------------------------------------
Wed Apr 8 13:10:27 UTC 2015 - afaerber@suse.de

View File

@ -62,6 +62,7 @@ Patch0034: 0034-virtfs-proxy-helper-Provide-__u64-f.patch
Patch0035: 0035-configure-Enable-PIE-for-ppc-and-pp.patch
Patch0036: 0036-qtest-Increase-socket-timeout.patch
Patch0037: 0037-AIO-Reduce-number-of-threads-for-32.patch
Patch0038: 0038-tcg-tcg-op.c-Fix-ld-st-of-64-bit-va.patch
# Please do not add patches manually here, run update_git.sh.
# this is to make lint happy
Source300: qemu-rpmlintrc
@ -158,6 +159,7 @@ This sub-package contains development files for the Smartcard library.
%patch0035 -p1
%patch0036 -p1
%patch0037 -p1
%patch0038 -p1
%build
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Wed Apr 8 20:47:36 UTC 2015 - afaerber@suse.de
- Fix 64-bit TCG stores on 32-bit Big Endian hosts (ppc)
0038-tcg-tcg-op.c-Fix-ld-st-of-64-bit-va.patch
* Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3
-------------------------------------------------------------------
Wed Apr 8 13:10:27 UTC 2015 - afaerber@suse.de

View File

@ -62,6 +62,7 @@ Patch0034: 0034-virtfs-proxy-helper-Provide-__u64-f.patch
Patch0035: 0035-configure-Enable-PIE-for-ppc-and-pp.patch
Patch0036: 0036-qtest-Increase-socket-timeout.patch
Patch0037: 0037-AIO-Reduce-number-of-threads-for-32.patch
Patch0038: 0038-tcg-tcg-op.c-Fix-ld-st-of-64-bit-va.patch
# Please do not add patches manually here, run update_git.sh.
# this is to make lint happy
Source300: qemu-rpmlintrc
@ -152,6 +153,7 @@ run cross-architecture builds.
%patch0035 -p1
%patch0036 -p1
%patch0037 -p1
%patch0038 -p1
%build
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Wed Apr 8 20:47:32 UTC 2015 - afaerber@suse.de
- Fix 64-bit TCG stores on 32-bit Big Endian hosts (ppc)
0038-tcg-tcg-op.c-Fix-ld-st-of-64-bit-va.patch
* Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3
-------------------------------------------------------------------
Wed Apr 8 13:10:26 UTC 2015 - afaerber@suse.de

View File

@ -93,6 +93,7 @@ Patch0034: 0034-virtfs-proxy-helper-Provide-__u64-f.patch
Patch0035: 0035-configure-Enable-PIE-for-ppc-and-pp.patch
Patch0036: 0036-qtest-Increase-socket-timeout.patch
Patch0037: 0037-AIO-Reduce-number-of-threads-for-32.patch
Patch0038: 0038-tcg-tcg-op.c-Fix-ld-st-of-64-bit-va.patch
# Please do not add QEMU patches manually here.
# Run update_git.sh to regenerate this queue.
@ -510,6 +511,7 @@ This package provides a service file for starting and stopping KSM.
%patch0035 -p1
%patch0036 -p1
%patch0037 -p1
%patch0038 -p1
%if %{build_x86_fw_from_source}
pushd roms/seabios