[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
possible infinite loop in m4
From: |
Mike Frysinger |
Subject: |
possible infinite loop in m4 |
Date: |
Mon, 5 Jul 2010 06:17:22 -0400 |
User-agent: |
KMail/1.13.1 (Linux/2.6.34; KDE/4.4.4; x86_64; ; ) |
i believe a recent autoconf update triggered a bug in m4 while processing
crappy m4 code. the project in question is "rezound":
http://rezound.sf.net/ (version 0.12.3_beta to be exact)
the reduced test case is:
$ cat configure.ac
AC_INIT
ajv_CXX_FLAG(-g)
AC_OUTPUT
$ cat aclocal.m4
AC_DEFUN(ajv_CXX_FLAG,
[AC_MSG_CHECKING(if $CXX accepts $1 )]
AC_MSG_RESULT(yes)
)
$ autoconf
<hang here in m4>
the issue seems to be that the 2nd argument to AC_DEFUN is being expanded
incorrectly due to the [] not enclosing everything. it only occurs if a macro
is also used outside of the [] (so plain shell code doesnt trigger the issue).
if the code is changed as below, then it works fine:
AC_DEFUN(ajv_CXX_FLAG,
[AC_MSG_CHECKING(if $CXX accepts $1 )
AC_MSG_RESULT(yes)]
)
looking at the m4 temp file in /tmp/m4-.../m4-10000 shows that AC_MSG_CHECKING
seems to be expanded over and over until the process is killed.
m4 1.4.1{2,3,4} all behave the same way. testing with autoconf-2.65 here.
-mike
signature.asc
Description: This is a digitally signed message part.
- possible infinite loop in m4,
Mike Frysinger <=