the Ubuntu visibility bug only happens when building shared libraries on some systems, use -shared when testing for it

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47937 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2007-08-07 21:13:11 +00:00
parent f5ca194a78
commit 34b340a08e
2 changed files with 12 additions and 4 deletions

View File

@@ -66,19 +66,23 @@ AC_DEFUN([WX_VISIBILITY],
AC_MSG_CHECKING([for broken libstdc++ visibility]) AC_MSG_CHECKING([for broken libstdc++ visibility])
AC_CACHE_VAL(wx_cv_cc_broken_libstdcxx_visibility, [ AC_CACHE_VAL(wx_cv_cc_broken_libstdcxx_visibility, [
wx_save_CXXFLAGS="$CXXFLAGS" wx_save_CXXFLAGS="$CXXFLAGS"
wx_save_LDFLAGS="$LDFLAGS"
CXXFLAGS="$CXXFLAGS $CXXFLAGS_VISIBILITY" CXXFLAGS="$CXXFLAGS $CXXFLAGS_VISIBILITY"
LDFLAGS="$LDFLAGS -shared -fPIC"
AC_LANG_PUSH(C++) AC_LANG_PUSH(C++)
AC_TRY_LINK( AC_TRY_LINK(
[ [
#include <string> #include <string>
], ],
[ [
std::string x; std::string s("hello");
return s.length();
], ],
wx_cv_cc_broken_libstdcxx_visibility=no, wx_cv_cc_broken_libstdcxx_visibility=no,
wx_cv_cc_broken_libstdcxx_visibility=yes) wx_cv_cc_broken_libstdcxx_visibility=yes)
AC_LANG_POP() AC_LANG_POP()
CXXFLAGS="$wx_save_CXXFLAGS"]) CXXFLAGS="$wx_save_CXXFLAGS"
LDFLAGS="$wx_save_LDFLAGS"])
AC_MSG_RESULT([$wx_cv_cc_broken_libstdcxx_visibility]) AC_MSG_RESULT([$wx_cv_cc_broken_libstdcxx_visibility])
if test $wx_cv_cc_broken_libstdcxx_visibility = yes; then if test $wx_cv_cc_broken_libstdcxx_visibility = yes; then
AC_DEFINE([HAVE_BROKEN_LIBSTDCXX_VISIBILITY]) AC_DEFINE([HAVE_BROKEN_LIBSTDCXX_VISIBILITY])

8
configure vendored
View File

@@ -1,5 +1,5 @@
#! /bin/sh #! /bin/sh
# From configure.in Id: configure.in 47918 2007-08-07 01:23:34Z VZ . # From configure.in Id: configure.in 47919 2007-08-07 01:38:18Z VZ .
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for wxWidgets 2.9.0. # Generated by GNU Autoconf 2.61 for wxWidgets 2.9.0.
# #
@@ -36209,7 +36209,9 @@ echo $ECHO_N "checking for broken libstdc++ visibility... $ECHO_C" >&6; }
else else
wx_save_CXXFLAGS="$CXXFLAGS" wx_save_CXXFLAGS="$CXXFLAGS"
wx_save_LDFLAGS="$LDFLAGS"
CXXFLAGS="$CXXFLAGS $CXXFLAGS_VISIBILITY" CXXFLAGS="$CXXFLAGS $CXXFLAGS_VISIBILITY"
LDFLAGS="$LDFLAGS -shared -fPIC"
ac_ext=cpp ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS' ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -36229,7 +36231,8 @@ int
main () main ()
{ {
std::string x; std::string s("hello");
return s.length();
; ;
return 0; return 0;
@@ -36270,6 +36273,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_compiler_gnu=$ac_cv_c_compiler_gnu
CXXFLAGS="$wx_save_CXXFLAGS" CXXFLAGS="$wx_save_CXXFLAGS"
LDFLAGS="$wx_save_LDFLAGS"
fi fi
{ echo "$as_me:$LINENO: result: $wx_cv_cc_broken_libstdcxx_visibility" >&5 { echo "$as_me:$LINENO: result: $wx_cv_cc_broken_libstdcxx_visibility" >&5