This is the mail archive of the 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: Saving errno around signal handlers

On 02/28/2014 08:58 AM, Florian Weimer wrote:
> On 02/28/2014 05:49 PM, Richard Henderson wrote:
>> On 02/28/2014 03:49 AM, Florian Weimer wrote:
>>> In all cases (kernel and glibc implementation), we can use a tail call to make
>>> sure that the stack layout looks like it is at present (at least on
>>> architectures with an available callee-saved register), and we would not have
>>> to adjust GDB and other tools.
>> How's that?  A tail call would not be able to "restore" anything afterward.
> We already have the restorer that calls sigreturn, and could add
>         movq    errno@gottpoff(%rip), %rdi
>         movl    %r12d, %fs:(%rdi)
> right before that.

Doesn't that sigreturn trampoline live in the kernel vdso?  At least for the
most popular of platforms.  Or is this proposal limited to forcing the use of
some form of SA_RESTORER by glibc?

I'll note that this *may* affect other tools, that have previously looked
through trampolines via code inspection.

But so long as this new trampoline has proper unwind info associated, I
personally don't care.  These older tools really ought to get updated.


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