From cb6ac802efea73605288f5d18e28611cbc97d9d2 Mon Sep 17 00:00:00 2001 From: Laurent Vivier Date: Tue, 24 Apr 2018 21:26:35 +0200 Subject: linux-user: define TARGET_ARCH_HAS_SETUP_FRAME Instead of calling setup_frame() conditionally to a list of known targets, define TARGET_ARCH_HAS_SETUP_FRAME if the target provides the function and call it only if the macro is defined. Move declarations of setup_frame() and setup_rt_frame() to linux-user/signal-common.h Signed-off-by: Laurent Vivier Reviewed-by: Richard Henderson Message-Id: <20180424192635.6027-21-laurent@vivier.eu> --- linux-user/signal.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'linux-user/signal.c') diff --git a/linux-user/signal.c b/linux-user/signal.c index 7f435c4606..a3022c2f04 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -873,18 +873,15 @@ static void handle_pending_signal(CPUArchState *cpu_env, int sig, } #endif /* prepare the stack frame of the virtual CPU */ -#if defined(TARGET_ABI_MIPSN32) || defined(TARGET_ABI_MIPSN64) \ - || defined(TARGET_OPENRISC) || defined(TARGET_TILEGX) \ - || defined(TARGET_PPC64) || defined(TARGET_HPPA) \ - || defined(TARGET_NIOS2) || defined(TARGET_X86_64) \ - || defined(TARGET_RISCV) || defined(TARGET_XTENSA) - /* These targets do not have traditional signals. */ - setup_rt_frame(sig, sa, &k->info, &target_old_set, cpu_env); -#else - if (sa->sa_flags & TARGET_SA_SIGINFO) +#if defined(TARGET_ARCH_HAS_SETUP_FRAME) + if (sa->sa_flags & TARGET_SA_SIGINFO) { setup_rt_frame(sig, sa, &k->info, &target_old_set, cpu_env); - else + } else { setup_frame(sig, sa, &target_old_set, cpu_env); + } +#else + /* These targets do not have traditional signals. */ + setup_rt_frame(sig, sa, &k->info, &target_old_set, cpu_env); #endif if (sa->sa_flags & TARGET_SA_RESETHAND) { sa->_sa_handler = TARGET_SIG_DFL; -- cgit 1.4.1