-AC_LINK_IFELSE([#include <cxxabi.h>
-int main(){
- size_t sz;
- int status;
- char *ptr = abi::__cxa_demangle ("", 0, &sz, &status);
- return 0;
- }], [AC_DEFINE(HAVE_CXA_DEMANGLE)
- AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT([no, use c++filt -t for manual demangling])])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <cxxabi.h>],
+ [abi::__cxa_demangle ("", 0, 0, 0)])],
+ [AC_DEFINE(HAVE_CXA_DEMANGLE)
+ AC_MSG_RESULT(yes)],[
+ LIBS="$LIBS -lsupc++"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <cxxabi.h>],
+ [abi::__cxa_demangle ("", 0, 0, 0)])],
+ [AC_DEFINE(HAVE_CXA_DEMANGLE)
+ AC_MSG_RESULT([yes, using -lsupc++])
+ CXXABI_LIBS="$CXXABI_LIBS -lsupc++"],
+ [AC_MSG_RESULT([no, use c++filt -t for manual demangling])])])
+LIBS="$save_LIBS"
+AC_SUBST(CXXABI_LIBS)