#include <babeltrace/babeltrace-internal.h>
#include <babeltrace/common-internal.h>
+#include <pthread.h>
#ifdef __CYGWIN__
extern unsigned long pthread_getsequence_np(pthread_t *);
#include <sys/time.h>
#if defined(__linux__)
#include <linux/limits.h>
+ #elif (defined(__sun__) || defined(__CYGWIN__))
+ /* Solaris and Cygwin have no sys/syslimits.h */
#else
#include <sys/syslimits.h>
#endif
#define TCACHE_FLUID (0x40000000 | 0x80000000)
static unsigned g_tcache_mode = TCACHE_STALE;
static struct timeval g_tcache_tv = {0, 0};
-static struct tm g_tcache_tm = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+static struct tm g_tcache_tm = {0};
static INLINE int tcache_get(const struct timeval *const tv, struct tm *const tm)
{
#elif defined(__CYGWIN__)
pthread_t thr = pthread_self();
*tid = (int)pthread_getsequence_np(&thr);
+ #elif defined(__sun__)
+ *tid = (int)pthread_self();
#elif defined(__ANDROID__)
*tid = gettid();
#elif defined(__linux__)