summaryrefslogtreecommitdiff
path: root/patches/gcc/5.4.0/873-xtensa-fix-_Unwind_GetCFA.patch
diff options
context:
space:
mode:
authorkozyilmaz <kazim@monolytic.com>2016-08-24 08:33:24 (GMT)
committerkozyilmaz <kazim@monolytic.com>2016-08-24 08:33:24 (GMT)
commitdeaa4b8ded066f0b32b4d6be28756d2d7d68d7d6 (patch)
treee58f6f9b0bb442cf1b50b301bc73f7a1946724f2 /patches/gcc/5.4.0/873-xtensa-fix-_Unwind_GetCFA.patch
parent11cb2ddd43fd1ff493f4b7cd63f1cf654294165f (diff)
xgcc: Update gcc 5 to 5.4.0
patches synced with buildroot trunk and: 110-xtensa-implement-trap-pattern.patch (copied to 5.4.0 patches) 130-build_gcc-5_with_gcc-6.patch (upstreamed in 5.4.0, dropped) 370-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch (copied to 5.4.0 patches) 380-gcc-plugin-POSIX-include-sys-select-h.patch (copied to 5.4.0 patches) 910-nios2-bad-multilib-default.patch (copied to 5.4.0 patches)
Diffstat (limited to 'patches/gcc/5.4.0/873-xtensa-fix-_Unwind_GetCFA.patch')
-rw-r--r--patches/gcc/5.4.0/873-xtensa-fix-_Unwind_GetCFA.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/patches/gcc/5.4.0/873-xtensa-fix-_Unwind_GetCFA.patch b/patches/gcc/5.4.0/873-xtensa-fix-_Unwind_GetCFA.patch
new file mode 100644
index 0000000..2d8eb7c
--- /dev/null
+++ b/patches/gcc/5.4.0/873-xtensa-fix-_Unwind_GetCFA.patch
@@ -0,0 +1,40 @@
+From b33905dc310f475ddbde4c9fb7230724b2068a2b Mon Sep 17 00:00:00 2001
+From: Max Filippov <jcmvbkbc@gmail.com>
+Date: Sat, 15 Aug 2015 05:12:11 +0300
+Subject: [PATCH 3/3] xtensa: fix _Unwind_GetCFA
+
+Returning context->cfa in _Unwind_GetCFA makes CFA point one stack frame
+higher than what was actually used by code at context->ra. This results
+in invalid CFA value in signal frames and premature unwinding completion
+in forced unwinding used by uClibc NPTL thread cancellation.
+Returning context->sp from _Unwind_GetCFA makes all CFA values valid and
+matching code that used them.
+
+2015-08-18 Max Filippov <jcmvbkbc@gmail.com>
+libgcc/
+ * config/xtensa/unwind-dw2-xtensa.c (_Unwind_GetCFA): Return
+ context->sp instead of context->cfa.
+
+Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
+---
+Backported from: r226964
+
+ libgcc/config/xtensa/unwind-dw2-xtensa.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libgcc/config/xtensa/unwind-dw2-xtensa.c b/libgcc/config/xtensa/unwind-dw2-xtensa.c
+index 82b0e63..8e579c7 100644
+--- a/libgcc/config/xtensa/unwind-dw2-xtensa.c
++++ b/libgcc/config/xtensa/unwind-dw2-xtensa.c
+@@ -130,7 +130,7 @@ _Unwind_GetGR (struct _Unwind_Context *context, int index)
+ _Unwind_Word
+ _Unwind_GetCFA (struct _Unwind_Context *context)
+ {
+- return (_Unwind_Ptr) context->cfa;
++ return (_Unwind_Ptr) context->sp;
+ }
+
+ /* Overwrite the saved value for register INDEX in CONTEXT with VAL. */
+--
+1.8.1.4
+