X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=configure.ac;h=ba7538dbfca5cf33d4ae1b95deb2963f8a9ef08f;hp=cd5a05a426a63cc1a4873b5f632e67e577f0e3ce;hb=628a1a723be893a52b715d25a2d529dc56c2dc03;hpb=3e4ae45a6930bce59fb77790aa29a82eecf6ec23 diff --git a/configure.ac b/configure.ac index cd5a05a..ba7538d 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ(2.59) -AC_INIT([userspace-rcu],[0.9.0],[mathieu dot desnoyers at efficios dot com], [], [http://liburcu.org/]) +AC_INIT([userspace-rcu],[0.10.0-pre],[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 @@ -25,6 +25,16 @@ AH_TEMPLATE([CONFIG_RCU_COMPAT_ARCH], [Compatibility mode for i386 which lacks c AH_TEMPLATE([CONFIG_RCU_ARM_HAVE_DMB], [Use the dmb instruction if available for use on ARM.]) 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.]) + +# Allow requiring the operating system to support the membarrier system +# call. Applies to default and bulletproof flavors. +AC_ARG_ENABLE([sys-membarrier-fallback], + AS_HELP_STRING([--disable-sys-membarrier-fallback], [Abort if sys-membarrier is needed but not available rather than using a fallback.]), + [def_sys_membarrier_fallback=$enableval], + [def_sys_membarrier_fallback="yes"]) +AS_IF([test "x$def_sys_membarrier_fallback" != "xyes"], [AC_DEFINE([CONFIG_RCU_FORCE_SYS_MEMBARRIER], [1])]) # Allow overriding storage used for TLS variables. AC_ARG_ENABLE([compiler-tls], @@ -206,8 +216,10 @@ AS_IF([test "x$ARCHTYPE" = "xx86"],[ AS_IF([test "x$host_cpu" != "xi386" -a "x$host_cpu" != "xi486" -a "x$host_cpu" != "xi586" -a "x$host_cpu" != "xi686" -a "x$host_vendor" != "xk1om" -a "x$host_cpu" != "xk1om"],[ AC_MSG_RESULT([yes]) AC_DEFINE([CONFIG_RCU_HAVE_FENCE], [1]) + config_rcu_have_fence=yes ],[ AC_MSG_RESULT([no]) + config_rcu_have_fence=no ]) ]) @@ -231,6 +243,7 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ # Search for clock_gettime AC_SEARCH_LIBS([clock_gettime], [rt], [ AC_DEFINE([CONFIG_RCU_HAVE_CLOCK_GETTIME], [1]) + config_rcu_have_clock_gettime=yes ], []) AM_CONDITIONAL([COMPAT_FUTEX], [test "x$compat_futex_test" = "x1"]) @@ -244,6 +257,13 @@ AC_ARG_ENABLE([smp-support], [def_smp_support="yes"]) AS_IF([test "x$def_smp_support" = "xyes"], [AC_DEFINE([CONFIG_RCU_SMP], [1])]) +# RCU debugging option +AC_ARG_ENABLE([rcu-debug], + AS_HELP_STRING([--enable-rcu-debug], [Enable internal debugging + self-checks. Introduce performance penalty.])) +AS_IF([test "x$enable_rcu_debug" = "xyes"], [ + AC_DEFINE([CONFIG_RCU_DEBUG], [1]) +]) # From the sched_setaffinity(2)'s man page: # ~~~~ @@ -376,15 +396,56 @@ AC_CONFIG_FILES([ ]) AC_OUTPUT -# Report on selected configure options -AS_IF([test "x$def_smp_support" = "xyes"],[ - AS_ECHO("SMP support enabled.") -],[ - AS_ECHO("SMP support disabled.") -]) +# +# Mini-report on what will be built. +# + +PPRINT_INIT +PPRINT_SET_INDENT(1) +PPRINT_SET_TS(38) + +AS_ECHO +AS_ECHO("${PPRINT_COLOR_BLDBLU}Userspace-RCU $PACKAGE_VERSION${PPRINT_COLOR_RST}") +AS_ECHO + +PPRINT_SUBTITLE([Features]) + +PPRINT_PROP_STRING([Target architecture], $host_cpu) + +# SMP support enabled/disabled +test "x$def_smp_support" = "xyes" && value=1 || value=0 +PPRINT_PROP_BOOL([SMP support], $value) + +# Memory fence support available +test "x$config_rcu_have_fence" = "xyes" && value=1 || value=0 +PPRINT_PROP_BOOL([Memory fence instructions], $value) + +# Futex support available +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" +PPRINT_PROP_STRING([Thread Local Storage (TLS)], [$value]) + +# clock_gettime() available +test "x$config_rcu_have_clock_gettime" = "xyes" && value=1 || value=0 +PPRINT_PROP_BOOL([clock_gettime()], $value) + +# Require membarrier +test "x$def_sys_membarrier_fallback" != "xyes" && value=1 || value=0 +PPRINT_PROP_BOOL([Require membarrier], $value) + +# RCU debug enabled/disabled +test "x$enable_rcu_debug" = "xyes" && value=1 || value=0 +PPRINT_PROP_BOOL([Internal debugging], $value) + +report_bindir="`eval eval echo $bindir`" +report_libdir="`eval eval echo $libdir`" + +# Print the bindir and libdir this `make install' will install into. +AS_ECHO +PPRINT_SUBTITLE([Install directories]) +PPRINT_PROP_STRING([Binaries], [$report_bindir]) +PPRINT_PROP_STRING([Libraries], [$report_libdir]) -AS_IF([test "x$def_tls_detect" = "x"],[ - AS_ECHO("Thread Local Storage (TLS): pthread_getspecific().") -],[ - AS_ECHO("Thread Local Storage (TLS): $def_tls_detect.") -])