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: Consensus on MT-, AS- and AC-Safety docs.


On Wed, 27 Nov 2013, Florian Weimer wrote:

> On 11/20/2013 09:46 PM, Rich Felker wrote:
> 
> > All AS-safe functions have the potential to modify errno (since all
> > functions in the standard library do); many are even required to
> > modify it. When using any library function in a signal handler, it's
> > the programmer's responsibility to save errno and restore its value
> > before returning.
> 
> I think we should do that in the code that wraps the signal handler call, to
> address this class of errors once and for all.  Is this feasible?

On many architectures the signal trampoline is provided by the kernel and 
so has no access to libc implementation details like errno.  As far as I 
understand, even when provided by libc all it does is call the sigreturn 
syscall and provide appropriate unwind information for the registers the 
kernel saved on the stack - that is, there is no userspace code called 
before the signal handler that would have a chance to save errno.

-- 
Joseph S. Myers
joseph@codesourcery.com


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