diff options
author | John-Mark Bell <jmb@netsurf-browser.org> | 2022-06-03 23:27:50 +0100 |
---|---|---|
committer | John-Mark Bell <jmb@netsurf-browser.org> | 2022-11-02 18:46:05 +0000 |
commit | 7c4aed230e7632eb3f67edc317676d4abece59a1 (patch) | |
tree | 1aaac35ae95de794448621f4cf946ffda47831fe | |
parent | cda9556a19f7187cce8aa504150414c87554c694 (diff) | |
download | toolchains-7c4aed230e7632eb3f67edc317676d4abece59a1.tar.gz toolchains-7c4aed230e7632eb3f67edc317676d4abece59a1.tar.bz2 |
Revert "Fix stack backtraces from UnixLib"
This reverts commit 7f53178a4cdbed363328a5fa60bead742bd628aa.
It turns out that the situation with stack frames in the EABI
toolchain is currently completely inconsistent. Some functions
end up with APCS-32 stack frames, others with AAPCS frames. It
is not reliably possible to distinguish which is which when
unwinding the stack to generate a backtrace. It also means that
the signal stack frame created in _signal.s would need to reflect
whatever reality made sense for the function that aborted.
Give up.
-rw-r--r-- | arm-riscos-gnueabihf/recipes/patches/gccsdk/unixlib-backtrace.p | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/arm-riscos-gnueabihf/recipes/patches/gccsdk/unixlib-backtrace.p b/arm-riscos-gnueabihf/recipes/patches/gccsdk/unixlib-backtrace.p deleted file mode 100644 index 2c971cd..0000000 --- a/arm-riscos-gnueabihf/recipes/patches/gccsdk/unixlib-backtrace.p +++ /dev/null @@ -1,37 +0,0 @@ ---- libunixlib/signal/post.c 2021-06-15 21:42:03.000000000 +0100 -+++ libunixlib/signal/post.c 2022-06-03 19:52:18.316234729 +0100 -@@ -307,6 +307,7 @@ - } - - #ifdef __ARM_EABI__ -+ const unsigned int *pc = NULL; - const unsigned int * const lr = (unsigned int *)fp[LR_OFFSET]; - fprintf (stderr, " (%8x) lr: %8x", - (unsigned int)fp, (unsigned int)lr); -@@ -350,7 +351,6 @@ - #endif - oldfp = fp; - fp = (const unsigned int *)fp[FP_OFFSET]; --#ifndef __ARM_EABI__ - if (__ul_callbackfp != NULL && fp == __ul_callbackfp) - { - /* At &oldfp[1] = cpsr, a1-a4, v1-v6, sl, fp, ip, sp, lr, pc */ -@@ -424,7 +424,6 @@ - - fputs ("\n\n", stderr); - } --#endif - } - - fputc ('\n', stderr); ---- libunixlib/signal/_signal.s 2020-05-31 20:11:06.000000000 +0100 -+++ libunixlib/signal/_signal.s 2022-06-03 19:45:32.872892834 +0100 -@@ -761,7 +761,7 @@ - LDR a3, [sp, #14*4 + 4] @ saved USR lr - LDR a1, [sp, #11*4 + 4] @ saved USR fp - STMFD sp!, {a1, a3} @ create signal frame -- MOV fp, sp @ FIXME: check this with compiler output for similar function -+ ADD fp, sp, #4 @ FIXME: check this with compiler output for similar function - #else - @ Create an APCS-32 compilant signal stack frame - ADR a4, __h_cback + 4*3 @ point at handler name for backtrace |