diff options
author | Thorsten Johannvorderbrueggen <thorsten.johannvorderbrueggen@t-online.de> | 2016-08-25 15:17:22 (GMT) |
---|---|---|
committer | Alexey Neyman <stilor@att.net> | 2016-11-18 00:17:22 (GMT) |
commit | 18b5382e9c535f7f530fdd3abbe33ef18629a042 (patch) | |
tree | 8991321c11782d4c4bcdb29d84e46f1fcbe9a846 /patches/gcc/4.9.4/873-xtensa-fix-_Unwind_GetCFA.patch | |
parent | f0bb72b741510d1a00ddbc041079f05adc4898e1 (diff) |
add support for gcc 4.9.4
Diffstat (limited to 'patches/gcc/4.9.4/873-xtensa-fix-_Unwind_GetCFA.patch')
-rw-r--r-- | patches/gcc/4.9.4/873-xtensa-fix-_Unwind_GetCFA.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/patches/gcc/4.9.4/873-xtensa-fix-_Unwind_GetCFA.patch b/patches/gcc/4.9.4/873-xtensa-fix-_Unwind_GetCFA.patch new file mode 100644 index 0000000..dc40513 --- /dev/null +++ b/patches/gcc/4.9.4/873-xtensa-fix-_Unwind_GetCFA.patch @@ -0,0 +1,40 @@ +From 15c7c4d39b317f0d902ef28fd43eca5c3369f891 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 35f7797..ef6b900 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 + |