[lttng-dev] urcu commit a767fd requires autoconf >= 2.64.

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Wed Jun 13 15:31:42 EDT 2012


* John Steele Scott (toojays at toojays.net) wrote:
> On 13/06/12 17:40, Mathieu Desnoyers wrote:
> > * John Steele Scott (toojays at toojays.net) wrote:
> >> http://lists.lttng.org/pipermail/lttng-dev/2012-May/017927.html
> >>
> >> I tried to build the latest urcu (git master e51500) on a Centos 6.2 box, and got:
> >>
> >> jscott at dxi0-62:~/src/userspace-rcu$ make -j4
> >> CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /users/jscott/src/userspace-rcu/config/missing --run aclocal-1.11 -I config
> >> CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /users/jscott/src/userspace-rcu/config/missing --run autoconf
> >>  cd . && /bin/sh /users/jscott/src/userspace-rcu/config/missing --run automake-1.11 --foreign
> >> configure:4010: error: possibly undefined macro: m4_ifnblank
> >>       If this token and others are legitimate, please use m4_pattern_allow.
> >>       See the Autoconf documentation.
> >> make: *** [configure] Error 1
> >> make: *** Waiting for unfinished jobs....
> >>
> >> Some digging showed that the macro m4_ifnblank requires autoconf 2.64. Centos 6.2 has autoconf 2.63. :(
> >>
> >> I just worked around it by reverting commit a767fd locally, then I can build fine.
> > Thanks for pointing this out! Can you try the following patch and let me
> > know if it fixes your issue ?
> >
> >
> 
> Mathieu,
> 
> Thanks for your quick response. Unfortunately, with that patch, ./configure fails like:
> 
[...]
> It seems it doesn't like the empty else..fi clause. If I put a command in there ("true", "echo", whatever), configure completes and I can build successfully.

Can you try with the following ? I just tested it with autoconf 2.63
here and it seems to work fine now.


diff --git a/config/ax_tls.m4 b/config/ax_tls.m4
index 033e3b1..5ab1a41 100644
--- a/config/ax_tls.m4
+++ b/config/ax_tls.m4
@@ -44,7 +44,23 @@
 #   modified version of the Autoconf Macro, you may extend this special
 #   exception to the GPL to apply to your modified version as well.
 
-#serial 10
+#serial 11
+
+#   Define m4_ifblank and m4_ifnblank macros from introduced in
+#   autotools 2.64 m4sugar.m4 if using an earlier autotools.
+
+ifdef([m4_ifblank], [], [
+m4_define([m4_ifblank],
+[m4_if(m4_translit([[$1]],  [ ][	][
+]), [], [$2], [$3])])
+])
+
+
+ifdef([m4_ifnblank], [], [
+m4_define([m4_ifnblank],
+[m4_if(m4_translit([[$1]],  [ ][	][
+]), [], [$3], [$2])])
+])
 
 AC_DEFUN([AX_TLS], [
   AC_MSG_CHECKING(for thread local storage (TLS) class)
diff --git a/configure.ac b/configure.ac
index db34935..5f6bc40 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,7 +28,7 @@ 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.])
 
-AX_TLS([AC_DEFINE_UNQUOTED([CONFIG_RCU_TLS], $ac_cv_tls)], [])
+AX_TLS(AC_DEFINE_UNQUOTED([CONFIG_RCU_TLS], $ac_cv_tls), [:])
 
 # Checks for programs.
 AC_PROG_CC

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com



More information about the lttng-dev mailing list