* Brian J. Murrell wrote on Tue, Mar 02, 2010 at 09:51:08PM CET: > On Tue, 2010-03-02 at 07:00 +0100, Ralf Wildenhues wrote: > > to your configure.ac before the use of LB_LINUX_COMPILE_IFELSE > > and see whether your problem goes away that way. > > Here's my reproducer: > > AC_INIT([pkg], [1.0]) > AC_DEFUN([LB_LINUX_CONFTEST], > [cat >conftest.c <<_ACEOF > $1 > _ACEOF > ]) > AC_DEFUN([LB_LINUX_COMPILE_IFELSE], > [m4_ifvaln([$1], [LB_LINUX_CONFTEST([$1])])dnl [...] > LB_LINUX_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <linux/thread_info.h> > #if THREAD_SIZE < 8192 > #error "stack size < 8192" > #endif > ]],[],[echo foo])]) So you use Autoconf's AC_LANG_SOURCE but your own version of AC_LANG_CONFTEST, and the fact that an optimization changed the latter to do part of the work of the former in Autoconf, but your variant of the *CONFTEST macro doesn't do that, breaks your code, and is the regression. First off, unless your real LB_LINUX_CONFTEST looks differently, you should easily be able to work around the issue by something like AC_DEFUN([LB_LINUX_CONFTEST], m4_defn([AC_LANG_CONFTEST])) which I think should work with both old and new Autoconf. Second, I do think this is a regression, as our documentation pretty clearly states that AC_LANG_SOURCE is the one expanding all the AC_DEFINEs seen so far. I do however also think that the old code was ugly and hackish. Not sure whether it would be better to go back, or go forward and announce the API change. But what I do know is that we need better macro coverage here. Cheers, Ralf _______________________________________________ Autoconf mailing list Autoconf@xxxxxxx http://lists.gnu.org/mailman/listinfo/autoconf