summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2016-02-26 08:10:38 +0100
committerStephan Bergmann <sbergman@redhat.com>2016-02-26 08:57:09 +0100
commit1e161eb96e4ed72e43c158253069f974fff5b36f (patch)
tree2be871f8b1dfda24803c7f81b0eca48f4f4c4e94 /configure.ac
parent3d63d0c14b1c86f22f73a80e42b84e0256fdf818 (diff)
Use config_cxxabi.h to check for __*class_type_info
...as needed e.g. when building on Linux with clang -stdlib=libc++ against libc++abi Change-Id: I1f6f5ebcf5410c65453549ecea77581ccdaabc17
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac48
1 files changed, 48 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 9b1f2dc5c32f..de6eaae7f1e8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6043,6 +6043,30 @@ if test "$GCC" = "yes"; then
], [AC_MSG_RESULT([no])])
CFLAGS=$save_CFLAGS
+ AC_MSG_CHECKING([whether $CXX defines __base_class_type_info in cxxabi.h])
+ AC_LANG_PUSH([C++])
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ #include <cstddef>
+ #include <cxxabi.h>
+ std::size_t f() { return sizeof(__cxxabiv1::__base_class_type_info); }
+ ])], [
+ AC_DEFINE([HAVE_CXXABI_H_BASE_CLASS_TYPE_INFO],[1])
+ AC_MSG_RESULT([yes])
+ ], [AC_MSG_RESULT([no])])
+ AC_LANG_POP([C++])
+
+ AC_MSG_CHECKING([whether $CXX defines __class_type_info in cxxabi.h])
+ AC_LANG_PUSH([C++])
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ #include <cstddef>
+ #include <cxxabi.h>
+ std::size_t f() { return sizeof(__cxxabiv1::__class_type_info); }
+ ])], [
+ AC_DEFINE([HAVE_CXXABI_H_CLASS_TYPE_INFO],[1])
+ AC_MSG_RESULT([yes])
+ ], [AC_MSG_RESULT([no])])
+ AC_LANG_POP([C++])
+
AC_MSG_CHECKING([whether $CXX declares __cxa_allocate_exception in cxxabi.h])
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
@@ -6100,6 +6124,30 @@ if test "$GCC" = "yes"; then
], [AC_MSG_RESULT([no])])
AC_LANG_POP([C++])
+ AC_MSG_CHECKING([whether $CXX defines __si_class_type_info in cxxabi.h])
+ AC_LANG_PUSH([C++])
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ #include <cstddef>
+ #include <cxxabi.h>
+ std::size_t f() { return sizeof(__cxxabiv1::__si_class_type_info); }
+ ])], [
+ AC_DEFINE([HAVE_CXXABI_H_SI_CLASS_TYPE_INFO],[1])
+ AC_MSG_RESULT([yes])
+ ], [AC_MSG_RESULT([no])])
+ AC_LANG_POP([C++])
+
+ AC_MSG_CHECKING([whether $CXX defines __vmi_class_type_info in cxxabi.h])
+ AC_LANG_PUSH([C++])
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ #include <cstddef>
+ #include <cxxabi.h>
+ std::size_t f() { return sizeof(__cxxabiv1::__vmi_class_type_info); }
+ ])], [
+ AC_DEFINE([HAVE_CXXABI_H_VMI_CLASS_TYPE_INFO],[1])
+ AC_MSG_RESULT([yes])
+ ], [AC_MSG_RESULT([no])])
+ AC_LANG_POP([C++])
+
AC_MSG_CHECKING([whether STL uses __attribute__((warn_unused))])
AC_LANG_PUSH([C++])
save_CXXFLAGS=$CXXFLAGS