http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54040
Bug #: 54040 Summary: [x32] Incorrect timeval and timespec Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com X32 has /* A time value that is accurate to the nearest microsecond but also has a range of years. */ struct timeval { __time_t tv_sec; /* Seconds. */ __suseconds_t tv_usec; /* Microseconds. */ }; and struct timespec { __time_t tv_sec; /* Seconds. */ __syscall_slong_t tv_nsec; /* Nanoseconds. */ }; __time_t, __suseconds_t and __syscall_slong_t are 64-bit integers in x32. But ada run-time assumes all of them are long, which is 32-bit for x32.