diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2011-06-18 14:39:57 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2011-06-18 14:40:23 -0700 |
commit | b1747413a80add0271d6909aecfdc2b638456257 (patch) | |
tree | 60c9c4bb1677eebea23506adb5c790f3d360d002 | |
parent | 9ddea209e5240e7d64d54c888df81b29ccebdd3b (diff) | |
download | autoconf-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-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/autoconf/functions.m4 | 18 |
2 files changed, 11 insertions, 12 deletions
@@ -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], |