[uClibc] Re: arm-nommu struct sigaction
Gregory Nutt
spudmonkey at racsa.co.cr
Wed Aug 27 22:54:23 UTC 2003
Hello, again,
I sent this too soon! (I've been working too hard today).
The trap handlers actually use old_sigaction which does match the
structure used by uClibc.
Greg
Gregory Nutt wrote:
> Hello, list(s),
>
> I have a question regarding the definition of 'struct sigaction.' In
> uClibc-0.9.20/include/bits/sigaction.h the definitions is (comments and
> unions eliminated for simplicity):
>
> struct sigaction
> {
> __sighandler_t sa_handler;
> __sigset_t sa_mask;
> int sa_flags;
> void (*sa_restorer) (void);
> };
>
> This struct definition has been in uClibc since (at least) 0.9.15.
>
> I am using uClinux with ARM7 (2.4.19-uc1). The definition of sigaction
> that I find in linux/asm-armnommu/signal.h is as follows. This
> structure is the same in the current CVS arm-nommu version 1.2 as well
> and it is for asm-m68knommu in my version).
>
> struct sigaction {
> __sighandler_t sa_handler;
> unsigned long sa_flags;
> void (*sa_restorer)(void);
> sigset_t sa_mask;
> };
>
> The symptom that I see is that, depending upon how uclib sets sa_mask,
> uClinux may think that SA_RESTORER is selected in sa_flags and opt to
> use an invalid sa_restorer and the system crashes upon return from a
> signal.
>
> According to 'man sigaction' uClibc is using a more closely correct
> definition and asm-armnommu/signal.h should be changed to match uClibc.
>
> Does that sound right? Comments anyone?
>
> Gregory Nutt
>
>
More information about the uClibc
mailing list