fix visibility problems with libstdc++ on Debian and Ubuntu

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2007-07-22 09:20:42 +00:00
parent a2c5db764c
commit d6f513f829
6 changed files with 127 additions and 0 deletions

View File

@@ -60,6 +60,30 @@ AC_DEFUN([WX_VISIBILITY],
AC_MSG_RESULT([$wx_cv_cc_visibility])
if test $wx_cv_cc_visibility = yes; then
AC_DEFINE([HAVE_VISIBILITY])
dnl Debian/Ubuntu's gcc 4.1 is affected:
dnl https://bugs.launchpad.net/ubuntu/+source/gcc-4.1/+bug/109262
AC_MSG_CHECKING([for broken libstdc++ visibility])
AC_CACHE_VAL(wx_cv_cc_broken_libstdcxx_visibility, [
wx_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $CXXFLAGS_VISIBILITY"
AC_LANG_PUSH(C++)
AC_TRY_LINK(
[
#include <string>
],
[
std::string x;
],
wx_cv_cc_broken_libstdcxx_visibility=no,
wx_cv_cc_broken_libstdcxx_visibility=yes)
AC_LANG_POP()
CXXFLAGS="$wx_save_CXXFLAGS"])
AC_MSG_RESULT([$wx_cv_cc_broken_libstdcxx_visibility])
if test $wx_cv_cc_broken_libstdcxx_visibility = yes; then
AC_DEFINE([HAVE_BROKEN_LIBSTDCXX_VISIBILITY])
fi
else
CFLAGS_VISIBILITY=""
CXXFLAGS_VISIBILITY=""