diff options
Diffstat (limited to 'toolchain/uClibc/patches-0.9.29/008-avr32_fix_sa_onstack.patch')
-rw-r--r-- | toolchain/uClibc/patches-0.9.29/008-avr32_fix_sa_onstack.patch | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/toolchain/uClibc/patches-0.9.29/008-avr32_fix_sa_onstack.patch b/toolchain/uClibc/patches-0.9.29/008-avr32_fix_sa_onstack.patch new file mode 100644 index 0000000..5a30861 --- /dev/null +++ b/toolchain/uClibc/patches-0.9.29/008-avr32_fix_sa_onstack.patch @@ -0,0 +1,26 @@ +From 974a769cc135bcfb1ea751db34a84ed6b5ceb509 Mon Sep 17 00:00:00 2001 +From: Haavard Skinnemoen <hskinnemoen@atmel.com> +Date: Fri, 7 Dec 2007 14:02:19 +0100 +Subject: [PATCH] AVR32: Fix sa_restorer when SA_ONSTACK is set + +I don't remember exactly why we decided to pick the caller's value of +sa_restorer when SA_ONSTACK is set, but it seems to break LTP's +sigaltstack testcase. Some users have reported problems with +sigaltstack as well; hopefully this will fix it. + +Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> +--- + libc/sysdeps/linux/avr32/sigaction.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +--- a/libc/sysdeps/linux/avr32/sigaction.c ++++ b/libc/sysdeps/linux/avr32/sigaction.c +@@ -30,7 +30,7 @@ int __libc_sigaction(int signum, const s + kact.k_sa_handler = act->sa_handler; + memcpy(&kact.sa_mask, &act->sa_mask, sizeof (kact.sa_mask)); + kact.sa_flags = act->sa_flags; +- if (kact.sa_flags & (SA_RESTORER | SA_ONSTACK)) ++ if (kact.sa_flags & SA_RESTORER) + kact.sa_restorer = act->sa_restorer; + else + kact.sa_restorer = __default_rt_sa_restorer; |