diff options
author | DJ Delorie <dj@redhat.com> | 2001-03-06 18:27:14 +0000 |
---|---|---|
committer | DJ Delorie <dj@redhat.com> | 2001-03-06 18:27:14 +0000 |
commit | 30673bf5116aafb5896d9f58010595e6c0e45e47 (patch) | |
tree | b2cc84ad403c354f45353002fab03a39abc583c4 /libiberty/aclocal.m4 | |
parent | b6ba6518e9254bc25f88088228e93ac966ebccd1 (diff) | |
download | gdb-30673bf5116aafb5896d9f58010595e6c0e45e47.zip gdb-30673bf5116aafb5896d9f58010595e6c0e45e47.tar.gz gdb-30673bf5116aafb5896d9f58010595e6c0e45e47.tar.bz2 |
merge from gcc
Diffstat (limited to 'libiberty/aclocal.m4')
-rw-r--r-- | libiberty/aclocal.m4 | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/libiberty/aclocal.m4 b/libiberty/aclocal.m4 index c562835..7b1b677 100644 --- a/libiberty/aclocal.m4 +++ b/libiberty/aclocal.m4 @@ -134,3 +134,55 @@ define(AC_DEFINE_NOAUTOHEADER, [#define] $1 ifelse($#, 2, [$2], $#, 3, [$2], 1) EOF ]) + +# We always want a C version of alloca() compiled into libiberty, +# because native-compiler support for the real alloca is so !@#$% +# unreliable that GCC has decided to use it only when being compiled +# by GCC. This is the part of AC_FUNC_ALLOCA that calculates the +# information alloca.c needs. +AC_DEFUN(libiberty_AC_FUNC_C_ALLOCA, +[AC_CACHE_CHECK(whether alloca needs Cray hooks, ac_cv_os_cray, +[AC_EGREP_CPP(webecray, +[#if defined(CRAY) && ! defined(CRAY2) +webecray +#else +wenotbecray +#endif +], ac_cv_os_cray=yes, ac_cv_os_cray=no)]) +if test $ac_cv_os_cray = yes; then + for ac_func in _getb67 GETB67 getb67; do + AC_CHECK_FUNC($ac_func, + [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func, + [Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP + systems. This function is required for alloca.c support on those + systems.]) break]) + done +fi + +AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction, +[AC_TRY_RUN([find_stack_direction () +{ + static char *addr = 0; + auto char dummy; + if (addr == 0) + { + addr = &dummy; + return find_stack_direction (); + } + else + return (&dummy > addr) ? 1 : -1; +} +main () +{ + exit (find_stack_direction() < 0); +}], + ac_cv_c_stack_direction=1, + ac_cv_c_stack_direction=-1, + ac_cv_c_stack_direction=0)]) +AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction, + [Define if you know the direction of stack growth for your system; + otherwise it will be automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown]) +]) |