summaryrefslogtreecommitdiff
path: root/libiberty/aclocal.m4
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2001-03-06 18:27:14 +0000
committerDJ Delorie <dj@redhat.com>2001-03-06 18:27:14 +0000
commit30673bf5116aafb5896d9f58010595e6c0e45e47 (patch)
treeb2cc84ad403c354f45353002fab03a39abc583c4 /libiberty/aclocal.m4
parentb6ba6518e9254bc25f88088228e93ac966ebccd1 (diff)
merge from gcc
Diffstat (limited to 'libiberty/aclocal.m4')
-rw-r--r--libiberty/aclocal.m452
1 files changed, 52 insertions, 0 deletions
diff --git a/libiberty/aclocal.m4 b/libiberty/aclocal.m4
index c562835277..7b1b677645 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])
+])