linux-mips
[Top] [All Lists]

Re: [PATCH, RFC] MIPS: Implement the getcontext API

To: David Daney <ddaney@caviumnetworks.com>
Subject: Re: [PATCH, RFC] MIPS: Implement the getcontext API
From: Ralf Baechle <ralf@linux-mips.org>
Date: Thu, 2 Apr 2009 15:29:36 +0200
Cc: Daniel Jacobowitz <dan@debian.org>, Brian Foster <brian.foster@innova-card.com>, "Maciej W. Rozycki" <macro@codesourcery.com>, linux-mips@linux-mips.org, libc-ports@sourceware.org, "Maciej W. Rozycki" <macro@linux-mips.org>
In-reply-to: <49AEAE1D.5030205@caviumnetworks.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <alpine.DEB.1.10.0902282326580.4064@tp.orcam.me.uk> <49AD6139.60209@caviumnetworks.com> <200903040919.29294.brian.foster@innova-card.com> <20090304121732.GA28381@caradoc.them.org> <49AEAE1D.5030205@caviumnetworks.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.18 (2008-05-17)
On Wed, Mar 04, 2009 at 08:36:45AM -0800, David Daney wrote:

>> That won't quite retain the ABI: you need to make sure everyone
>> locates it by using the stack pointer instead of the return pc.
>> Fortunately, GCC uses the return PC only for instruction matching
>> today.  I have a vague memory it used to use the stack pointer but
>> this was more reliable.
>
> That is correct.  Due to various errata the trampoline cannot always be  
> at a fixed offset to the signal context bits.  So we had to use the  
> return PC as you indicate.

To maintaine compatibility with old debuggers and possibly other software
that knows about the stackframe layout I wrote the signal code to only
use the larger alignment of the stackframe if a particular processor
requires it.

However one possible improvment would be to change the way a struct sigframe
or rt_sigframe is allocated on the stack such that not the beginning of
the structure is aligned but the rs_code field is kept aligned.  Would
such a change cause problems for gdb?

  Ralf

<Prev in Thread] Current Thread [Next in Thread>