Looks like I should double-check my bug reports. The problem wasn't
timeval, it was timespec_t. The error below occurs, whenever the
gnulib <sys/time.h> is included without including <time.h> beforehand,
even when compiling a file containing just
#include <config.h>
#include <sys/time.h>
cc-1020 c99: ERROR File = /usr/include/internal/signal_core.h, Line = 162
The identifier "timespec_t" is undefined.
extern int sigtimedwait(const sigset_t *, siginfo_t *, const timespec_t *);
The same restrictions don't exist with the system-supplied <sys/time.h>.
The relevant defines regarding timespec in config.h are:
PTHREAD_H_DEFINES_STRUCT_TIMESPEC = 0
SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = 0
TIME_H_DEFINES_STRUCT_TIMESPEC = 1
UNISTD_H_DEFINES_STRUCT_TIMESPEC = 0
I've attached the output of the preprocessor from the above un-compilable
trivial program.
Paul Eggert <[email protected]> wrote:
> Eric Blake wrote:
> > Rather, we should be fixing gnulib's replacement <sys/time.h> header to
> > be self-contained.
>
> How is HAVE_STRUCT_TIMEVAL defined in that build?
all the Makefiles have
HAVE_STRUCT_TIMEVAL = 1
> If it's defined, why did the configure-time test for 'struct timeval' work
> even
> though test-gettimeofday.c does not work?
A casual glance at the tests performed by configure would indicate that
all tests include both sys/time.h and time.h before using timeval.
test-gettimeofday.c on the other hand attempts to declare a timeval
variable before including time.h:
test-gettimeofday.c also compiles and runs without any gnulib involvement
if I throw out the includes for config.h and signature.h as well as
the SIGNATURE_CHECK and don't specify any include paths.
rainer
#line 1 "test-gettimeofday.c"
#line 1 "../config.h"
#line 2821 "../config.h"
#line 2859 "../config.h"
#line 2951 "../config.h"
#line 2974 "../config.h"
#line 3132 "../config.h"
#line 19 "test-gettimeofday.c"
#line 1 "../gl/lib/sys/time.h"
#line 1 "./../gl/lib/sys/time.h"
#line 1 "/usr/include/sys/time.h"
#ident "$Revision: 3.59 $"
#line 1 "/usr/include/standards.h"
#ident "$Id: standards.h,v 1.22 2002/08/07 14:51:48 raji Exp $"
#line 85 "/usr/include/standards.h"
#line 111 "/usr/include/standards.h"
#line 143 "/usr/include/standards.h"
#line 157 "/usr/include/standards.h"
#line 166 "/usr/include/standards.h"
#line 182 "/usr/include/standards.h"
#line 235 "/usr/include/standards.h"
#line 33 "/usr/include/sys/time.h"
#line 1 "/usr/include/sgidefs.h"
#ident "$Revision: 1.11 $"
#line 135 "/usr/include/sgidefs.h"
typedef int __int32_t;
typedef unsigned __uint32_t;
#line 145 "/usr/include/sgidefs.h"
typedef long long __int64_t;
typedef unsigned long long __uint64_t;
#line 215 "/usr/include/sgidefs.h"
typedef __int32_t __psint_t;
typedef __uint32_t __psunsigned_t;
#line 239 "/usr/include/sgidefs.h"
typedef __int32_t __scint_t;
typedef __uint32_t __scunsigned_t;
#line 34 "/usr/include/sys/time.h"
#line 1 "/usr/include/internal/sgimacros.h"
#line 82 "/usr/include/internal/sgimacros.h"
#line 98 "/usr/include/internal/sgimacros.h"
#line 107 "/usr/include/internal/sgimacros.h"
#line 35 "/usr/include/sys/time.h"
typedef long clock_t;
typedef long time_t;
typedef __int64_t stamp_t;
typedef struct USTMSCpair
{
stamp_t ust;
stamp_t msc;
} USTMSCpair;
struct timeval {
time_t tv_sec;
long tv_usec;
};
struct __irix5_timeval {
__int32_t tv_sec;
__int32_t tv_usec;
};
struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};
struct timezone {
int tz_minuteswest;
int tz_dsttime;
};
#line 156 "/usr/include/sys/time.h"
#line 1 "/usr/include/sys/timespec.h"
#ident "$Revision: 1.11 $"
#line 1 "../gl/lib/sys/types.h"
#line 1 "./../gl/lib/sys/types.h"
#line 1 "/usr/include/sys/types.h"
#ident "$Revision: 3.148 $"
typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned int uint_t;
typedef unsigned long ulong_t;
#line 1 "/usr/include/sys/pthread.h"
typedef unsigned int pthread_t;
typedef struct { long __D[5]; } pthread_attr_t;
typedef struct { long __D[8]; } pthread_mutex_t;
typedef struct { long __D[2]; } pthread_mutexattr_t;
typedef struct { long __D[8]; } pthread_cond_t;
typedef struct { long __D[2]; } pthread_condattr_t;
typedef struct { long __D[16]; } pthread_rwlock_t;
typedef struct { long __D[4]; } pthread_rwlockattr_t;
typedef int pthread_key_t;
typedef int pthread_once_t;
typedef struct { long __D[2]; } pthread_barrierattr_t;
typedef struct { long __D[16]; } pthread_barrier_t;
typedef struct { long __D[4]; } pthread_spinlock_t;
#line 42 "/usr/include/sys/types.h"
typedef long blksize_t;
typedef long suseconds_t;
typedef long xtiscalar_t;
typedef unsigned long xtiuscalar_t;
typedef xtiscalar_t t_scalar_t;
typedef xtiuscalar_t t_uscalar_t;
typedef char * addr_t;
typedef char * caddr_t;
typedef __int64_t daddr_t;
typedef long pgno_t;
typedef __uint32_t pfn_t;
typedef short cnt_t;
typedef unsigned long basictime_t;
typedef __int64_t micro_t;
typedef __int32_t pgcnt_t;
typedef enum { B_FALSE, B_TRUE } boolean_t;
typedef long id_t;
typedef ulong_t major_t;
typedef ulong_t minor_t;
typedef ushort_t o_mode_t;
typedef short o_dev_t;
typedef ushort_t o_uid_t;
typedef o_uid_t o_gid_t;
typedef short o_nlink_t;
typedef short o_pid_t;
typedef __uint32_t o_ino_t;
typedef unsigned long mode_t;
typedef unsigned long dev_t;
typedef long uid_t;
typedef long gid_t;
typedef unsigned long nlink_t;
typedef long pid_t;
#line 148 "/usr/include/sys/types.h"
typedef int tid_t;
typedef dev_t vertex_hdl_t;
typedef __uint64_t ino_t;
typedef __uint64_t ino64_t;
#line 167 "/usr/include/sys/types.h"
typedef __int64_t off_t;
typedef __int64_t off64_t;
typedef __scint_t __scoff_t;
typedef __scoff_t scoff_t;
typedef __int64_t blkcnt64_t;
typedef __uint64_t fsblkcnt64_t;
typedef __uint64_t fsfilcnt64_t;
typedef __int64_t blkcnt_t;
typedef __uint64_t fsblkcnt_t;
typedef __uint64_t fsfilcnt_t;
typedef long swblk_t;
typedef unsigned long paddr_t;
typedef unsigned long iopaddr_t;
typedef int key_t;
typedef unsigned char use_t;
typedef long sysid_t;
typedef short index_t;
typedef signed short nasid_t;
typedef signed short cnodeid_t;
typedef signed char partid_t;
typedef signed short moduleid_t;
typedef signed short cmoduleid_t;
typedef uchar_t clusterid_t;
typedef unsigned int lock_t;
typedef signed short cpuid_t;
typedef unsigned char pri_t;
typedef __uint64_t accum_t;
typedef __int64_t prid_t;
typedef __int64_t ash_t;
typedef short cell_t;
typedef int credid_t;
typedef __int64_t jid_t;
typedef __int32_t ncpus_t;
typedef __uint64_t id_type_t;
typedef unsigned int size_t;
typedef int ssize_t;
#line 264 "/usr/include/sys/types.h"
#line 274 "/usr/include/sys/types.h"
typedef long wchar_t;
typedef int clockid_t;
typedef int timer_t;
typedef unsigned int useconds_t;
typedef __scunsigned_t bitnum_t;
typedef __scunsigned_t bitlen_t;
typedef int processorid_t;
typedef int toid_t;
typedef long *qaddr_t;
typedef __uint32_t inst_t;
typedef __uint64_t machreg_t;
typedef __uint64_t fpreg_t;
typedef signed char int8_t;
typedef unsigned char uint8_t;
typedef signed short int16_t;
typedef unsigned short uint16_t;
typedef signed int int32_t;
typedef unsigned int uint32_t;
typedef __int64_t int64_t;
typedef __uint64_t uint64_t;
typedef __int64_t intmax_t;
typedef __uint64_t uintmax_t;
typedef signed long int intptr_t;
typedef unsigned long int uintptr_t;
typedef unsigned char u_int8_t;
typedef unsigned short u_int16_t;
typedef __uint32_t u_int32_t;
typedef long hostid_t;
#line 1 "/usr/include/sys/bsd_types.h"
#ident "$Revision: 1.2 $"
typedef struct { int r[1]; } * physadr;
typedef unsigned char unchar;
typedef unsigned char u_char;
typedef unsigned short ushort;
typedef unsigned short u_short;
typedef unsigned int uint;
typedef unsigned int u_int;
typedef unsigned long ulong;
typedef unsigned long u_long;
typedef struct _quad { long val[2]; } quad;
#line 1 "./sys/select.h"
#line 57 "./sys/select.h"
#line 1 "./sys/select.h"
#line 71 "./sys/select.h"
#line 1 "../gl/lib/sys/types.h"
#line 1 "./../gl/lib/sys/types.h"
#line 1 "/usr/include/sys/types.h"
#line 29 "./../gl/lib/sys/types.h"
#line 45 "./../gl/lib/sys/types.h"
#line 29 "../gl/lib/sys/types.h"
#line 78 "./sys/select.h"
#line 1 "../gl/lib/sys/time.h"
#line 1 "./../gl/lib/sys/time.h"
#line 1 "/usr/include/sys/time.h"
#line 35 "./../gl/lib/sys/time.h"
#line 35 "../gl/lib/sys/time.h"
#line 88 "./sys/select.h"
#line 1 "./sys/select.h"
#line 71 "./sys/select.h"
#line 1 "../gl/lib/sys/types.h"
#line 78 "./sys/select.h"
#line 1 "../gl/lib/sys/time.h"
#line 1 "./../gl/lib/sys/time.h"
#line 35 "../gl/lib/sys/time.h"
#line 88 "./sys/select.h"
#line 1 "/usr/include/sys/select.h"
#ident "$Revision: 1.18 $"
typedef long fd_mask_t;
typedef unsigned long ufd_mask_t;
typedef struct fd_set {
fd_mask_t fds_bits[(((1024)+(((int)(sizeof(fd_mask_t) *
8))-1))/((int)(sizeof(fd_mask_t) * 8)))];
} fd_set;
#line 1 "../gl/lib/string.h"
#line 34 "../gl/lib/string.h"
#line 1 "./../gl/lib/string.h"
#line 1 "/usr/include/string.h"
#line 1 "/usr/include/internal/string_core.h"
#ident "$Revision: 1.5 $"
#line 50 "/usr/include/internal/string_core.h"
extern void *memcpy(void * __restrict, const void * __restrict, size_t);
extern void *memmove(void *, const void *, size_t);
extern char *strcpy(char * __restrict, const char * __restrict);
extern char *strncpy(char * __restrict, const char * __restrict, size_t);
extern char *strcat(char * __restrict, const char * __restrict);
extern char *strncat(char * __restrict, const char * __restrict, size_t);
extern void *memccpy(void *, const void *, int, size_t);
extern int memcmp(const void *, const void *, size_t);
extern int strcmp(const char *, const char *);
extern int strcoll(const char *, const char *);
extern int strncmp(const char *, const char *, size_t);
extern size_t strxfrm(char * __restrict, const char * __restrict, size_t);
extern void *memchr(const void *, int, size_t);
extern char *strchr(const char *, int);
extern size_t strcspn(const char *, const char *);
#pragma int_to_unsigned strcspn
extern char *strpbrk(const char *, const char *);
extern char *strrchr(const char *, int);
extern size_t strspn(const char *, const char *);
#pragma int_to_unsigned strspn
extern char *strstr(const char *, const char *);
extern char *strtok(char * __restrict, const char * __restrict);
extern void *memset(void *, int, size_t);
extern char *strerror(int);
extern size_t strlen(const char *);
#pragma int_to_unsigned strlen
extern int ffs(int);
extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *,
size_t);
extern size_t strlcat(char *, const char *,
size_t);
extern size_t strlcpy(char *, const char *,
size_t);
#pragma optional strlcat
#pragma optional strlcpy
extern char *strdup(const char *);
extern char *strtok_r(char *, const char *, char **);
#pragma intrinsic (strcpy)
#pragma intrinsic (strcmp)
#pragma intrinsic (strlen)
#pragma intrinsic (memcpy)
#pragma intrinsic (memmove)
#pragma intrinsic (memset)
#pragma intrinsic (memcmp)
#line 234 "/usr/include/internal/string_core.h"
#line 5 "/usr/include/string.h"
#line 32 "./../gl/lib/string.h"
#line 42 "../gl/lib/string.h"
#line 1 "../gl/lib/stddef.h"
#line 49 "../gl/lib/stddef.h"
#line 1 "./../gl/lib/stddef.h"
#line 49 "./../gl/lib/stddef.h"
#line 1 "/usr/include/stddef.h"
#line 1 "/usr/include/internal/stddef_core.h"
#ident "$Revision: 1.2 $"
typedef int ptrdiff_t;
#line 51 "/usr/include/internal/stddef_core.h"
#line 65 "/usr/include/internal/stddef_core.h"
#line 5 "/usr/include/stddef.h"
#line 56 "./../gl/lib/stddef.h"
#line 76 "./../gl/lib/stddef.h"
#line 98 "./../gl/lib/stddef.h"
typedef union
{
char *__p ;
double __d ;
long double __ld ;
long int __i ;
} max_align_t;
#line 56 "../gl/lib/stddef.h"
#line 76 "../gl/lib/stddef.h"
#line 50 "../gl/lib/string.h"
#line 183 "../gl/lib/string.h"
#line 201 "../gl/lib/string.h"
#line 226 "../gl/lib/string.h"
#line 244 "../gl/lib/string.h"
#line 269 "../gl/lib/string.h"
#line 297 "../gl/lib/string.h"
#line 325 "../gl/lib/string.h"
#line 339 "../gl/lib/string.h"
#line 356 "../gl/lib/string.h"
#line 377 "../gl/lib/string.h"
#line 387 "../gl/lib/string.h"
#line 402 "../gl/lib/string.h"
#line 417 "../gl/lib/string.h"
#line 435 "../gl/lib/string.h"
extern int _gl_cxxalias_dummy;
#line 448 "../gl/lib/string.h"
extern int _gl_cxxalias_dummy;
#line 456 "../gl/lib/string.h"
#line 492 "../gl/lib/string.h"
extern void * mempcpy (void *restrict __dest, void const *restrict __src,
size_t __n);
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 513 "../gl/lib/string.h"
extern void * memrchr (void const *, int, size_t);
extern int _gl_cxxalias_dummy;
#line 532 "../gl/lib/string.h"
extern int _gl_cxxalias_dummy;
#line 541 "../gl/lib/string.h"
#line 571 "../gl/lib/string.h"
extern char * stpcpy (char *restrict __dst, char const *restrict __src);
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 589 "../gl/lib/string.h"
#line 624 "../gl/lib/string.h"
#line 634 "../gl/lib/string.h"
#line 673 "../gl/lib/string.h"
#line 691 "../gl/lib/string.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 701 "../gl/lib/string.h"
#line 723 "../gl/lib/string.h"
#line 736 "../gl/lib/string.h"
extern char * strndup (char const *__string, size_t __n);
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 749 "../gl/lib/string.h"
#line 765 "../gl/lib/string.h"
extern size_t strnlen (char const *__string, size_t __maxlen);
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 779 "../gl/lib/string.h"
#line 791 "../gl/lib/string.h"
#line 830 "../gl/lib/string.h"
#line 840 "../gl/lib/string.h"
#line 850 "../gl/lib/string.h"
#line 889 "../gl/lib/string.h"
extern char * rpl_strstr (const char *haystack, const char *needle);
extern int _gl_cxxalias_dummy;
#line 913 "../gl/lib/string.h"
extern int _gl_cxxalias_dummy;
#line 928 "../gl/lib/string.h"
#line 944 "../gl/lib/string.h"
extern char * strcasestr (const char *haystack, const char *needle);
extern int _gl_cxxalias_dummy;
#line 962 "../gl/lib/string.h"
extern int _gl_cxxalias_dummy;
#line 977 "../gl/lib/string.h"
#line 1040 "../gl/lib/string.h"
#line 1060 "../gl/lib/string.h"
extern size_t mbslen (const char *string);
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 1075 "../gl/lib/string.h"
#line 1097 "../gl/lib/string.h"
#line 1119 "../gl/lib/string.h"
extern char * mbsstr (const char *haystack, const char *needle)
;
#line 1141 "../gl/lib/string.h"
#line 1156 "../gl/lib/string.h"
#line 1170 "../gl/lib/string.h"
extern char * mbscasestr (const char *haystack, const char *needle)
;
#line 1192 "../gl/lib/string.h"
#line 1214 "../gl/lib/string.h"
#line 1225 "../gl/lib/string.h"
#line 1244 "../gl/lib/string.h"
#line 1265 "../gl/lib/string.h"
#line 1273 "../gl/lib/string.h"
extern char * rpl_strerror (int);
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 1285 "../gl/lib/string.h"
#line 1299 "../gl/lib/string.h"
extern int strerror_r (int errnum, char *buf, size_t buflen);
extern int _gl_cxxalias_dummy;
#line 1314 "../gl/lib/string.h"
#line 1338 "../gl/lib/string.h"
#line 1354 "../gl/lib/string.h"
#line 81 "/usr/include/sys/select.h"
#line 94 "/usr/include/sys/select.h"
#line 106 "/usr/include/sys/select.h"
typedef long fd_mask;
#line 100 "./sys/select.h"
#line 1 "./signal.h"
#line 39 "./signal.h"
#line 1 "../gl/lib/sys/types.h"
#line 50 "./signal.h"
#line 1 "./signal.h"
#line 1 "./signal.h"
#line 1 "/usr/include/signal.h"
#line 1 "/usr/include/internal/signal_core.h"
#ident "$Revision: 1.5 $"
#line 1 "/usr/include/sys/signal.h"
#ident "$Revision: 3.148 $"
#line 73 "/usr/include/sys/signal.h"
#line 1 "../gl/lib/sys/types.h"
#line 82 "/usr/include/sys/signal.h"
typedef void (*SIG_PF) ();
#line 1 "/usr/include/sys/sigevent.h"
#ident "$Revision: 1.9 $"
#line 1 "../gl/lib/sys/types.h"
#line 31 "/usr/include/sys/sigevent.h"
typedef union sigval {
int sival_int;
void *sival_ptr;
} sigval_t;
#line 48 "/usr/include/sys/sigevent.h"
typedef union notifyinfo {
int nisigno;
void (*nifunc) (sigval_t);
} notifyinfo_t;
typedef struct sigevent {
int sigev_notify;
notifyinfo_t sigev_notifyinfo;
sigval_t sigev_value;
void (*sigev_notify_function) (sigval_t);
pthread_attr_t *sigev_notify_attributes;
unsigned long sigev_reserved[11];
unsigned long sigev_pad[6];
} sigevent_t;
#line 117 "/usr/include/sys/signal.h"
#line 1 "/usr/include/sys/siginfo.h"
#ident "$Revision: 1.28 $"
typedef struct __siginfo {
int si_signo;
int si_code;
int si_errno;
union {
int si_pad[((128 / sizeof(__int32_t)) - 3)];
struct {
pid_t __pid;
union {
struct {
uid_t __uid;
} __kill;
struct {
clock_t __utime;
int __status;
clock_t __stime;
int __swap;
} __cld;
} __pdata;
} __proc;
struct {
void *__addr;
} __fault;
struct {
int __fd;
long __band;
} __file;
union sigval __value;
} __data;
} siginfo_t;
#line 109 "/usr/include/sys/siginfo.h"
#line 117 "/usr/include/sys/siginfo.h"
#line 140 "/usr/include/sys/siginfo.h"
#line 155 "/usr/include/sys/siginfo.h"
#line 174 "/usr/include/sys/siginfo.h"
#line 196 "/usr/include/sys/siginfo.h"
#line 209 "/usr/include/sys/siginfo.h"
#line 124 "/usr/include/sys/signal.h"
typedef struct {
__uint32_t __sigbits[4];
} sigset_t;
typedef union __sighandler {
void (*sa_handler1)();
void (*sa_sigaction1)(int, siginfo_t *, void *);
} __sighandler_t;
typedef struct sigaction {
int sa_flags;
__sighandler_t sa_sighandler;
sigset_t sa_mask;
int sa_resv[2];
} sigaction_t;
#line 178 "/usr/include/sys/signal.h"
struct sigstack {
void *ss_sp;
int ss_onstack;
};
#line 1 "/usr/include/sys/ucontext.h"
#ident "$Revision: 1.37 $"
#line 44 "/usr/include/sys/ucontext.h"
#line 1 "../gl/lib/sys/types.h"
#line 47 "/usr/include/sys/ucontext.h"
#line 54 "/usr/include/sys/ucontext.h"
typedef struct _sigaltstack {
void *ss_sp;
size_t ss_size;
int ss_flags;
} stack_t;
#line 69 "/usr/include/sys/ucontext.h"
#line 116 "/usr/include/sys/ucontext.h"
typedef machreg_t greg_t;
typedef greg_t gregset_t[37];
typedef struct __fpregset {
union {
double __fp_dregs[32];
struct {
__uint32_t _fp_fill;
float _fp_fregs;
} __fp_fregs[32];
#line 150 "/usr/include/sys/ucontext.h"
machreg_t __fp_regs[32];
} __fp_r;
__uint32_t __fp_csr;
__uint32_t __fp_pad;
} fpregset_t;
typedef struct {
gregset_t __gregs;
fpregset_t __fpregs;
} mcontext_t;
typedef struct __ucontext {
unsigned long uc_flags;
struct __ucontext *uc_link;
sigset_t uc_sigmask;
stack_t uc_stack;
mcontext_t uc_mcontext;
long uc_filler[49];
} ucontext_t;
#line 250 "/usr/include/sys/ucontext.h"
#line 289 "/usr/include/sys/ucontext.h"
#line 341 "/usr/include/sys/ucontext.h"
#line 224 "/usr/include/sys/signal.h"
#line 277 "/usr/include/sys/signal.h"
extern void (*bsd_signal(int, void (*)(int)))(int);
extern int killpg(pid_t, int);
extern int sigstack(struct sigstack *, struct sigstack *);
extern void (*signal(int,void (*)()))();
typedef struct sigcontext {
__uint32_t sc_regmask;
__uint32_t sc_status;
__uint64_t sc_pc;
__uint64_t sc_regs[32];
__uint64_t sc_fpregs[32];
__uint32_t sc_ownedfp;
__uint32_t sc_fpc_csr;
__uint32_t sc_fpc_eir;
__uint32_t sc_ssflags;
__uint64_t sc_mdhi;
__uint64_t sc_mdlo;
__uint64_t sc_cause;
__uint64_t sc_badvaddr;
__uint64_t sc_triggersave;
sigset_t sc_sigset;
__uint64_t sc_fp_rounded_result;
__uint64_t sc_pad[31];
} sigcontext_t;
#line 370 "/usr/include/sys/signal.h"
#line 383 "/usr/include/sys/signal.h"
#line 398 "/usr/include/sys/signal.h"
#line 120 "/usr/include/internal/signal_core.h"
typedef int sig_atomic_t;
extern int raise(int);
extern int kill(pid_t, int);
extern int sigaction(int, const struct sigaction *, struct sigaction *);
extern int sigpending(sigset_t *);
extern int sigprocmask(int, const sigset_t *, sigset_t *);
extern int sigsuspend(const sigset_t *);
extern int sigaddset(sigset_t *, int);
extern int sigdelset(sigset_t *, int);
extern int sigemptyset(sigset_t *);
extern int sigfillset(sigset_t *);
extern int sigismember(const sigset_t *, int);
#line 1 "/usr/include/sys/timespec.h"
#line 155 "/usr/include/internal/signal_core.h"
extern int sigqueue(pid_t , int, const union sigval);
extern int sigwaitinfo(const sigset_t *, siginfo_t *);
extern int sigtimedwait(const sigset_t *, siginfo_t *, const timespec_t *);
extern int sigwait(const sigset_t *, int *);
#line 1 "../gl/lib/sys/types.h"
#line 169 "/usr/include/internal/signal_core.h"
extern int pthread_kill(pthread_t, int);
extern int pthread_sigmask(int, const sigset_t *, sigset_t *);
extern int sigpause(int);
extern void (*sigset(int,void (*)()))();
extern int sighold(int);
extern int sigrelse(int);
extern int sigignore(int);
extern int siginterrupt(int, int);
extern int _sigaltstack(const stack_t *, stack_t *);
#line 199 "/usr/include/internal/signal_core.h"
extern char *_sys_siglist[];
extern int _sys_nsig;
#line 1 "../gl/lib/sys/types.h"
#line 211 "/usr/include/internal/signal_core.h"
#line 1 "/usr/include/sys/procset.h"
#ident "$Revision: 1.12 $"
#line 1 "../gl/lib/sys/types.h"
#line 25 "/usr/include/sys/procset.h"
typedef enum idtype
{
P_PID,
P_PPID,
P_PGID,
P_SID,
P_CID,
P_UID,
P_GID,
P_ALL
} idtype_t;
typedef enum idop {
POP_DIFF,
POP_AND,
POP_OR,
POP_XOR
} idop_t;
typedef struct procset {
idop_t p_op;
idtype_t p_lidtype;
id_t p_lid;
idtype_t p_ridtype;
id_t p_rid;
} procset_t;
#line 114 "/usr/include/sys/procset.h"
#line 125 "/usr/include/sys/procset.h"
#line 212 "/usr/include/internal/signal_core.h"
extern int (*ssignal(int, int (*)(int)))(int);
extern int gsignal(int);
extern int sigsend(idtype_t, id_t, int);
extern int sigsendset(const procset_t *, int);
extern int sgi_altersigs(int, sigset_t *, int[]);
extern int sgi_sigffset(sigset_t *, int);
extern int sgi_dumpset(sigset_t *);
#line 5 "/usr/include/signal.h"
#line 37 "./signal.h"
#line 37 "./signal.h"
#line 53 "./signal.h"
#line 69 "./signal.h"
#line 326 "./signal.h"
#line 338 "./signal.h"
#line 355 "./signal.h"
#line 376 "./signal.h"
#line 386 "./signal.h"
#line 398 "./signal.h"
#line 406 "./signal.h"
typedef void (*sighandler_t) (int);
#line 420 "./signal.h"
#line 431 "./signal.h"
#line 467 "./signal.h"
#line 481 "./signal.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 490 "./signal.h"
#line 511 "./signal.h"
#line 525 "./signal.h"
#line 536 "./signal.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 548 "./signal.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 561 "./signal.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 574 "./signal.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 586 "./signal.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 608 "./signal.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
typedef void (*_gl_function_taking_int_returning_void_t) (int);
#line 633 "./signal.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 680 "./signal.h"
#line 754 "./signal.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 766 "./signal.h"
#line 109 "./sys/select.h"
#line 136 "./sys/select.h"
#line 393 "./sys/select.h"
#line 410 "./sys/select.h"
#line 431 "./sys/select.h"
#line 441 "./sys/select.h"
#line 472 "./sys/select.h"
#line 554 "./sys/select.h"
#line 586 "./sys/select.h"
#line 598 "./sys/select.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 612 "./sys/select.h"
#line 100 "./sys/select.h"
#line 1 "./signal.h"
#line 39 "./signal.h"
#line 109 "./sys/select.h"
#line 60 "./sys/select.h"
#line 45 "/usr/include/sys/bsd_types.h"
#line 407 "/usr/include/sys/types.h"
typedef __uint64_t k_sigset_t;
#line 419 "/usr/include/sys/types.h"
#line 537 "/usr/include/sys/types.h"
#line 29 "./../gl/lib/sys/types.h"
#line 29 "../gl/lib/sys/types.h"
#line 42 "/usr/include/sys/timespec.h"
typedef struct timespec {
time_t tv_sec;
long tv_nsec;
} timespec_t;
#line 161 "/usr/include/sys/time.h"
#line 1 "../gl/lib/sys/types.h"
#line 165 "/usr/include/sys/time.h"
extern int getitimer(int, struct itimerval *);
extern int setitimer(int, const struct itimerval *, struct itimerval *);
extern int utimes(const char *, const struct timeval [2]);
#line 1 "./sys/select.h"
#line 71 "./sys/select.h"
#line 179 "/usr/include/sys/time.h"
extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
#line 196 "/usr/include/sys/time.h"
extern int adjtime(struct timeval *, struct timeval *);
extern int BSDgettimeofday(struct timeval *, struct timezone *);
extern int BSDsettimeofday(struct timeval *, struct timezone *);
extern int utimets(const char *, const struct timespec [2]);
#pragma optional utimets
extern int gettimeofday(struct timeval *,...);
extern int settimeofday(struct timeval *,...);
#line 1 "../gl/lib/time.h"
#line 38 "../gl/lib/time.h"
#line 1 "./../gl/lib/time.h"
#line 1 "/usr/include/time.h"
#line 1 "/usr/include/internal/time_core.h"
#ident "$Revision: 1.7 $"
#line 1 "../gl/lib/sys/types.h"
#line 35 "/usr/include/internal/time_core.h"
#line 53 "/usr/include/internal/time_core.h"
#line 63 "/usr/include/internal/time_core.h"
#line 73 "/usr/include/internal/time_core.h"
#line 1 "/usr/include/sys/ptimers.h"
#ident "$Id: ptimers.h,v 1.5 2002/08/07 15:19:38 murthy Exp $"
typedef struct itimerspec {
timespec_t it_interval;
timespec_t it_value;
} itimerspec_t;
#line 61 "/usr/include/sys/ptimers.h"
#line 82 "/usr/include/internal/time_core.h"
#line 93 "/usr/include/internal/time_core.h"
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
extern clock_t clock(void);
extern double difftime(time_t, time_t);
extern time_t mktime(struct tm *);
extern time_t time(time_t *);
extern char *asctime(const struct tm *);
extern char *ctime (const time_t *);
extern struct tm *gmtime(const time_t *);
extern struct tm *localtime(const time_t *);
extern size_t strftime(char * __restrict, size_t, const char * __restrict,
const struct tm * __restrict);
extern uint64_t rdrtc(void);
#pragma optional rdrtc
extern void tzset(void);
extern char *tzname[2];
extern long _sysconf(int);
struct sigevent;
extern int clock_settime(clockid_t, const timespec_t *);
extern int clock_gettime(clockid_t, timespec_t *);
extern int clock_getres(clockid_t, timespec_t *);
extern int nanosleep(const timespec_t *, timespec_t *);
extern int timer_create(clockid_t, struct sigevent *, timer_t *);
extern int timer_delete(timer_t);
extern int timer_settime(timer_t, int, const struct itimerspec *, struct
itimerspec *);
extern int timer_gettime(timer_t, struct itimerspec *);
extern int timer_getoverrun(timer_t);
#pragma optional nanosleep
extern time_t timezone;
extern int daylight;
extern char *strptime(const char *, const char *, struct tm *);
extern struct tm *getdate(const char *);
extern int getdate_err;
extern int cftime(char *, char *, const time_t *);
extern int ascftime(char *, const char *, const struct tm *);
extern time_t altzone;
extern char *asctime_r(const struct tm *, char *);
extern char *ctime_r(const time_t *, char *);
extern struct tm *gmtime_r(const time_t *,
struct tm *);
extern struct tm *localtime_r(const time_t *,
struct tm *);
#line 5 "/usr/include/time.h"
#line 36 "./../gl/lib/time.h"
#line 42 "../gl/lib/time.h"
#line 1 "../gl/lib/stddef.h"
#line 49 "../gl/lib/stddef.h"
#line 45 "../gl/lib/time.h"
#line 302 "../gl/lib/time.h"
#line 314 "../gl/lib/time.h"
#line 331 "../gl/lib/time.h"
#line 352 "../gl/lib/time.h"
#line 362 "../gl/lib/time.h"
#line 397 "../gl/lib/time.h"
struct __time_t_must_be_integral {
unsigned int __floating_time_t_unsupported : (time_t) 1;
};
extern int rpl_nanosleep (struct timespec const *__rqtp, struct timespec
*__rmtp);
extern int _gl_cxxalias_dummy;
#line 432 "../gl/lib/time.h"
extern int _gl_cxxalias_dummy;
extern time_t rpl_mktime (struct tm *__tp);
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 469 "../gl/lib/time.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 491 "../gl/lib/time.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 512 "../gl/lib/time.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 527 "../gl/lib/time.h"
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 547 "../gl/lib/time.h"
typedef struct tm_zone *timezone_t;
extern timezone_t tzalloc (char const *__name);
extern int _gl_cxxalias_dummy;
extern void tzfree (timezone_t __tz);
extern int _gl_cxxalias_dummy;
extern struct tm * localtime_rz (timezone_t __tz, time_t const *restrict
__timer, struct tm *restrict __result);
extern int _gl_cxxalias_dummy;
extern time_t mktime_z (timezone_t __tz, struct tm *restrict __result);
extern int _gl_cxxalias_dummy;
#line 578 "../gl/lib/time.h"
extern time_t timegm (struct tm *__tm);
extern int _gl_cxxalias_dummy;
extern int _gl_cxxalias_dummy;
#line 608 "../gl/lib/time.h"
#line 236 "/usr/include/sys/time.h"
#line 40 "./../gl/lib/sys/time.h"
#line 315 "./../gl/lib/sys/time.h"
#line 327 "./../gl/lib/sys/time.h"
#line 344 "./../gl/lib/sys/time.h"
#line 365 "./../gl/lib/sys/time.h"
#line 375 "./../gl/lib/sys/time.h"
#line 396 "./../gl/lib/sys/time.h"
#line 407 "./../gl/lib/sys/time.h"
extern int rpl_gettimeofday (struct timeval *restrict, void *restrict);
extern int _gl_cxxalias_dummy;
#line 423 "./../gl/lib/sys/time.h"
extern int _gl_cxxalias_dummy;
#line 431 "./../gl/lib/sys/time.h"
#line 522 "./../gl/lib/sys/time.h"
#line 40 "../gl/lib/sys/time.h"
#line 21 "test-gettimeofday.c"