- add patch to fix building of go (swi in thumb ignores imm)

OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=72
This commit is contained in:
Alexander Graf 2012-05-29 15:35:15 +00:00 committed by Git OBS Bridge
parent 8d07e67d37
commit 9f32a0a4ef
3 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,30 @@
From af0dbc540b4acc54ec9f4d1064402f75edb5a7ca Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 29 May 2012 17:28:07 +0200
Subject: [PATCH] linux-user: ARM: Ignore immediate value for svc in thumb mode
When running in thumb mode, Linux doesn't evaluate the immediate value
of the svc instruction, but instead just always assumes the syscall number
to be in r7.
This fixes executing go_bootstrap while building go for me.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
linux-user/main.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/linux-user/main.c b/linux-user/main.c
index 503ecfa..ed48276 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -823,8 +823,7 @@ void cpu_loop(CPUARMState *env)
} else if (n == ARM_NR_semihosting
|| n == ARM_NR_thumb_semihosting) {
env->regs[0] = do_arm_semihosting (env);
- } else if (n == 0 || n >= ARM_SYSCALL_BASE
- || (env->thumb && n == ARM_THUMB_SYSCALL)) {
+ } else if (n == 0 || n >= ARM_SYSCALL_BASE || env->thumb) {
/* linux syscall */
if (env->thumb || n == 0) {
n = env->regs[7];

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Tue May 29 15:34:55 UTC 2012 - agraf@suse.com
- add patch to fix building of go (swi in thumb ignores imm)
-------------------------------------------------------------------
Tue May 22 16:39:24 UTC 2012 - afaerber@suse.de

View File

@ -42,6 +42,7 @@ Patch0015: 0015-linux-user-be-silent-about-capget-f.patch
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
# this is to make lint happy
Source300: rpmlintrc
Source400: update_git.sh
@ -130,6 +131,7 @@ run cross architectures builds
%patch0016 -p1
%patch0017 -p1
%patch0018 -p1
%patch0019 -p1
%build
# build QEMU