Compile error: 'siginfo_t' is not declared using gcc-4.8.2 on RedHat, 6.4

John Dubchak lists@johndubchak.com
Tue Jan 28 18:22:00 GMT 2014


On 1/28/14 10:09 AM, John Dubchak wrote:
> On 1/27/14 5:51 PM, Jonathan Wakely wrote:
>> On 28 January 2014 00:20, John Dubchak wrote:
>>
>> Does one of your headers use _SIGNAL_H as an include guard?
>
> No, it does not.  I just spent 30 minutes reviewing all of the headers
> and ordering of includes, including searching to see if _SIGNAL_H_
> include guard is used anywhere inside my codebase and it's not.
>
> That's what brings me to the list, I am verifying if I have built gcc
> incorrectly or trying to determine other potential causes of this error.
>
> Also, in the preprocessed output from yesterday, I verified that
> siginfo_t is being defined:
>
> typedef __sig_atomic_t sig_atomic_t;
>
> # 58 "/usr/include/signal.h" 3 4
> # 1 "/usr/include/bits/signum.h" 1 3 4
> # 59 "/usr/include/signal.h" 2 3 4
> # 79 "/usr/include/signal.h" 3 4
> # 1 "/usr/include/bits/siginfo.h" 1 3 4
> # 25 "/usr/include/bits/siginfo.h" 3 4
> # 1 "/usr/include/bits/wordsize.h" 1 3 4
> # 26 "/usr/include/bits/siginfo.h" 2 3 4
>
> typedef union sigval
>    {
>      int sival_int;
>      void *sival_ptr;
>    } sigval_t;
> # 51 "/usr/include/bits/siginfo.h" 3 4
> typedef struct siginfo
>    {
>      int si_signo;
>      int si_errno;
>
>      int si_code;
>
>      union
>        {
>   int _pad[((128 / sizeof (int)) - 4)];
>
>   struct
>     {
>       __pid_t si_pid;
>       __uid_t si_uid;
>     } _kill;
>
>   struct
>     {
>       int si_tid;
>       int si_overrun;
>       sigval_t si_sigval;
>     } _timer;
>
>   struct
>     {
>       __pid_t si_pid;
>       __uid_t si_uid;
>       sigval_t si_sigval;
>     } _rt;
>
>   struct
>     {
>       __pid_t si_pid;
>       __uid_t si_uid;
>       int si_status;
>       __clock_t si_utime;
>       __clock_t si_stime;
>     } _sigchld;
>
>   struct
>     {
>       void *si_addr;
>     } _sigfault;
>
>   struct
>     {
>       long int si_band;
>       int si_fd;
>     } _sigpoll;
>        } _sifields;
>    } siginfo_t;
>

I've resolved this issue.  Jonathan's point about the include guards 
made me review the ordering I was using and I discovered and removed a 
cyclic dependency, which corrected the issue by addressing the compiler 
error.

Thank you Jonathan for your help.

JohnD



More information about the Gcc-help mailing list