Fix: tls-compat.h exposes compiler-dependent public configuration
[urcu.git] / configure.ac
index 4d1a1dfe659beffbbaf9f24a39dac775ca4348c6..b62f587e8d8e42de3394beb74ad0f1819eb47bfb 100644 (file)
@@ -1,9 +1,9 @@
 AC_PREREQ(2.59)
-AC_INIT([userspace-rcu],[0.11.0-pre],[mathieu dot desnoyers at efficios dot com], [], [http://liburcu.org/])
+AC_INIT([userspace-rcu],[0.12.0],[mathieu dot desnoyers at efficios dot com], [], [http://liburcu.org/])
 
 # Following the numbering scheme proposed by libtool for the library version
 # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
-AC_SUBST([URCU_LIBRARY_VERSION], [6:0:0])
+AC_SUBST([URCU_LIBRARY_VERSION], [7:0:1])
 
 AC_CONFIG_HEADERS([include/config.h include/urcu/config.h])
 AC_CONFIG_AUX_DIR([config])
@@ -12,7 +12,7 @@ AC_CONFIG_MACRO_DIR([m4])
 AC_CANONICAL_TARGET
 AC_CANONICAL_HOST
 
-AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip nostdinc])
+AM_INIT_AUTOMAKE([1.12 foreign dist-bzip2 no-dist-gzip nostdinc])
 AM_MAINTAINER_MODE([enable])
 
 # Enable silent rules if available (Introduced in AM 1.11)
@@ -29,6 +29,7 @@ AH_TEMPLATE([CONFIG_RCU_TLS], [TLS provided by the compiler.])
 AH_TEMPLATE([CONFIG_RCU_HAVE_CLOCK_GETTIME], [clock_gettime() is detected.])
 AH_TEMPLATE([CONFIG_RCU_FORCE_SYS_MEMBARRIER], [Require the operating system to support the membarrier system call for default and bulletproof flavors.])
 AH_TEMPLATE([CONFIG_RCU_DEBUG], [Enable internal debugging self-checks. Introduce performance penalty.])
+AH_TEMPLATE([CONFIG_CDS_LFHT_ITER_DEBUG], [Enable extra debugging checks for lock-free hash table iterator traversal. Alters the rculfhash ABI. Make sure to compile both library and application with matching configuration.])
 
 # Allow requiring the operating system to support the membarrier system
 # call. Applies to default and bulletproof flavors.
@@ -44,20 +45,13 @@ AC_ARG_ENABLE([compiler-tls],
        [def_compiler_tls=$enableval],
        [def_compiler_tls="yes"])
 
-# If not overridden, use ax_tls.m4 to check if TLS is available.
-AS_IF([test "x$def_compiler_tls" = "xyes"],
-       [AX_TLS([def_tls_detect=$ac_cv_tls], [:])],
-       [:])
-
-AS_IF([test "x$def_tls_detect" = "x"],
-       [:],
-       [AC_DEFINE_UNQUOTED([CONFIG_RCU_TLS], $def_tls_detect)])
-
 # Checks for C compiler
 AC_USE_SYSTEM_EXTENSIONS
 AC_PROG_CC
 AC_PROG_CC_STDC
 
+AS_IF([test "x$def_compiler_tls" = "xyes"], AC_DEFINE([CONFIG_RCU_TLS], [1]), [:])
+
 # Checks for programs.
 AC_PROG_AWK
 AC_PROG_MAKE_SET
@@ -268,6 +262,13 @@ AS_IF([test "x$enable_rcu_debug" = "xyes"], [
        AC_DEFINE([CONFIG_RCU_DEBUG], [1])
 ])
 
+# rculfhash iterator debugging
+AC_ARG_ENABLE([cds-lfht-iter-debug],
+      AS_HELP_STRING([--enable-cds-lfht-iter-debug], [Enable extra debugging checks for lock-free hash table iterator traversal. Alters the rculfhash ABI. Make sure to compile both library and application with matching configuration.]))
+AS_IF([test "x$enable_cds_lfht_iter_debug" = "xyes"], [
+       AC_DEFINE([CONFIG_CDS_LFHT_ITER_DEBUG], [1])
+])
+
 # From the sched_setaffinity(2)'s man page:
 # ~~~~
 # The CPU affinity system calls were introduced in Linux kernel 2.5.8.
@@ -324,7 +325,7 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
                #include <sched.h>
                int main()
                {
-                       cpu_set_t foo, mask; CPU_SET(0, &foo);
+                       cpu_set_t foo; CPU_SET(0, &foo);
                        return 0;
                }
        ]])
@@ -373,7 +374,7 @@ AC_CHECK_FUNCS([sched_setaffinity],[
 AM_CPPFLAGS="-include config.h"
 AC_SUBST(AM_CPPFLAGS)
 
-AM_CFLAGS="-Wall -Wextra -Wno-unused-parameter -Wno-sign-compare $AM_CFLAGS"
+AM_CFLAGS="-Wall -Wextra -Wno-unused-parameter $AM_CFLAGS"
 AC_SUBST(AM_CFLAGS)
 
 AC_CONFIG_LINKS([
@@ -493,7 +494,7 @@ test "x$compat_futex_test" = "x0" && value=1 || value=0
 PPRINT_PROP_BOOL([Futex support], $value)
 
 # TLS
-test "x$def_tls_detect" = "x" && value="pthread_getspecific()" || value="$def_tls_detect"
+test "x$def_compiler_tls" = "xyes" && value="compiler TLS" || value="pthread_getspecific()"
 PPRINT_PROP_STRING([Thread Local Storage (TLS)], [$value])
 
 # clock_gettime() available
@@ -508,6 +509,10 @@ PPRINT_PROP_BOOL([Require membarrier], $value)
 test "x$enable_rcu_debug" = "xyes" && value=1 || value=0
 PPRINT_PROP_BOOL([Internal debugging], $value)
 
+# rculfhash iterator debug enabled/disabled
+test "x$enable_cds_lfht_iter_debug" = "xyes" && value=1 || value=0
+PPRINT_PROP_BOOL([Lock-free hash table iterator debugging], $value)
+
 PPRINT_PROP_BOOL([Multi-flavor support], 1)
 
 report_bindir="`eval eval echo $bindir`"
This page took 0.024966 seconds and 4 git commands to generate.