summaryrefslogtreecommitdiff
path: root/libstdc++-v3/linkage.m4
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2013-02-11 17:50:13 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2013-02-11 17:50:13 +0000
commit6985c6f9253a2e5abc4dc1612ad6ff6c90800752 (patch)
treefe180eb10b98589f5ed9fd419ccd34e3c604d803 /libstdc++-v3/linkage.m4
parentffc1977a9d0e485ad63906c4ad8998166e7250b9 (diff)
downloadgcc-6985c6f9253a2e5abc4dc1612ad6ff6c90800752.tar.gz
* linkage.m4 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE): New.
(GLIBCXX_CHECK_STDLIB_SUPPORT): Check for atexit and at_quick_exit. * include/c_std/cstdlib: Add atexit and at_quick_exit. * include/c_global/cstdlib: Add atexit and at_quick_exit. * testsuite/18_support/quick_exit/quick_exit.cc: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195948 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/linkage.m4')
-rw-r--r--libstdc++-v3/linkage.m431
1 files changed, 31 insertions, 0 deletions
diff --git a/libstdc++-v3/linkage.m4 b/libstdc++-v3/linkage.m4
index b24f4556000..45a09cdf445 100644
--- a/libstdc++-v3/linkage.m4
+++ b/libstdc++-v3/linkage.m4
@@ -239,6 +239,35 @@ dnl 2) has "C" linkage
dnl
dnl argument 1 is name of function to check
dnl
+dnl ASSUMES argument is a stdlib function with ONE parameter
+dnl
+dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1
+AC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1], [
+ AC_MSG_CHECKING([for $1 declaration])
+ if test x${glibcxx_cv_func_$1_use+set} != xset; then
+ AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([#include <stdlib.h>],
+ [ $1(0);],
+ [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no])
+ AC_LANG_RESTORE
+ ])
+ fi
+ AC_MSG_RESULT($glibcxx_cv_func_$1_use)
+ if test x$glibcxx_cv_func_$1_use = x"yes"; then
+ AC_CHECK_FUNCS($1)
+ fi
+])
+
+
+dnl
+dnl Check to see if the (stdlib function) argument passed is
+dnl 1) declared when using the c++ compiler
+dnl 2) has "C" linkage
+dnl
+dnl argument 1 is name of function to check
+dnl
dnl ASSUMES argument is a stdlib function with TWO parameters
dnl
dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2
@@ -306,6 +335,8 @@ AC_DEFUN([GLIBCXX_CHECK_STDLIB_SUPPORT], [
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
+ GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1(at_quick_exit)
+ GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1(quick_exit)
GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold)
GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof)