aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2021-09-29 09:05:36 -0400
committerLaurent Vivier <laurent@vivier.eu>2021-10-01 12:03:48 +0200
commita22fccd8b7de9e21fc31cc048e2bf9c15947f4a4 (patch)
tree2591f2958931627425c15849fe1c3df61f17e111
parentc8ef02b1acf0d78e909c6cbd38ed60ecc5ce52ff (diff)
downloadqemu-a22fccd8b7de9e21fc31cc048e2bf9c15947f4a4.zip
qemu-a22fccd8b7de9e21fc31cc048e2bf9c15947f4a4.tar.gz
qemu-a22fccd8b7de9e21fc31cc048e2bf9c15947f4a4.tar.bz2
linux-user/hppa: Document non-use of setup_sigtramp
We cannot use a raw sigtramp page for hppa, but must wait for full vdso support. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20210929130553.121567-10-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
-rw-r--r--linux-user/hppa/target_signal.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/linux-user/hppa/target_signal.h b/linux-user/hppa/target_signal.h
index 7f52536..d558119 100644
--- a/linux-user/hppa/target_signal.h
+++ b/linux-user/hppa/target_signal.h
@@ -71,4 +71,18 @@ typedef struct target_sigaltstack {
/* mask for all SS_xxx flags */
#define TARGET_SS_FLAG_BITS TARGET_SS_AUTODISARM
+/*
+ * We cannot use a bare sigtramp page for hppa-linux.
+ *
+ * Unlike other guests where we use the instructions at PC to validate
+ * an offset from SP, the hppa libgcc signal frame fallback unwinding uses
+ * the PC address itself to find the frame. This is due to the fact that
+ * the hppa grows the stack upward, and the frame is of unknown size.
+ *
+ * TODO: We should be able to use a VDSO to address this, by providing
+ * proper unwind info for the sigtramp code, at which point the fallback
+ * unwinder will not be used.
+ */
+#define TARGET_ARCH_HAS_SIGTRAMP_PAGE 0
+
#endif /* HPPA_TARGET_SIGNAL_H */