summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2011-06-18 14:39:57 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2011-06-18 14:40:23 -0700
commitb1747413a80add0271d6909aecfdc2b638456257 (patch)
tree60c9c4bb1677eebea23506adb5c790f3d360d002
parent9ddea209e5240e7d64d54c888df81b29ccebdd3b (diff)
downloadautoconf-b1747413a80add0271d6909aecfdc2b638456257.tar.gz
* lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA): Try to outsmart GCC.
Problem with stack-detection code reported by Andy Wingo in <http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00032.html>. This fix is imported from gnulib's c-stack module.
-rw-r--r--ChangeLog5
-rw-r--r--lib/autoconf/functions.m418
2 files changed, 11 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index aaa16408..e0e52ce6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2011-06-18 Paul Eggert <eggert@cs.ucla.edu>
+ * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA): Try to outsmart GCC.
+ Problem with stack-detection code reported by Andy Wingo in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00032.html>.
+ This fix is imported from gnulib's c-stack module.
+
* doc/autoconf.texi (File Descriptors): Fix texinfo typo.
2011-06-14 Eric Blake <eblake@redhat.com>
diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4
index 55419681..31568872 100644
--- a/lib/autoconf/functions.m4
+++ b/lib/autoconf/functions.m4
@@ -325,23 +325,17 @@ AC_CACHE_CHECK([stack direction for C alloca],
[AC_RUN_IFELSE([AC_LANG_SOURCE(
[AC_INCLUDES_DEFAULT
int
-find_stack_direction ()
+find_stack_direction (char *addr)
{
- static char *addr = 0;
- auto char dummy;
- if (addr == 0)
- {
- addr = &dummy;
- return find_stack_direction ();
- }
- else
- return (&dummy > addr) ? 1 : -1;
+ char dummy;
+ return (! addr ? find_stack_direction (&dummy)
+ : addr < &dummy ? 1 : -1);
}
int
-main ()
+main (void)
{
- return find_stack_direction () < 0;
+ return find_stack_direction (0) < 0;
}])],
[ac_cv_c_stack_direction=1],
[ac_cv_c_stack_direction=-1],