Allow backtracing through ____longjmp_chk.

This commit is contained in:
Andreas Schwab 2009-06-26 17:10:59 +02:00
parent a879c2cb17
commit bb87239976
3 changed files with 23 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2009-06-26 Andreas Schwab <aschwab@redhat.com>
* sysdeps/powerpc/powerpc32/____longjmp_chk.S (CHECK_SP): Save lr
before call.
* sysdeps/powerpc/powerpc64/____longjmp_chk.S (CHECK_SP):
Likewise.
2009-06-26 Ulrich Drepper <drepper@redhat.com>
* resolv/resolv.h: Define RES_SNGLKUPREOP.

View File

@ -49,8 +49,16 @@
#define CHECK_SP(reg) \
cmplw reg, r1; \
bge+ .Lok; \
cfi_remember_state; \
mflr r0; \
stwu r1,-16(r1); \
cfi_adjust_cfa_offset (16); \
stw r0,20(r1); \
cfi_offset (lr, 4); \
LOAD_ARG; \
bl HIDDEN_JUMPTARGET (__fortify_fail); \
nop; \
cfi_restore_state; \
.Lok:
#include <__longjmp-common.S>

View File

@ -32,8 +32,16 @@
#define CHECK_SP(reg) \
cmpld reg, r1; \
bge+ .Lok; \
cfi_remember_state; \
mflr r0; \
std r0,16(r1); \
stdu r1,-112(r1); \
cfi_adjust_cfa_offset (112); \
cfi_offset (lr, 16); \
ld r3,.LC1@toc(2); \
bl HIDDEN_JUMPTARGET (__fortify_fail); \
nop; \
cfi_restore_state; \
.Lok:
#include <__longjmp-common.S>