diff --git a/0020-linux-user-arm-no-tb_flush-on-reset.patch b/0020-linux-user-arm-no-tb_flush-on-reset.patch new file mode 100644 index 0000000..553dc35 --- /dev/null +++ b/0020-linux-user-arm-no-tb_flush-on-reset.patch @@ -0,0 +1,31 @@ +From dd7f9e4fea6ca5444233f75e7329738e08e773af Mon Sep 17 00:00:00 2001 +From: Alexander Graf +Date: Tue, 29 May 2012 15:30:01 +0200 +Subject: [PATCH] linux-user: arm: no tb_flush on reset + +When running automoc4 as linux-user guest program, it segfaults right after +it creates a thread. Bisecting pointed to commit a84fac1426 which introduces +tb_flush on reset. + +So something in our thread creation is broken. But for now, let's revert the +change to at least get a working build again. +--- + target-arm/cpu.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/target-arm/cpu.c b/target-arm/cpu.c +index 7eb323a..2e90e56 100644 +--- a/target-arm/cpu.c ++++ b/target-arm/cpu.c +@@ -117,7 +117,11 @@ static void arm_cpu_reset(CPUState *s) + * bake assumptions about into translated code, so we need to + * tb_flush(). + */ ++#if !defined(CONFIG_USER_ONLY) ++ /* XXX hack alert! automoc4 segaults after spawning a new thread with this ++ flush enabled */ + tb_flush(env); ++#endif + } + + static inline void set_feature(CPUARMState *env, int feature) diff --git a/qemu.changes b/qemu.changes index 8664a7d..f14ed8f 100644 --- a/qemu.changes +++ b/qemu.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed May 30 20:19:05 CEST 2012 - agraf@suse.de + +- revert commit a84fac1426 to fix automoc4 for arm + ------------------------------------------------------------------- Tue May 29 15:52:47 UTC 2012 - agraf@suse.com diff --git a/qemu.spec b/qemu.spec index 41b7f08..71ad6b7 100644 --- a/qemu.spec +++ b/qemu.spec @@ -43,6 +43,7 @@ Patch0016: 0016-PPC-KVM-Disable-mmu-notifier-check..patch Patch0017: 0017-linux-user-fix-segfault-deadlock.pa.patch Patch0018: 0018-linux-user-binfmt-support-host-bina.patch Patch0019: 0019-linux-user-ARM-Ignore-immediate-val.patch +Patch0020: 0020-linux-user-arm-no-tb_flush-on-reset.patch # this is to make lint happy Source300: rpmlintrc Source400: update_git.sh @@ -132,6 +133,7 @@ run cross architectures builds %patch0017 -p1 %patch0018 -p1 %patch0019 -p1 +%patch0020 -p1 %build # build QEMU