summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2017-12-23 22:51:42 +0200
committerSergey Poznyakoff <gray@gnu.org>2017-12-23 22:51:42 +0200
commitebc76f93985365d33c789c202b523e6b859e85b6 (patch)
tree9c5eb3376e0a018d7fd9bdbf4a9669772e65a717
parent2e8a5e0be7b2db179018c10248a6cc64f9db3314 (diff)
downloadgdbm-ebc76f93985365d33c789c202b523e6b859e85b6.tar.gz
Complement c175231e
* configure.ac: Check whether __thread qualifier is supported * src/gdbmerrno.c (gdbm_errno_storage): Use GDBM_THREAD_LOCAL instead of __thread.
-rw-r--r--configure.ac10
-rw-r--r--src/gdbmerrno.c2
2 files changed, 10 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 944fa7c..f172f8a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,7 +17,7 @@
m4_define([_GDBM_VERSION_MAJOR], 1)
m4_define([_GDBM_VERSION_MINOR], 13)
-dnl m4_define([_GDBM_VERSION_PATCH], 90)
+m4_define([_GDBM_VERSION_PATCH], 90)
AC_INIT([gdbm],
_GDBM_VERSION_MAJOR._GDBM_VERSION_MINOR[]m4_ifdef([_GDBM_VERSION_PATCH],._GDBM_VERSION_PATCH),
@@ -99,6 +99,14 @@ else
GDBM_COUNT_T="unsigned long"
fi
+AC_MSG_CHECKING([for TLS qualifier])
+AC_TRY_COMPILE([],
+ [static __thread int x = 0;],
+ [gdbm_cv__thread=__thread],
+ [gdbm_cv__thread=])
+AC_MSG_RESULT($gdbm_cv__thread)
+AC_DEFINE_UNQUOTED([GDBM_THREAD_LOCAL],$gdbm_cv__thread,[TLS qualifier])
+
dnl Internationalization macros.
AM_GNU_GETTEXT([external], [need-ngettext])
AM_GNU_GETTEXT_VERSION(0.18)
diff --git a/src/gdbmerrno.c b/src/gdbmerrno.c
index 12748b8..ec8534d 100644
--- a/src/gdbmerrno.c
+++ b/src/gdbmerrno.c
@@ -23,7 +23,7 @@
#include "gdbmdefs.h"
/* The dbm error number is placed in the variable GDBM_ERRNO. */
-static __thread gdbm_error gdbm_errno_storage = GDBM_NO_ERROR;
+static GDBM_THREAD_LOCAL gdbm_error gdbm_errno_storage = GDBM_NO_ERROR;
int *
gdbm_errno_location (void)