summaryrefslogtreecommitdiff
path: root/libiberty/aclocal.m4
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2003-09-02 23:29:10 +0000
committerDJ Delorie <dj@gcc.gnu.org>2003-09-02 19:29:10 -0400
commit86d75906524238df6b5487b3a64cd791c5cd2346 (patch)
treedc5631cd0506f7e4fa167e346acc4ab9f233128a /libiberty/aclocal.m4
parent1918facfd12f3b3466d877a093ff8fc3ef80b668 (diff)
downloadgcc-86d75906524238df6b5487b3a64cd791c5cd2346.tar.gz
re PR bootstrap/12100 (time.h:402: error: previous declaration of `clock'evious declaration of `clock')
2003-08-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> PR bootstrap/12100 * aclocal.m4 (AC_LANG_FUNC_LINK_TRY): Define. * configure: Rebuilt. From-SVN: r71009
Diffstat (limited to 'libiberty/aclocal.m4')
-rw-r--r--libiberty/aclocal.m449
1 files changed, 49 insertions, 0 deletions
diff --git a/libiberty/aclocal.m4 b/libiberty/aclocal.m4
index 118cb029afc..f33e0c6218d 100644
--- a/libiberty/aclocal.m4
+++ b/libiberty/aclocal.m4
@@ -180,3 +180,52 @@ AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction,
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown])
])
+
+# AC_LANG_FUNC_LINK_TRY(C)(FUNCTION)
+# ----------------------------------
+# Don't include <ctype.h> because on OSF/1 3.0 it includes
+# <sys/types.h> which includes <sys/select.h> which contains a
+# prototype for select. Similarly for bzero.
+#
+# This test used to merely assign f=$1 in main(), but that was
+# optimized away by HP unbundled cc A.05.36 for ia64 under +O3,
+# presumably on the basis that there's no need to do that store if the
+# program is about to exit. Conversely, the AIX linker optimizes an
+# unused external declaration that initializes f=$1. So this test
+# program has both an external initialization of f, and a use of f in
+# main that affects the exit status.
+#
+m4_define([AC_LANG_FUNC_LINK_TRY(C)],
+[AC_LANG_PROGRAM(
+[/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $1 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. Under hpux,
+ including <limits.h> includes <sys/time.h> and causes problems
+ checking for functions defined therein. */
+#if defined (__STDC__) && !defined (_HPUX_SOURCE)
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $1 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$1) || defined (__stub___$1)
+choke me
+#else
+char (*f) () = $1;
+#endif
+#ifdef __cplusplus
+}
+#endif
+], [return f != $1;])])
+