diff options
author | Brian Aker <brian@tangent.org> | 2012-11-29 00:58:17 -0500 |
---|---|---|
committer | Brian Aker <brian@tangent.org> | 2012-11-29 00:58:17 -0500 |
commit | f6311a607d957bee75d6cf402098eeb06cd7f0be (patch) | |
tree | 68c73579c3bab573b27d9db9924e8e6be4df1c36 /m4 | |
parent | 02e76bdf89bf11934a8c47a9c2d67dc67952b73b (diff) | |
download | libmemcached-f6311a607d957bee75d6cf402098eeb06cd7f0be.tar.gz |
Update to working version.
Diffstat (limited to 'm4')
-rw-r--r-- | m4/ax_cxx_gcc_abi_demangle.m4 | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/m4/ax_cxx_gcc_abi_demangle.m4 b/m4/ax_cxx_gcc_abi_demangle.m4 index 02c718ec..41ea469e 100644 --- a/m4/ax_cxx_gcc_abi_demangle.m4 +++ b/m4/ax_cxx_gcc_abi_demangle.m4 @@ -27,26 +27,30 @@ #serial 9 AC_DEFUN([AX_CXX_GCC_ABI_DEMANGLE], - [AC_CACHE_CHECK([whether the compiler supports GCC C++ ABI name demangling], + [AC_PREREQ([2.63])dnl + AC_CACHE_CHECK([whether the compiler supports GCC C++ ABI name demangling], [ax_cv_cxx_gcc_abi_demangle], [AC_LANG_PUSH([C++]) - AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <typeinfo> + AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <typeinfo> #include <cxxabi.h> #include <cstdlib> -#include <string>], - [template<typename TYPE> - class A {}; - ],[A<int> instance; +#include <string> + template<typename TYPE> + class A {};]], + [[A<int> instance; int status = 0; char* c_name = abi::__cxa_demangle(typeid(instance).name(), 0, 0, &status); std::string name(c_name); ::free(c_name); - return name == "A<int>"; - ])],[ax_cv_cxx_gcc_abi_demangle=yes], - [ax_cv_cxx_gcc_abi_demangle=no], - [ax_cv_cxx_gcc_abi_demangle=no]) + if (name.compare("A<int>") != 0) + { + return EXIT_FAILURE; + }]])], + [ax_cv_cxx_gcc_abi_demangle=yes], + [ax_cv_cxx_gcc_abi_demangle=no], + [ax_cv_cxx_gcc_abi_demangle=no]) AC_LANG_POP]) AS_IF([test "x$ax_cv_cxx_gcc_abi_demangle" = xyes], [AC_DEFINE([HAVE_GCC_ABI_DEMANGLE],[1],[define if the compiler supports GCC C++ ABI name demangling])]) |