From 900918a5d136c4a937991f733f3b51a1687e02c5 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Tue, 10 Sep 2013 10:57:24 +0200 Subject: [PATCH] Bug #948: detect thread local storage support --- configure.ac | 8 ++++++++ src/util-time.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 7d0a3f94b3..e1956c2992 100644 --- a/configure.ac +++ b/configure.ac @@ -218,6 +218,14 @@ esac AC_MSG_RESULT(ok) + # check if our target supports thread local storage + AC_MSG_CHECKING(for thread local storage __thread support) + AC_TRY_COMPILE([#include ], + [ void somefunc (void) { static __thread int i; i = 1; i++; } ], + [AC_DEFINE([TLS], [1], [Thread local storage]) + AC_MSG_RESULT([yes]) ], + [AC_MSG_RESULT([no])]) + #Enable support for gcc compile time security options. There is no great way to do detection of valid cflags that I have found #AX_CFLAGS_GCC_OPTION don't seem to do a better job than the code below and are a pain because of extra m4 files etc. #These flags seem to be supported on CentOS 5+, Ubuntu 8.04+, and FedoreCore 11+ diff --git a/src/util-time.c b/src/util-time.c index f040dfaca6..b0d6cc9245 100644 --- a/src/util-time.c +++ b/src/util-time.c @@ -124,7 +124,7 @@ void TimeSetIncrementTime(uint32_t tv_sec) * Time Caching code */ -#if defined(__OpenBSD__) +#ifndef TLS /* OpenBSD does not support __thread, so don't use time caching on BSD */ struct tm *SCLocalTime(time_t timep, struct tm *result)