Remove pre-Solaris 11/SPARC unwinding support

* config/sparc/sol2-unwind.h [__arch64__] (sparc64_is_sighandler):
	Remove Solaris 9 and 10 support.
	(sparc_is_sighandler): Likewise.

From-SVN: r271715
This commit is contained in:
Rainer Orth 2019-05-28 17:27:51 +00:00 committed by Rainer Orth
parent a01d3b0481
commit e54b1a92ac
2 changed files with 8 additions and 90 deletions

View File

@ -1,3 +1,9 @@
2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/sparc/sol2-unwind.h [__arch64__] (sparc64_is_sighandler):
Remove Solaris 9 and 10 support.
(sparc_is_sighandler): Likewise.
2019-05-26 John David Anglin <danglin@gcc.gnu.org>
* config/pa/linux-unwind.h (pa32_fallback_frame_state): Add cast.

View File

@ -67,51 +67,7 @@ sparc64_is_sighandler (unsigned int *pc, void *cfa, int *nframes)
libc.so.1:
<call_user_handler+864>: mov %i1, %o1
<call_user_handler+868>: call __sighndlr
This is the same setup as for Solaris 10, see below. */
*nframes = 3;
else if (cuh_pattern == 0xd25fa7ef)
{
/* This matches the call_user_handler pattern in Solaris 10
libc.so.1:
<call_user_handler+988>: ldx [ %fp + 0x7ef ], %o1
<call_user_handler+992>: call __sighndlr
There are 2 cases so we look for the return address of the
caller's caller frame in order to do more pattern matching. */
unsigned long sah_address = *(unsigned long *)(cfa + 176 + 15*8);
if (sah_address && *(unsigned int *)(sah_address - 4) == 0x92100019)
/* We need to move up three frames:
<signal handler> <-- context->cfa
__sighndlr
call_user_handler
sigacthandler
<kernel> */
*nframes = 3;
else
/* The sigacthandler frame isn't present in the chain.
We need to move up two frames:
<signal handler> <-- context->cfa
__sighndlr
call_user_handler
<kernel> */
*nframes = 2;
}
else if (cuh_pattern == 0x9410001a || cuh_pattern == 0x9410001b)
/* This matches the call_user_handler pattern in Solaris 9
libthread.so.1:
<call_user_handler+600>: mov %i2, %o2
<call_user_handler+604>: call __sighndlr
This is the same setup as for Solaris 10, see above. */
<call_user_handler+868>: call __sighndlr */
*nframes = 3;
return 1;
@ -184,51 +140,7 @@ sparc_is_sighandler (unsigned int *pc, void *cfa, int *nframes)
libc.so.1:
<call_user_handler+876>: mov %i1, %o1
<call_user_handler+880>: call __sighndlr
This is the same setup as for Solaris 10, see below. */
*nframes = 3;
else if (cuh_pattern == 0xd407a04c)
{
/* This matches the call_user_handler pattern in Solaris 10
libc.so.1:
<call_user_handler+948>: ld [ %fp + 0x4c ], %o2
<call_user_handler+952>: call __sighndlr
There are 2 cases so we look for the return address of the
caller's caller frame in order to do more pattern matching. */
unsigned int sah_address = *(unsigned int *)(cfa + 96 + 15*4);
if (sah_address && *(unsigned int *)(sah_address - 4) == 0x92100019)
/* We need to move up three frames:
<signal handler> <-- context->cfa
__sighndlr
call_user_handler
sigacthandler
<kernel> */
*nframes = 3;
else
/* The sigacthandler frame isn't present in the chain.
We need to move up two frames:
<signal handler> <-- context->cfa
__sighndlr
call_user_handler
<kernel> */
*nframes = 2;
}
else if (cuh_pattern == 0x9410001a || cuh_pattern == 0x9410001b)
/* This matches the call_user_handler pattern in Solaris 9
libthread.so.1:
<call_user_handler+560>: mov %i2, %o2
<call_user_handler+564>: call __sighndlr
This is the same setup as for Solaris 10, see above. */
<call_user_handler+880>: call __sighndlr */
*nframes = 3;
return 1;