Doing diffs in libstdc++-v3: --- ./libstdc++-v3/config/os/bsd/darwin/os_defines.h.~1~ 2008-12-13 12:42:29.000000000 -0800 +++ ./libstdc++-v3/config/os/bsd/darwin/os_defines.h 2008-12-13 12:42:50.000000000 -0800 @@ -44,6 +44,10 @@ // -flat_namespace to work around the way that it doesn't. #define _GLIBCXX_WEAK_DEFINITION __attribute__ ((weak)) +#ifndef _GLIBCXX_VISIBILITY_DEFAULT +#define _GLIBCXX_VISIBILITY_DEFAULT /* _GLIBCXX_VISIBILITY(default) */ +#endif + /* APPLE LOCAL begin version */ #ifndef __GNUC_LIBSTD__ --- ./libstdc++-v3/include/bits/c++config.~1~ 2008-12-13 12:45:45.000000000 -0800 +++ ./libstdc++-v3/include/bits/c++config 2008-12-13 12:16:56.000000000 -0800 @@ -62,21 +62,25 @@ #define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION +#ifndef _GLIBCXX_VISIBILITY_DEFAULT +#define _GLIBCXX_VISIBILITY_DEFAULT _GLIBCXX_VISIBILITY(default) +#endif + // Macros for namespace scope. // _GLIBCXX_BEGIN_NAMESPACE // _GLIBCXX_END_NAMESPACE // _GLIBCXX_BEGIN_NESTED_NAMESPACE // _GLIBCXX_END_NESTED_NAMESPACE #if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION -# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y _GLIBCXX_VISIBILITY(default) { +# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y _GLIBCXX_VISIBILITY_DEFAULT { # define _GLIBCXX_END_NESTED_NAMESPACE } } # define _GLIBCXX_BEGIN_NAMESPACE(X) _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, _6) # define _GLIBCXX_END_NAMESPACE _GLIBCXX_END_NESTED_NAMESPACE #else -# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY(default) { +# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_DEFAULT { # define _GLIBCXX_END_NAMESPACE } # if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG -# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y _GLIBCXX_VISIBILITY(default) { +# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y _GLIBCXX_VISIBILITY_DEFAULT { # define _GLIBCXX_END_NESTED_NAMESPACE } } # else # define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) _GLIBCXX_BEGIN_NAMESPACE(X) -------------- Doing diffs in libstdc++-v3: --- libstdc++-v3/include/std/std_stdexcept.h.~1~ 2006-12-07 01:33:51.000000000 -0800 +++ libstdc++-v3/include/std/std_stdexcept.h 2009-01-12 16:48:31.000000000 -0800 @@ -43,6 +43,9 @@ #include <exception> #include <string> +/* APPLE LOCAL 5892085 */ +#pragma GCC visibility push(default) + _GLIBCXX_BEGIN_NAMESPACE(std) /** Logic errors represent problems in the internal logic of a program; @@ -145,4 +148,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_END_NAMESPACE +/* APPLE LOCAL 5892085 */ +#pragma GCC visibility pop + #endif /* _GLIBCXX_STDEXCEPT */ --------------