summaryrefslogtreecommitdiff
path: root/cpu-exec.c
diff options
context:
space:
mode:
authorbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>2008-06-02 01:01:18 +0000
committerbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>2008-06-02 01:01:18 +0000
commit5c49b363dc1094b64fe5d1ea54194fe937deccaf (patch)
treea88d15d90d56e809317d7ff9937691bcc19ea22a /cpu-exec.c
parent4872aa135da0409811968ae295e1f45c065d26b4 (diff)
Restore ARM signal handler compilation on glibc < 2.5 (Blue Swirl).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4641 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'cpu-exec.c')
-rw-r--r--cpu-exec.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/cpu-exec.c b/cpu-exec.c
index ea0e5b11c..4751d52c8 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -1320,7 +1320,11 @@ int cpu_signal_handler(int host_signum, void *pinfo,
unsigned long pc;
int is_write;
+#if (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ =< 3))
+ pc = uc->uc_mcontext.gregs[R15];
+#else
pc = uc->uc_mcontext.arm_pc;
+#endif
/* XXX: compute is_write */
is_write = 0;
return handle_cpu_signal(pc, (unsigned long)info->si_addr,