diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2016-02-26 08:10:38 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2016-02-26 08:57:09 +0100 |
commit | 1e161eb96e4ed72e43c158253069f974fff5b36f (patch) | |
tree | 2be871f8b1dfda24803c7f81b0eca48f4f4c4e94 /configure.ac | |
parent | 3d63d0c14b1c86f22f73a80e42b84e0256fdf818 (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.ac | 48 |
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 |