X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0545fc014a04c94fc0c41cfb95a77676246b492f..66c2bf7b1d9326fb650acfaae22ec50528cfbf7c:/include/wx/beforestd.h

diff --git a/include/wx/beforestd.h b/include/wx/beforestd.h
index 684b8428c3..cc335d317b 100644
--- a/include/wx/beforestd.h
+++ b/include/wx/beforestd.h
@@ -1,10 +1,9 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        include/wx/beforestd.h
+// Name:        wx/beforestd.h
 // Purpose:     #include before STL headers
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     07/07/03
-// RCS-ID:      $Id$
 // Copyright:   (c) 2003 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
@@ -23,6 +22,20 @@
 // VC 7.x isn't as bad as VC6 and doesn't give these warnings but eVC (which
 // defines _MSC_VER as 1201) does need to be included as it's VC6-like
 #if defined(__VISUALC__) && __VISUALC__ <= 1201
+    // these warning have to be disabled and not just temporarily disabled
+    // because they will be given at the end of the compilation of the
+    // current source and there is absolutely nothing we can do about them so
+    // disable them before warning(push) below
+
+    // 'foo': unreferenced inline function has been removed
+    #pragma warning(disable:4514)
+
+    // 'function' : function not inlined
+    #pragma warning(disable:4710)
+
+    // 'id': identifier was truncated to 'num' characters in the debug info
+    #pragma warning(disable:4786)
+
     // MSVC 5 does not have this
     #if __VISUALC__ > 1100
         // we have to disable (and reenable in afterstd.h) this one because,
@@ -48,18 +61,15 @@
         // 'identifier' use the following syntax
         #pragma warning(disable:4663)
     #endif
-
-    // these warning have to be disabled and not just temporarily disabled
-    // because they will be given at the end of the compilation of the
-    // current source and there is absolutely nothing we can do about them
-
-    // 'foo': unreferenced inline function has been removed
-    #pragma warning(disable:4514)
-
-    // 'function' : function not inlined
-    #pragma warning(disable:4710)
-
-    // 'id': identifier was truncated to 'num' characters in the debug info
-    #pragma warning(disable:4786)
 #endif // VC++ < 7
 
+/**
+    GCC's visibility support is broken for libstdc++ in some older versions
+    (namely Debian/Ubuntu's GCC 4.1, see
+    https://bugs.launchpad.net/ubuntu/+source/gcc-4.1/+bug/109262). We fix it
+    here by mimicking newer versions' behaviour of using default visibility
+    for libstdc++ code.
+ */
+#if defined(HAVE_VISIBILITY) && defined(HAVE_BROKEN_LIBSTDCXX_VISIBILITY)
+    #pragma GCC visibility push(default)
+#endif