]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
* lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA): Try to outsmart GCC.
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 18 Jun 2011 21:39:57 +0000 (14:39 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 18 Jun 2011 21:40:23 +0000 (14:40 -0700)
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.

ChangeLog
lib/autoconf/functions.m4

index aaa16408a45fec9de1b85dee7d3308dc545485d7..e0e52ce65633662d34588089a80cbca2a7a2bad5 100644 (file)
--- 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>
index 55419681e5c26e26e4c0da5c4d92fba0635c4e2b..31568872d510da047e9a245040e84551b1ae8ffa 100644 (file)
@@ -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],