added GCC visibility support
authorVáclav Slavík <vslavik@fastmail.fm>
Mon, 9 Jul 2007 10:12:51 +0000 (10:12 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Mon, 9 Jul 2007 10:12:51 +0000 (10:12 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47255 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

aclocal.m4
build/aclocal/visibility.m4 [new file with mode: 0644]
build/autogen.mk
configure
configure.in
include/wx/dlimpexp.h
setup.h.in
setup.h_vms
version-script.in

index 3b5e1f43dad83788cc0279d474140b19c390abbb..c49c970645cbacb3172cdc27c5645df96d0c1c9e 100644 (file)
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.10 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005  Free Software Foundation, Inc.
+# 2005, 2006  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -11,6 +11,8 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+m4_include([build/aclocal/ac_raf_func_which_getservbyname_r.m4])
+m4_include([build/aclocal/ax_func_which_gethostbyname_r.m4])
 m4_include([build/aclocal/bakefile-dllar.m4])
 m4_include([build/aclocal/bakefile-lang.m4])
 m4_include([build/aclocal/bakefile.m4])
 m4_include([build/aclocal/bakefile-dllar.m4])
 m4_include([build/aclocal/bakefile-lang.m4])
 m4_include([build/aclocal/bakefile.m4])
@@ -19,6 +21,5 @@ m4_include([build/aclocal/gtk-2.0.m4])
 m4_include([build/aclocal/gtk.m4])
 m4_include([build/aclocal/pkg.m4])
 m4_include([build/aclocal/sdl.m4])
 m4_include([build/aclocal/gtk.m4])
 m4_include([build/aclocal/pkg.m4])
 m4_include([build/aclocal/sdl.m4])
-m4_include([build/aclocal/ax_func_which_gethostbyname_r.m4])
-m4_include([build/aclocal/ac_raf_func_which_getservbyname_r.m4])
+m4_include([build/aclocal/visibility.m4])
 m4_include([acinclude.m4])
 m4_include([acinclude.m4])
diff --git a/build/aclocal/visibility.m4 b/build/aclocal/visibility.m4
new file mode 100644 (file)
index 0000000..49ae7bb
--- /dev/null
@@ -0,0 +1,70 @@
+dnl visibility.m4 serial 1 (gettext-0.15)
+dnl Copyright (C) 2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+dnl Modified for use in wxWidgets by Vaclav Slavik:
+dnl    - don't define HAVE_VISIBILITY (=0) if not supported
+dnl    - use -fvisibility-inlines-hidden too
+dnl    - test in C++ mode
+
+dnl Tests whether the compiler supports the command-line option
+dnl -fvisibility=hidden and the function and variable attributes
+dnl __attribute__((__visibility__("hidden"))) and
+dnl __attribute__((__visibility__("default"))).
+dnl Does *not* test for __visibility__("protected") - which has tricky
+dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
+dnl MacOS X.
+dnl Does *not* test for __visibility__("internal") - which has processor
+dnl dependent semantics.
+dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
+dnl "really only recommended for legacy code".
+dnl Set the variable CFLAG_VISIBILITY.
+dnl Defines and sets the variable HAVE_VISIBILITY.
+
+AC_DEFUN([WX_VISIBILITY],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  if test -n "$GCC"; then
+    CFLAGS_VISIBILITY="-fvisibility=hidden"
+    CXXFLAGS_VISIBILITY="-fvisibility=hidden -fvisibility-inlines-hidden"
+    AC_MSG_CHECKING([for symbols visibility support])
+    AC_CACHE_VAL(wx_cv_cc_visibility, [
+      wx_save_CXXFLAGS="$CXXFLAGS"
+      CXXFLAGS="$CXXFLAGS $CXXFLAGS_VISIBILITY"
+      AC_LANG_PUSH(C++)
+      AC_TRY_COMPILE(
+        [
+         /* we need gcc >= 4.0, older versions with visibility support
+            didn't have class visibility: */
+         #if defined(__GNUC__) && __GNUC__ < 4
+         error this gcc is too old;
+         #endif
+          
+         extern __attribute__((__visibility__("hidden"))) int hiddenvar;
+         extern __attribute__((__visibility__("default"))) int exportedvar;
+         extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
+         extern __attribute__((__visibility__("default"))) int exportedfunc (void);
+         class __attribute__((__visibility__("default"))) Foo {
+           Foo() {}
+         };
+        ],
+        [],
+        wx_cv_cc_visibility=yes,
+        wx_cv_cc_visibility=no)
+      AC_LANG_POP()
+      CXXFLAGS="$wx_save_CXXFLAGS"])
+    AC_MSG_RESULT([$wx_cv_cc_visibility])
+    if test $wx_cv_cc_visibility = yes; then
+      AC_DEFINE([HAVE_VISIBILITY])
+    else
+      CFLAGS_VISIBILITY=""
+      CXXFLAGS_VISIBILITY=""
+    fi
+    AC_SUBST([CFLAGS_VISIBILITY])
+    AC_SUBST([CXXFLAGS_VISIBILITY])
+  fi
+])
index 2da3f2fa74074c1376a75ed4a8e97512d0010d25..fa06f2f0ccb96f24b18c57dfdb104793c59270e5 100644 (file)
@@ -58,7 +58,8 @@ ACLOCAL_SOURCES = \
   build/aclocal/gtk-2.0.m4 \
   build/aclocal/gtk.m4 \
   build/aclocal/pkg.m4 \
   build/aclocal/gtk-2.0.m4 \
   build/aclocal/gtk.m4 \
   build/aclocal/pkg.m4 \
-  build/aclocal/sdl.m4
+  build/aclocal/sdl.m4 \
+  build/aclocal/visibility.m4
 
 # Run aclocal whenever acinclude or one of our local m4s is updated.
 aclocal.m4: configure.in acinclude.m4 $(ACLOCAL_SOURCES)
 
 # Run aclocal whenever acinclude or one of our local m4s is updated.
 aclocal.m4: configure.in acinclude.m4 $(ACLOCAL_SOURCES)
index 326d2b578f8eaafd1a7b930a884e295374f0f060..111e57acf4d470b17b271b4e174db6ae761bd3f0 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
 #! /bin/sh
-# From configure.in Id: configure.in 46713 2007-06-26 20:44:58Z VS .
+# From configure.in Id: configure.in 47230 2007-07-08 07:04:38Z VS .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.61 for wxWidgets 2.9.0.
 #
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.61 for wxWidgets 2.9.0.
 #
@@ -707,6 +707,8 @@ PANGOFT2_CFLAGS
 PANGOFT2_LIBS
 PANGOXFT_CFLAGS
 PANGOXFT_LIBS
 PANGOFT2_LIBS
 PANGOXFT_CFLAGS
 PANGOXFT_LIBS
+CFLAGS_VISIBILITY
+CXXFLAGS_VISIBILITY
 REZ
 DEREZ
 SETFILE
 REZ
 DEREZ
 SETFILE
@@ -33096,6 +33098,105 @@ echo "${ECHO_T}$wx_cv_version_script" >&6; }
     esac
 
 
     esac
 
 
+
+
+  if test -n "$GCC"; then
+    CFLAGS_VISIBILITY="-fvisibility=hidden"
+    CXXFLAGS_VISIBILITY="-fvisibility=hidden -fvisibility-inlines-hidden"
+    { echo "$as_me:$LINENO: checking for symbols visibility support" >&5
+echo $ECHO_N "checking for symbols visibility support... $ECHO_C" >&6; }
+    if test "${wx_cv_cc_visibility+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+      wx_save_CXXFLAGS="$CXXFLAGS"
+      CXXFLAGS="$CXXFLAGS $CXXFLAGS_VISIBILITY"
+      ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+         /* we need gcc >= 4.0, older versions with visibility support
+            didn't have class visibility: */
+         #if defined(__GNUC__) && __GNUC__ < 4
+         error this gcc is too old;
+         #endif
+
+         extern __attribute__((__visibility__("hidden"))) int hiddenvar;
+         extern __attribute__((__visibility__("default"))) int exportedvar;
+         extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
+         extern __attribute__((__visibility__("default"))) int exportedfunc (void);
+         class __attribute__((__visibility__("default"))) Foo {
+           Foo() {}
+         };
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_cxx_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  wx_cv_cc_visibility=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       wx_cv_cc_visibility=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+      CXXFLAGS="$wx_save_CXXFLAGS"
+fi
+
+    { echo "$as_me:$LINENO: result: $wx_cv_cc_visibility" >&5
+echo "${ECHO_T}$wx_cv_cc_visibility" >&6; }
+    if test $wx_cv_cc_visibility = yes; then
+      cat >>confdefs.h <<\_ACEOF
+#define HAVE_VISIBILITY 1
+_ACEOF
+
+    else
+      CFLAGS_VISIBILITY=""
+      CXXFLAGS_VISIBILITY=""
+    fi
+
+
+  fi
+
+
         if test "x$SUNCXX" = xyes; then
         SAMPLES_RPATH_FLAG="-R\$(wx_top_builddir)/lib"
         WXCONFIG_RPATH="-R\$libdir"
         if test "x$SUNCXX" = xyes; then
         SAMPLES_RPATH_FLAG="-R\$(wx_top_builddir)/lib"
         WXCONFIG_RPATH="-R\$libdir"
@@ -49482,6 +49583,9 @@ case "${host}" in
         ;;
 esac
 
         ;;
 esac
 
+CFLAGS="$CFLAGS $CFLAGS_VISIBILITY"
+CXXFLAGS="$CXXFLAGS $CXXFLAGS_VISIBILITY"
+
 SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`"
 
 
 SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`"
 
 
@@ -50511,12 +50615,12 @@ PANGOFT2_CFLAGS!$PANGOFT2_CFLAGS$ac_delim
 PANGOFT2_LIBS!$PANGOFT2_LIBS$ac_delim
 PANGOXFT_CFLAGS!$PANGOXFT_CFLAGS$ac_delim
 PANGOXFT_LIBS!$PANGOXFT_LIBS$ac_delim
 PANGOFT2_LIBS!$PANGOFT2_LIBS$ac_delim
 PANGOXFT_CFLAGS!$PANGOXFT_CFLAGS$ac_delim
 PANGOXFT_LIBS!$PANGOXFT_LIBS$ac_delim
+CFLAGS_VISIBILITY!$CFLAGS_VISIBILITY$ac_delim
+CXXFLAGS_VISIBILITY!$CXXFLAGS_VISIBILITY$ac_delim
 REZ!$REZ$ac_delim
 DEREZ!$DEREZ$ac_delim
 SETFILE!$SETFILE$ac_delim
 LIBICONV!$LIBICONV$ac_delim
 REZ!$REZ$ac_delim
 DEREZ!$DEREZ$ac_delim
 SETFILE!$SETFILE$ac_delim
 LIBICONV!$LIBICONV$ac_delim
-SDL_CONFIG!$SDL_CONFIG$ac_delim
-SDL_CFLAGS!$SDL_CFLAGS$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -50558,6 +50662,8 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+SDL_CONFIG!$SDL_CONFIG$ac_delim
+SDL_CFLAGS!$SDL_CFLAGS$ac_delim
 SDL_LIBS!$SDL_LIBS$ac_delim
 LIBGNOMEPRINTUI_CFLAGS!$LIBGNOMEPRINTUI_CFLAGS$ac_delim
 LIBGNOMEPRINTUI_LIBS!$LIBGNOMEPRINTUI_LIBS$ac_delim
 SDL_LIBS!$SDL_LIBS$ac_delim
 LIBGNOMEPRINTUI_CFLAGS!$LIBGNOMEPRINTUI_CFLAGS$ac_delim
 LIBGNOMEPRINTUI_LIBS!$LIBGNOMEPRINTUI_LIBS$ac_delim
@@ -50653,8 +50759,6 @@ COND_BUILD_DEBUG!$COND_BUILD_DEBUG$ac_delim
 COND_BUILD_DEBUG_DEBUG_FLAG_DEFAULT!$COND_BUILD_DEBUG_DEBUG_FLAG_DEFAULT$ac_delim
 COND_BUILD_DEBUG_DEBUG_INFO_DEFAULT!$COND_BUILD_DEBUG_DEBUG_INFO_DEFAULT$ac_delim
 COND_BUILD_DEBUG_UNICODE_0!$COND_BUILD_DEBUG_UNICODE_0$ac_delim
 COND_BUILD_DEBUG_DEBUG_FLAG_DEFAULT!$COND_BUILD_DEBUG_DEBUG_FLAG_DEFAULT$ac_delim
 COND_BUILD_DEBUG_DEBUG_INFO_DEFAULT!$COND_BUILD_DEBUG_DEBUG_INFO_DEFAULT$ac_delim
 COND_BUILD_DEBUG_UNICODE_0!$COND_BUILD_DEBUG_UNICODE_0$ac_delim
-COND_BUILD_DEBUG_UNICODE_1!$COND_BUILD_DEBUG_UNICODE_1$ac_delim
-COND_BUILD_RELEASE!$COND_BUILD_RELEASE$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -50696,6 +50800,8 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+COND_BUILD_DEBUG_UNICODE_1!$COND_BUILD_DEBUG_UNICODE_1$ac_delim
+COND_BUILD_RELEASE!$COND_BUILD_RELEASE$ac_delim
 COND_BUILD_RELEASE_DEBUG_INFO_DEFAULT!$COND_BUILD_RELEASE_DEBUG_INFO_DEFAULT$ac_delim
 COND_BUILD_RELEASE_UNICODE_0!$COND_BUILD_RELEASE_UNICODE_0$ac_delim
 COND_BUILD_RELEASE_UNICODE_1!$COND_BUILD_RELEASE_UNICODE_1$ac_delim
 COND_BUILD_RELEASE_DEBUG_INFO_DEFAULT!$COND_BUILD_RELEASE_DEBUG_INFO_DEFAULT$ac_delim
 COND_BUILD_RELEASE_UNICODE_0!$COND_BUILD_RELEASE_UNICODE_0$ac_delim
 COND_BUILD_RELEASE_UNICODE_1!$COND_BUILD_RELEASE_UNICODE_1$ac_delim
@@ -50791,8 +50897,6 @@ COND_TOOLKIT_!$COND_TOOLKIT_$ac_delim
 COND_TOOLKIT_COCOA!$COND_TOOLKIT_COCOA$ac_delim
 COND_TOOLKIT_COCOA_USE_GUI_1!$COND_TOOLKIT_COCOA_USE_GUI_1$ac_delim
 COND_TOOLKIT_COCOA_USE_GUI_1_WXUNIV_0!$COND_TOOLKIT_COCOA_USE_GUI_1_WXUNIV_0$ac_delim
 COND_TOOLKIT_COCOA!$COND_TOOLKIT_COCOA$ac_delim
 COND_TOOLKIT_COCOA_USE_GUI_1!$COND_TOOLKIT_COCOA_USE_GUI_1$ac_delim
 COND_TOOLKIT_COCOA_USE_GUI_1_WXUNIV_0!$COND_TOOLKIT_COCOA_USE_GUI_1_WXUNIV_0$ac_delim
-COND_TOOLKIT_DFB!$COND_TOOLKIT_DFB$ac_delim
-COND_TOOLKIT_DFB_USE_GUI_1!$COND_TOOLKIT_DFB_USE_GUI_1$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -50834,6 +50938,8 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+COND_TOOLKIT_DFB!$COND_TOOLKIT_DFB$ac_delim
+COND_TOOLKIT_DFB_USE_GUI_1!$COND_TOOLKIT_DFB_USE_GUI_1$ac_delim
 COND_TOOLKIT_GTK!$COND_TOOLKIT_GTK$ac_delim
 COND_TOOLKIT_GTK_TOOLKIT_VERSION_!$COND_TOOLKIT_GTK_TOOLKIT_VERSION_$ac_delim
 COND_TOOLKIT_GTK_TOOLKIT_VERSION_2!$COND_TOOLKIT_GTK_TOOLKIT_VERSION_2$ac_delim
 COND_TOOLKIT_GTK!$COND_TOOLKIT_GTK$ac_delim
 COND_TOOLKIT_GTK_TOOLKIT_VERSION_!$COND_TOOLKIT_GTK_TOOLKIT_VERSION_$ac_delim
 COND_TOOLKIT_GTK_TOOLKIT_VERSION_2!$COND_TOOLKIT_GTK_TOOLKIT_VERSION_2$ac_delim
@@ -50929,8 +51035,6 @@ GUIDIST!$GUIDIST$ac_delim
 DISTDIR!$DISTDIR$ac_delim
 SAMPLES_SUBDIRS!$SAMPLES_SUBDIRS$ac_delim
 LDFLAGS_GL!$LDFLAGS_GL$ac_delim
 DISTDIR!$DISTDIR$ac_delim
 SAMPLES_SUBDIRS!$SAMPLES_SUBDIRS$ac_delim
 LDFLAGS_GL!$LDFLAGS_GL$ac_delim
-OPENGL_LIBS!$OPENGL_LIBS$ac_delim
-DMALLOC_LIBS!$DMALLOC_LIBS$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -50972,6 +51076,8 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+OPENGL_LIBS!$OPENGL_LIBS$ac_delim
+DMALLOC_LIBS!$DMALLOC_LIBS$ac_delim
 WX_VERSION_TAG!$WX_VERSION_TAG$ac_delim
 RESCOMP!$RESCOMP$ac_delim
 RESFLAGS!$RESFLAGS$ac_delim
 WX_VERSION_TAG!$WX_VERSION_TAG$ac_delim
 RESCOMP!$RESCOMP$ac_delim
 RESFLAGS!$RESFLAGS$ac_delim
@@ -50987,7 +51093,7 @@ LIBOBJS!$LIBOBJS$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 13; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 15; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
index aa8766954b74b41cdc7ec35ee468fd16a72d6fcf..2851997d9be3fc8415c1f4240d0b38f64f52bbcb 100644 (file)
@@ -4127,6 +4127,10 @@ if test "$wxUSE_SHARED" = "yes"; then
     dnl use versioned symbols if available on the platform
     WX_VERSIONED_SYMBOLS([\$(wx_top_builddir)/version-script])
 
     dnl use versioned symbols if available on the platform
     WX_VERSIONED_SYMBOLS([\$(wx_top_builddir)/version-script])
 
+    dnl test for GCC's visibility support (sets CFLAGS_VISIBILITY, which is
+    dnl assigned to CFLAGS and CXXFLAGS below)
+    WX_VISIBILITY
+
     dnl test for Sun CC which can be used under both Solaris and Linux
     if test "x$SUNCXX" = xyes; then
         SAMPLES_RPATH_FLAG="-R\$(wx_top_builddir)/lib"
     dnl test for Sun CC which can be used under both Solaris and Linux
     if test "x$SUNCXX" = xyes; then
         SAMPLES_RPATH_FLAG="-R\$(wx_top_builddir)/lib"
@@ -8075,6 +8079,11 @@ case "${host}" in
         ;;
 esac
 
         ;;
 esac
 
+dnl Add visibility support flags to CFLAGS/CXXFLAGS - do it this late so that
+dnl it doesn't affect compilation checks above
+CFLAGS="$CFLAGS $CFLAGS_VISIBILITY"
+CXXFLAGS="$CXXFLAGS $CXXFLAGS_VISIBILITY"
+
 dnl for convenience, sort the samples in alphabetical order
 dnl
 dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
 dnl for convenience, sort the samples in alphabetical order
 dnl
 dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
index 6a82f65610a399f30477eb38c37b6e3c0306d1e1..e2baeb9f04f249b58f01ab70d2abf588714e22b5 100644 (file)
@@ -16,7 +16,7 @@
 #ifndef _WX_DLIMPEXP_H_
 #define _WX_DLIMPEXP_H_
 
 #ifndef _WX_DLIMPEXP_H_
 #define _WX_DLIMPEXP_H_
 
-#if defined(__WXMSW__)
+#if defined(__WINDOWS__)
     /*
        __declspec works in BC++ 5 and later, Watcom C++ 11.0 and later as well
        as VC++ and gcc
     /*
        __declspec works in BC++ 5 and later, Watcom C++ 11.0 and later as well
        as VC++ and gcc
@@ -51,6 +51,9 @@
 #elif defined(__CYGWIN__)
 #    define WXEXPORT __declspec(dllexport)
 #    define WXIMPORT __declspec(dllimport)
 #elif defined(__CYGWIN__)
 #    define WXEXPORT __declspec(dllexport)
 #    define WXIMPORT __declspec(dllimport)
+#elif defined(HAVE_VISIBILITY)
+#    define WXEXPORT __attribute__ ((visibility("default")))
+#    define WXIMPORT
 #endif
 
 /* for other platforms/compilers we don't anything */
 #endif
 
 /* for other platforms/compilers we don't anything */
 
 /* GCC warns about using __attribute__ on forward declarations, so we need
    another set of macros for them: */
 
 /* GCC warns about using __attribute__ on forward declarations, so we need
    another set of macros for them: */
-#define WXDLLIMPEXP_FWD_BASE      WXDLLIMPEXP_BASE
-#define WXDLLIMPEXP_FWD_NET       WXDLLIMPEXP_NET
-#define WXDLLIMPEXP_FWD_CORE      WXDLLIMPEXP_CORE
-#define WXDLLIMPEXP_FWD_ADV       WXDLLIMPEXP_ADV
-#define WXDLLIMPEXP_FWD_QA        WXDLLIMPEXP_QA
-#define WXDLLIMPEXP_FWD_ODBC      WXDLLIMPEXP_ODBC
-#define WXDLLIMPEXP_FWD_DBGRID    WXDLLIMPEXP_DBGRID
-#define WXDLLIMPEXP_FWD_HTML      WXDLLIMPEXP_HTML
-#define WXDLLIMPEXP_FWD_GL        WXDLLIMPEXP_GL
-#define WXDLLIMPEXP_FWD_XML       WXDLLIMPEXP_XML
-#define WXDLLIMPEXP_FWD_XRC       WXDLLIMPEXP_XRC
-#define WXDLLIMPEXP_FWD_AUI       WXDLLIMPEXP_AUI
-#define WXDLLIMPEXP_FWD_RICHTEXT  WXDLLIMPEXP_RICHTEXT
-#define WXDLLIMPEXP_FWD_MEDIA     WXDLLIMPEXP_MEDIA
-#define WXDLLIMPEXP_FWD_STC       WXDLLIMPEXP_STC
+#if defined(HAVE_VISIBILITY)
+    #define WXDLLIMPEXP_FWD_BASE
+    #define WXDLLIMPEXP_FWD_NET
+    #define WXDLLIMPEXP_FWD_CORE
+    #define WXDLLIMPEXP_FWD_ADV
+    #define WXDLLIMPEXP_FWD_QA
+    #define WXDLLIMPEXP_FWD_ODBC
+    #define WXDLLIMPEXP_FWD_DBGRID
+    #define WXDLLIMPEXP_FWD_HTML
+    #define WXDLLIMPEXP_FWD_GL
+    #define WXDLLIMPEXP_FWD_XML
+    #define WXDLLIMPEXP_FWD_XRC
+    #define WXDLLIMPEXP_FWD_AUI
+    #define WXDLLIMPEXP_FWD_RICHTEXT
+    #define WXDLLIMPEXP_FWD_MEDIA
+    #define WXDLLIMPEXP_FWD_STC
+#else
+    #define WXDLLIMPEXP_FWD_BASE      WXDLLIMPEXP_BASE
+    #define WXDLLIMPEXP_FWD_NET       WXDLLIMPEXP_NET
+    #define WXDLLIMPEXP_FWD_CORE      WXDLLIMPEXP_CORE
+    #define WXDLLIMPEXP_FWD_ADV       WXDLLIMPEXP_ADV
+    #define WXDLLIMPEXP_FWD_QA        WXDLLIMPEXP_QA
+    #define WXDLLIMPEXP_FWD_ODBC      WXDLLIMPEXP_ODBC
+    #define WXDLLIMPEXP_FWD_DBGRID    WXDLLIMPEXP_DBGRID
+    #define WXDLLIMPEXP_FWD_HTML      WXDLLIMPEXP_HTML
+    #define WXDLLIMPEXP_FWD_GL        WXDLLIMPEXP_GL
+    #define WXDLLIMPEXP_FWD_XML       WXDLLIMPEXP_XML
+    #define WXDLLIMPEXP_FWD_XRC       WXDLLIMPEXP_XRC
+    #define WXDLLIMPEXP_FWD_AUI       WXDLLIMPEXP_AUI
+    #define WXDLLIMPEXP_FWD_RICHTEXT  WXDLLIMPEXP_RICHTEXT
+    #define WXDLLIMPEXP_FWD_MEDIA     WXDLLIMPEXP_MEDIA
+    #define WXDLLIMPEXP_FWD_STC       WXDLLIMPEXP_STC
+#endif
 
 /* for backwards compatibility, define suffix-less versions too */
 #define WXDLLEXPORT WXDLLIMPEXP_CORE
 
 /* for backwards compatibility, define suffix-less versions too */
 #define WXDLLEXPORT WXDLLIMPEXP_CORE
index 4426536b7cc65d31d5923586f9fe3170cbba6874..c7159c8a465051ec19e611a90567ec42fd0eb57f 100644 (file)
  */
 #undef HAVE_GNU_CXX_HASH_MAP
 
  */
 #undef HAVE_GNU_CXX_HASH_MAP
 
+/*
+ * Define if the compiler supports simple visibility declarations.
+ */
+#undef HAVE_VISIBILITY
+
 /*
  * The built-in regex supports advanced REs in additional to POSIX's basic
  * and extended. Your system regex probably won't support this, and in this
 /*
  * The built-in regex supports advanced REs in additional to POSIX's basic
  * and extended. Your system regex probably won't support this, and in this
index 412897fc81eadeff5a539cefbdddff1ce4193acf..aa63144f63c88bb0c3bc4579170b524cb81ec2fb 100644 (file)
@@ -676,6 +676,11 @@ typedef pid_t GPid;
  */
 #undef HAVE_GNU_CXX_HASH_MAP
 
  */
 #undef HAVE_GNU_CXX_HASH_MAP
 
+/*
+ * Define if the compiler supports simple visibility declarations.
+ */
+#undef HAVE_VISIBILITY
+
 /*
  * The built-in regex supports advanced REs in additional to POSIX's basic
  * and extended. Your system regex probably won't support this, and in this
 /*
  * The built-in regex supports advanced REs in additional to POSIX's basic
  * and extended. Your system regex probably won't support this, and in this
index 347c807717c60f4afa6398434327188f94670af1..ae9d01f9244fd548b6c4e7e2624155bb4e0c8f7e 100644 (file)
@@ -14,7 +14,6 @@
 #
 #   # public symbols added in release 2.6.2 (please keep in alphabetical order):
 #   @WX_VERSION_TAG@.2 {
 #
 #   # public symbols added in release 2.6.2 (please keep in alphabetical order):
 #   @WX_VERSION_TAG@.2 {
-#       global:
 #           *wxChoice*GetCurrentSelection*;
 #   };
 #
 #           *wxChoice*GetCurrentSelection*;
 #   };
 #
@@ -28,6 +27,5 @@
 # generic branch tag (don't remove this!):
 
 @WX_VERSION_TAG@ {
 # generic branch tag (don't remove this!):
 
 @WX_VERSION_TAG@ {
-    global:
         *;
 };
         *;
 };