Группа :: Разработка/Прочее
Пакет: autoconf_2.60
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: autoconf-2.59-alt-AC_LANG_FUNC_LINK_TRY_GCC_BUILTIN.patch
Скачать
Скачать
autoconf/lib/autoconf/c.m4 | 24 ++++++++++++++++++++++++
autoconf/lib/autoconf/functions.m4 | 4 +++-
autoconf/lib/autoconf/lang.m4 | 7 +++++++
3 files changed, 34 insertions(+), 1 deletions(-)
diff --git a/autoconf/lib/autoconf/c.m4 b/autoconf/lib/autoconf/c.m4
index 2a28a3b..f4c5f81 100644
--- a/autoconf/lib/autoconf/c.m4
+++ b/autoconf/lib/autoconf/c.m4
@@ -253,6 +253,25 @@ choke me
], [return $1 ();])])
+# AC_LANG_FUNC_LINK_TRY_GCC_BUILTIN(C)(FUNCTION)
+# ----------------------------------
+# This will test if function is available as
+# gcc3 builtin.
+#
+m4_define([AC_LANG_FUNC_LINK_TRY_GCC_BUILTIN(C)],
+[AC_LANG_PROGRAM(
+[#ifndef __GNUC__
+choke me
+#else
+#undef $1
+/* Declare this function with same prototype as __builtin_$1.
+ This removes warning about conflicting type with builtin */
+__typeof__(__builtin_$1) $1;
+
+__typeof__(__builtin_$1) *f = $1;
+#endif
+], [return f != __builtin_$1;])])
+
# AC_LANG_BOOL_COMPILE_TRY(C)(PROLOGUE, EXPRESSION)
# -------------------------------------------------
# Return a program that is valid if EXPRESSION is nonzero.
@@ -321,6 +340,11 @@ m4_copy([AC_LANG_CALL(C)], [AC_LANG_CALL(C++)])
m4_copy([AC_LANG_FUNC_LINK_TRY(C)], [AC_LANG_FUNC_LINK_TRY(C++)])
+# AC_LANG_FUNC_LINK_TRY_GCC_BUILTIN(C++)(FUNCTION)
+# ------------------------------------
+m4_copy([AC_LANG_FUNC_LINK_TRY_GCC_BUILTIN(C)], [AC_LANG_FUNC_LINK_TRY_GCC_BUILTIN(C++)])
+
+
# AC_LANG_BOOL_COMPILE_TRY(C++)(PROLOGUE, EXPRESSION)
# ---------------------------------------------------
m4_copy([AC_LANG_BOOL_COMPILE_TRY(C)], [AC_LANG_BOOL_COMPILE_TRY(C++)])
diff --git a/autoconf/lib/autoconf/functions.m4 b/autoconf/lib/autoconf/functions.m4
index ec22aa9..d31bd12 100644
--- a/autoconf/lib/autoconf/functions.m4
+++ b/autoconf/lib/autoconf/functions.m4
@@ -69,7 +69,9 @@ AC_DEFUN([AC_CHECK_FUNC],
AC_CACHE_CHECK([for $1], [ac_var],
[AC_LINK_IFELSE([AC_LANG_FUNC_LINK_TRY([$1])],
[AS_VAR_SET([ac_var], [yes])],
- [AS_VAR_SET([ac_var], [no])])])
+ [AC_LINK_IFELSE([AC_LANG_FUNC_LINK_TRY_GCC_BUILTIN([$1])],
+ [AS_VAR_SET([ac_var], [yes])],
+ [AS_VAR_SET([ac_var], [no])])])])
AS_IF([test AS_VAR_GET([ac_var]) = yes], [$2], [$3])dnl
AS_VAR_POPDEF([ac_var])dnl
])# AC_CHECK_FUNC
diff --git a/autoconf/lib/autoconf/lang.m4 b/autoconf/lib/autoconf/lang.m4
index 9816633..ee05287 100644
--- a/autoconf/lib/autoconf/lang.m4
+++ b/autoconf/lib/autoconf/lang.m4
@@ -254,6 +254,13 @@ AC_DEFUN([AC_LANG_FUNC_LINK_TRY],
_AC_LANG_DISPATCH([$0], _AC_LANG, $@)])
+# AC_LANG_FUNC_LINK_TRY_GCC_BUILTIN(FUNCTION, TYPE)
+# -------------------------------
+AC_DEFUN([AC_LANG_FUNC_LINK_TRY_GCC_BUILTIN],
+[m4_ifval([$1], [], [m4_warn([syntax], [$0: no function given])])dnl
+_AC_LANG_DISPATCH([$0], _AC_LANG, $@)])
+
+
# AC_LANG_BOOL_COMPILE_TRY(PROLOGUE, EXPRESSION)
# ----------------------------------------------
# Produce a program that compiles with success iff the boolean EXPRESSION