X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=configure.ac;h=ba7538dbfca5cf33d4ae1b95deb2963f8a9ef08f;hp=8ac0c4172682668f70fd1e9d158d8c15f2b931e7;hb=628a1a723be893a52b715d25a2d529dc56c2dc03;hpb=d8d9a3405ce46af6d34d2e80e260ad50f3d211a0 diff --git a/configure.ac b/configure.ac index 8ac0c41..ba7538d 100644 --- a/configure.ac +++ b/configure.ac @@ -26,6 +26,7 @@ AH_TEMPLATE([CONFIG_RCU_ARM_HAVE_DMB], [Use the dmb instruction if available for 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. @@ -215,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 ]) ]) @@ -240,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"]) @@ -253,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: # ~~~~ @@ -385,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.") -])