Hi release team,
I would like to upload a version of qemu to squeeze in order to fix a
critical bug on mips(el) systems. Installing qemu-user-static along with
binfmt-support (which is a recommended package) simply renders the
system unusable. The bug is due to the packaging, and I have just
uploaded the fix to unstable.
While I am doing an upload to squeeze, I would like to fix another bug
concerning mips(el) hosts. Depending on the CPU (especially on the cache
properties), qemu-system-* might crash very early during the boot
process, basically making this package useless. The patch is a
one-liner fix, is already present in upstream for a few weeks and in
unstable for a bit more than a week.
I have attached the proposed patch below, would it be ok to upload it
into squeeze?
Thanks,
Aurelien
diff -u qemu-0.12.5+dfsg/debian/changelog qemu-0.12.5+dfsg/debian/changelog
--- qemu-0.12.5+dfsg/debian/changelog
+++ qemu-0.12.5+dfsg/debian/changelog
@@ -1,3 +1,11 @@
+qemu (0.12.5+dfsg-3squeeze1) squeeze-proposed-updates; urgency=low
+
+ * Don't register qemu-mips(el) with binfmt on mips(el). Closes:
+ #618369.
+ * mips hosts: fix branch target change during code retranslation.
+
+ -- Aurelien Jarno <aurel32@debian.org> Thu, 17 Mar 2011 22:38:30 +0100
+
qemu (0.12.5+dfsg-3) unstable; urgency=medium
* qemu-user-static:
diff -u qemu-0.12.5+dfsg/debian/rules qemu-0.12.5+dfsg/debian/rules
--- qemu-0.12.5+dfsg/debian/rules
+++ qemu-0.12.5+dfsg/debian/rules
@@ -47,6 +47,12 @@
# http://bugs.debian.org/604712
BINFMT_TARGETS=$(filter-out i386 x86_64, $(ALL_BINFMT_TARGETS))
endif
+ifeq ($(DEB_HOST_ARCH),mips)
+BINFMT_TARGETS=$(filter-out mips, $(ALL_BINFMT_TARGETS))
+endif
+ifeq ($(DEB_HOST_ARCH),mipsel)
+BINFMT_TARGETS=$(filter-out mipsel, $(ALL_BINFMT_TARGETS))
+endif
ifeq ($(DEB_HOST_ARCH),powerpc)
BINFMT_TARGETS=$(filter-out ppc, $(ALL_BINFMT_TARGETS))
endif
diff -u qemu-0.12.5+dfsg/debian/patches/series qemu-0.12.5+dfsg/debian/patches/series
--- qemu-0.12.5+dfsg/debian/patches/series
+++ qemu-0.12.5+dfsg/debian/patches/series
@@ -3,4 +3,5 @@
05_bochs_vbe.diff
06_sh4.diff
+07_tcg-mips-fix-branch-target-change-during-code-retran.patch
99_stable.diff
security/leftover.patch
only in patch2:
unchanged:
--- qemu-0.12.5+dfsg.orig/debian/patches/07_tcg-mips-fix-branch-target-change-during-code-retran.patch
+++ qemu-0.12.5+dfsg/debian/patches/07_tcg-mips-fix-branch-target-change-during-code-retran.patch
@@ -0,0 +1,26 @@
+From d43ffce14023df871d6065eb864d1f41eb441f37 Mon Sep 17 00:00:00 2001
+From: Aurelien Jarno <aurelien@aurel32.net>
+Date: Thu, 6 Jan 2011 22:43:14 +0100
+Subject: [PATCH] tcg/mips: fix branch target change during code retranslation
+
+TCG on MIPS was trying to avoid changing the branch offset, but didn't
+due to a stupid typo. Fix it.
+
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ tcg/mips/tcg-target.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/tcg/mips/tcg-target.c b/tcg/mips/tcg-target.c
+index 2af7a2e..4e92a50 100644
+--- a/tcg/mips/tcg-target.c
++++ b/tcg/mips/tcg-target.c
+@@ -352,7 +352,7 @@ static inline void tcg_out_opc_imm(TCGContext *s, int opc, int rt, int rs, int i
+ static inline void tcg_out_opc_br(TCGContext *s, int opc, int rt, int rs)
+ {
+ /* We need to keep the offset unchanged for retranslation */
+- uint16_t offset = (uint16_t)(*(uint32_t *) &s->code_ptr);
++ uint16_t offset = (uint16_t)(*(uint32_t *) s->code_ptr);
+
+ tcg_out_opc_imm(s, opc, rt, rs, offset);
+ }
--
Aurelien Jarno GPG: 1024D/F1BCDB73
aurelien@aurel32.net http://www.aurel32.net
Attachment:
signature.asc
Description: Digital signature