[Buildroot] [PATCH] package/autoconf-archive: fix ax_tls syntax error

Yann E. MORIN yann.morin.1998 at free.fr
Sun May 3 22:05:10 UTC 2015


Romain, All,

On 2015-05-03 23:14 +0200, Romain Naour spake thusly:
> The ax_tls.m4 serial 11 produce a syntax error
> in configure scripts.
> 
> Fixes:
> http://autobuild.buildroot.net/results/619/619339810617212a667fe72278ec727ee992ffbf/
> 
> Signed-off-by: Romain Naour <romain.naour at openwide.fr>
> ---
>  .../0001-AX_TLS-fix-syntax-error.patch             | 47 ++++++++++++++++++++++
>  1 file changed, 47 insertions(+)
>  create mode 100644 package/autoconf-archive/0001-AX_TLS-fix-syntax-error.patch
> 
> diff --git a/package/autoconf-archive/0001-AX_TLS-fix-syntax-error.patch b/package/autoconf-archive/0001-AX_TLS-fix-syntax-error.patch
> new file mode 100644
> index 0000000..431b6c5
> --- /dev/null
> +++ b/package/autoconf-archive/0001-AX_TLS-fix-syntax-error.patch
> @@ -0,0 +1,47 @@
> +From cb6a769ba7ea8ff03849c455bbce4c5e9bdfa5a5 Mon Sep 17 00:00:00 2001
> +From: Romain Naour <romain.naour at openwide.fr>
> +Date: Sun, 3 May 2015 23:02:34 +0200
> +Subject: [PATCH] AX_TLS: fix syntax error
> +
> +The commit e012eb17b3d67f31dee477592328207437206c33 introduce
> +a syntax error due to an empty "else" statement.
> +
> +confifure:
> +if test "$ac_cv_tls" != "none"; then :
> +cat >>confdefs.h <<_ACEOF
> +_ACEOF
> +else
> +
> +fi
> +
> +Remove the third part of AS_IF
> +
> +Signed-off-by: Romain Naour <romain.naour at openwide.fr>
> +---
> + m4/ax_tls.m4 | 5 ++---
> + 1 file changed, 2 insertions(+), 3 deletions(-)
> +
> +diff --git a/m4/ax_tls.m4 b/m4/ax_tls.m4
> +index 809b761..5d43e57 100644
> +--- a/m4/ax_tls.m4
> ++++ b/m4/ax_tls.m4
> +@@ -44,7 +44,7 @@
> + #   modified version of the Autoconf Macro, you may extend this special
> + #   exception to the GPL to apply to your modified version as well.
> + 
> +-#serial 11
> ++#serial 12
> + 
> + AC_DEFUN([AX_TLS], [
> +   AC_MSG_CHECKING([for thread local storage (TLS) class])
> +@@ -69,6 +69,5 @@ AC_DEFUN([AX_TLS], [
> + 
> +   AS_IF([test "$ac_cv_tls" != "none"],
> +     [AC_DEFINE_UNQUOTED([TLS],[$ac_cv_tls],[If the compiler supports a TLS storage class define it to that here])
> +-     m4_ifnblank([$1],[$1])],
> +-    [m4_ifnblank([$2],[$2])])
> ++     m4_ifnblank([$1],[$1])])

As discused on IRC, I bleieve this is wrong: removing the second
m4_ifnblank means the action-if-not-found clause will never be expanded.

I believe the proper fix is to not enclose that second m4_ifnblank
between square brackets, liek it was before changeset e012eb17.

The reasoning behind this is:
 1) m4_ifnblank will expand to nothing if its first arg is empty,
 2) autoconf will not generate an else-clause if AS_IF's third arg is
    empty.

But putting [] around m4_ifnblank means that third arg is *not* empty,
and thus results in an else-clause being emitted.

BTW, do not forget to send that patch upstream, since currently
everything that wants to check TLS is broken. :-/

Regards,
Yann E. MORIN.

> + ])
> +-- 
> +1.9.3
> +
> -- 
> 1.9.3
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list