Hi everyone,
In  my opinion this issue is not mips compiler bug.
Simulating this issue on i386, amd64, mips and mipsel architectures I got same 
results.

In definition of struct sigaction there is a difference between architectures 
due to the error occur.

Definition for mips:
struct sigaction
  {
    unsigned int sa_flags;
    union
      {
 __sighandler_t sa_handler;
 void (*sa_sigaction) (int, siginfo_t *, void *);
      }
    __sigaction_handler;
    __sigset_t sa_mask;
    void (*sa_restorer) (void);
    int sa_resv[1];
  };

Definition for i686:
struct sigaction
  {
    union
      {
 __sighandler_t sa_handler;
 void (*sa_sigaction) (int, siginfo_t *, void *);
      }
    __sigaction_handler;
    __sigset_t sa_mask;
    int sa_flags;
    void (*sa_restorer) (void);
  };


If first attribute is not union, struct can not be initialized with {{0}} with 
g++ compiler.
For that reason {} should be used for struct initialization.
This will properly initialize instance of structure sigaction on both 
architectures.

Reply via email to