This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [BZ 16372] fixing tst-longjmp_chk2 on ia64


On Friday 27 December 2013 06:22:08 Andreas Schwab wrote:
> Mike Frysinger <vapier@gentoo.org> writes:
> > i was going through the outstanding ia64 test failures when i came across
> > tst- longjmp_chk2.  that test is designed to make sure the longjmp
> > fortify logic handles signal stacks correctly which the current ia64
> > code does not.  to implement this, you have to call sigaltstack from asm
> > code, and my ia64 skills are bad :).
> > 
> > here's what i've got so far:
> > #define CHECK_RSP(reg) \
> >         /* First see if target stack is within current one.  */ \
> >         cmp.ltu p0, p8 = reg, r12;                              \
> > (p8)    br.cond.dpnt .Lok;;                                     \
> >                                                                 \
> >         /* Maybe it's an alternative signal stack.  */          \
> >         adds r34 = -sizeSS, r12;                                \
> 
> How did you allocate the space for the stack_t?

afaik, r12 is the sp, so this line is allocating stack_t using the current 
stack.  just before the syscall, i update r12:
	mov r12 = r9;

in a previous version i was using r9 instead of r34 ... guess i need to update 
this line too so the stack is properly adjusted before calling the kernel.
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]