The value of get_os_release may be controlled by a command
line option. Since fdpic was added in v4.14, and v2 frame
were added in v2.6.12, this makes no change under normal conditions.
Cc: qemu-arm@nongnu.org
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
linux-user/arm/signal.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/linux-user/arm/signal.c b/linux-user/arm/signal.c
index cb65623965..2d30345fc2 100644
--- a/linux-user/arm/signal.c
+++ b/linux-user/arm/signal.c
@@ -167,7 +167,14 @@ static inline int valid_user_regs(CPUARMState *regs)
static bool v2_frame(void)
{
- return get_osversion() >= 0x020612;
+ /*
+ * We do not create fdpic trampolines for v1 frames.
+ * Thus we force v2 frames, regardless of what uname says.
+ * Support for fdpic dates from Linux 4.14, so this is not
+ * really a behaviour change.
+ */
+ int is_fdpic = info_is_fdpic(((TaskState *)thread_cpu->opaque)->info);
+ return is_fdpic || get_osversion() >= 0x020612;
}
static void
--
2.25.1