+++ /dev/null
-Date: Wed, 4 May 2005 21:52:46 -0700
-From: "H dot J dot Lu" <hjl at lucon dot org>
-Subject: PATCH: PR middle-end/20218: Can't use __attribute__ ((visibility ("hidden"))) to hide a symbol
-
-Here is the updated patch. It works for me on ia32, ia64 and x86_64.
-
-2005-05-04 H.J. Lu <hongjiu.lu@intel.com>
-
- PR middle-end/20218
- * config/elfos.h (ASM_OUTPUT_EXTERNAL): New.
- (TARGET_ASM_FILE_END): New.
-
- * config/i386/i386-protos.h (ix86_elf_file_end): New.
-
- * config/i386/i386.c (ix86_elf_file_end): New.
-
- * config/i386/linux.h (TARGET_ASM_FILE_END): Defined.
- * config/i386/linux64.h (TARGET_ASM_FILE_END): Likewise.
-
- * config/ia64/hpux.h (TARGET_ASM_FILE_END): Removed.
-
- * config/ia64/ia64.c (ia64_hpux_add_extern_decl): Removed.
- (ia64_hpux_file_end): Renamed to ...
- (ia64_file_end): This. Handle symbol with non-default
- visibility.
- (TARGET_ASM_FILE_END): Defined.
- (ia64_asm_output_external): Rewritten.
- (extern_func_list): Removed.
- (extern_func_head): Likewise.
-
- * output.h (default_elf_asm_output_external): New.
- (default_elf_asm_output_external_1): New.
- (default_elf_asm_file_end): New.
- (maybe_assemble_visibility): New.
-
- * tree.h (extern_symbol_list): New.
- (extern_symbol_head): New.
-
- * varasm.c (maybe_assemble_visibility): Make it extern and
- return int.
- (extern_symbol_head): New.
- (default_elf_asm_output_external_1): New.
- (default_elf_asm_output_external): New.
- (default_elf_asm_file_end): New.
-
---- gcc/config/elfos.h.global 2005-04-14 14:57:02.000000000 -0700
-+++ gcc/config/elfos.h 2005-05-04 20:35:06.000000000 -0700
-@@ -487,3 +487,17 @@ Boston, MA 02111-1307, USA. */
- fprintf ((FILE), "\"\n"); \
- } \
- while (0)
-+
-+/* A C statement (sans semicolon) to output to the stdio stream STREAM
-+ any text necessary for declaring the name of an external symbol
-+ named NAME whch is referenced in this compilation but not defined.
-+ It is needed to properly support non-default visibility. */
-+
-+#ifndef ASM_OUTPUT_EXTERNAL
-+#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
-+ default_elf_asm_output_external (FILE, DECL, NAME)
-+#endif
-+
-+#ifndef TARGET_ASM_FILE_END
-+#define TARGET_ASM_FILE_END default_elf_asm_file_end
-+#endif
---- gcc/config/i386/i386-protos.h.global 2005-04-24 11:06:02.000000000 -0700
-+++ gcc/config/i386/i386-protos.h 2005-05-04 20:35:06.000000000 -0700
-@@ -28,6 +28,7 @@ extern int ix86_frame_pointer_required (
- extern void ix86_setup_frame_addresses (void);
-
- extern void ix86_file_end (void);
-+extern void ix86_elf_file_end (void);
- extern HOST_WIDE_INT ix86_initial_elimination_offset (int, int);
- extern void ix86_expand_prologue (void);
- extern void ix86_expand_epilogue (int);
---- gcc/config/i386/i386.c.global 2005-05-04 20:35:05.000000000 -0700
-+++ gcc/config/i386/i386.c 2005-05-04 20:35:06.000000000 -0700
-@@ -4103,6 +4103,13 @@ ix86_file_end (void)
- file_end_indicate_exec_stack ();
- }
-
-+void
-+ix86_elf_file_end (void)
-+{
-+ ix86_file_end ();
-+ default_elf_asm_file_end ();
-+}
-+
- /* Emit code for the SET_GOT patterns. */
-
- const char *
---- gcc/config/i386/linux.h.global 2004-11-28 17:04:42.000000000 -0800
-+++ gcc/config/i386/linux.h 2005-05-04 20:35:06.000000000 -0700
-@@ -185,3 +185,6 @@ Boston, MA 02111-1307, USA. */
-
- /* This macro may be overridden in i386/k*bsd-gnu.h. */
- #define REG_NAME(reg) reg
-+
-+#undef TARGET_ASM_FILE_END
-+#define TARGET_ASM_FILE_END ix86_elf_file_end
---- gcc/config/i386/linux64.h.global 2004-11-28 17:04:42.000000000 -0800
-+++ gcc/config/i386/linux64.h 2005-05-04 20:35:06.000000000 -0700
-@@ -73,3 +73,6 @@ Boston, MA 02111-1307, USA. */
-
- /* This macro may be overridden in i386/k*bsd-gnu.h. */
- #define REG_NAME(reg) reg
-+
-+#undef TARGET_ASM_FILE_END
-+#define TARGET_ASM_FILE_END ix86_elf_file_end
---- gcc/config/ia64/hpux.h.global 2005-03-17 13:05:06.000000000 -0800
-+++ gcc/config/ia64/hpux.h 2005-05-04 20:35:06.000000000 -0700
-@@ -147,10 +147,6 @@ do { \
- definitions, so do not use them in gthr-posix.h. */
- #define GTHREAD_USE_WEAK 0
-
--/* Put out the needed function declarations at the end. */
--
--#define TARGET_ASM_FILE_END ia64_hpux_file_end
--
- #undef CTORS_SECTION_ASM_OP
- #define CTORS_SECTION_ASM_OP "\t.section\t.init_array,\t\"aw\",\"init_array\""
-
---- gcc/config/ia64/ia64.c.global 2005-04-28 16:11:38.000000000 -0700
-+++ gcc/config/ia64/ia64.c 2005-05-04 21:07:52.000000000 -0700
-@@ -234,6 +234,7 @@ static void bundling (FILE *, int, rtx,
- static void ia64_output_mi_thunk (FILE *, tree, HOST_WIDE_INT,
- HOST_WIDE_INT, tree);
- static void ia64_file_start (void);
-+static void ia64_file_end (void);
-
- static void ia64_select_rtx_section (enum machine_mode, rtx,
- unsigned HOST_WIDE_INT);
-@@ -245,10 +246,6 @@ static void ia64_rwreloc_select_rtx_sect
- unsigned HOST_WIDE_INT)
- ATTRIBUTE_UNUSED;
- static unsigned int ia64_section_type_flags (tree, const char *, int);
--static void ia64_hpux_add_extern_decl (tree decl)
-- ATTRIBUTE_UNUSED;
--static void ia64_hpux_file_end (void)
-- ATTRIBUTE_UNUSED;
- static void ia64_init_libfuncs (void)
- ATTRIBUTE_UNUSED;
- static void ia64_hpux_init_libfuncs (void)
-@@ -360,6 +357,9 @@ static const struct attribute_spec ia64_
- #undef TARGET_ASM_FILE_START
- #define TARGET_ASM_FILE_START ia64_file_start
-
-+#undef TARGET_ASM_FILE_END
-+#define TARGET_ASM_FILE_END ia64_file_end
-+
- #undef TARGET_RTX_COSTS
- #define TARGET_RTX_COSTS ia64_rtx_costs
- #undef TARGET_ADDRESS_COST
-@@ -4493,43 +4493,24 @@ ia64_secondary_reload_class (enum reg_cl
- the Intel assembler does not support undefined externals. */
-
- void
--ia64_asm_output_external (FILE *file, tree decl, const char *name)
-+ia64_asm_output_external (FILE *file ATTRIBUTE_UNUSED, tree decl,
-+ const char *name)
- {
-- int save_referenced;
--
-- /* GNU as does not need anything here, but the HP linker does need
-- something for external functions. */
--
-- if (TARGET_GNU_AS
-- && (!TARGET_HPUX_LD
-- || TREE_CODE (decl) != FUNCTION_DECL
-- || strstr (name, "__builtin_") == name))
-- return;
--
- /* ??? The Intel assembler creates a reference that needs to be satisfied by
- the linker when we do this, so we need to be careful not to do this for
- builtin functions which have no library equivalent. Unfortunately, we
- can't tell here whether or not a function will actually be called by
- expand_expr, so we pull in library functions even if we may not need
- them later. */
-- if (! strcmp (name, "__builtin_next_arg")
-- || ! strcmp (name, "alloca")
-- || ! strcmp (name, "__builtin_constant_p")
-- || ! strcmp (name, "__builtin_args_info"))
-+ if (TREE_CODE (decl) == FUNCTION_DECL
-+ && ((TARGET_GNU_AS && strstr (name, "__builtin_") == name)
-+ || (!strcmp (name, "__builtin_next_arg")
-+ || ! strcmp (name, "alloca")
-+ || ! strcmp (name, "__builtin_constant_p")
-+ || ! strcmp (name, "__builtin_args_info"))))
- return;
-
-- if (TARGET_HPUX_LD)
-- ia64_hpux_add_extern_decl (decl);
-- else
-- {
-- /* assemble_name will set TREE_SYMBOL_REFERENCED, so we must save and
-- restore it. */
-- save_referenced = TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl));
-- if (TREE_CODE (decl) == FUNCTION_DECL)
-- ASM_OUTPUT_TYPE_DIRECTIVE (file, name, "function");
-- (*targetm.asm_out.globalize_label) (file, name);
-- TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)) = save_referenced;
-- }
-+ default_elf_asm_output_external_1 (decl);
- }
- \f
- /* Parse the -mfixed-range= option string. */
-@@ -7902,36 +7883,16 @@ ia64_hpux_function_arg_padding (enum mac
- return DEFAULT_FUNCTION_ARG_PADDING (mode, type);
- }
-
--/* Linked list of all external functions that are to be emitted by GCC.
-- We output the name if and only if TREE_SYMBOL_REFERENCED is set in
-- order to avoid putting out names that are never really used. */
--
--struct extern_func_list GTY(())
--{
-- struct extern_func_list *next;
-- tree decl;
--};
--
--static GTY(()) struct extern_func_list *extern_func_head;
--
--static void
--ia64_hpux_add_extern_decl (tree decl)
--{
-- struct extern_func_list *p = ggc_alloc (sizeof (struct extern_func_list));
--
-- p->decl = decl;
-- p->next = extern_func_head;
-- extern_func_head = p;
--}
--
- /* Print out the list of used global functions. */
-
- static void
--ia64_hpux_file_end (void)
-+ia64_file_end (void)
- {
-- struct extern_func_list *p;
-+ struct extern_symbol_list *p;
-+ int hpld = TARGET_HPUX_LD;
-+ int gas = TARGET_GNU_AS;
-
-- for (p = extern_func_head; p; p = p->next)
-+ for (p = extern_symbol_head; p; p = p->next)
- {
- tree decl = p->decl;
- tree id = DECL_ASSEMBLER_NAME (decl);
-@@ -7939,18 +7900,28 @@ ia64_hpux_file_end (void)
- gcc_assert (id);
-
- if (!TREE_ASM_WRITTEN (decl) && TREE_SYMBOL_REFERENCED (id))
-- {
-+ {
-+ int vis = ((*targetm.binds_local_p) (decl)
-+ && maybe_assemble_visibility (decl));
- const char *name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
-
-+ /* GNU as does not need anything here, but the HP linker
-+ does need something for external functions. */
-+ if ((hpld || !gas)
-+ && TREE_CODE (decl) == FUNCTION_DECL)
-+ {
-+ ASM_OUTPUT_TYPE_DIRECTIVE (asm_out_file, name,
-+ "function");
-+ (*targetm.asm_out.globalize_label) (asm_out_file, name);
-+ }
-+ else if (vis && !gas)
-+ (*targetm.asm_out.globalize_label) (asm_out_file, name);
-+
- TREE_ASM_WRITTEN (decl) = 1;
-- (*targetm.asm_out.globalize_label) (asm_out_file, name);
-- fputs (TYPE_ASM_OP, asm_out_file);
-- assemble_name (asm_out_file, name);
-- fprintf (asm_out_file, "," TYPE_OPERAND_FMT "\n", "function");
- }
- }
-
-- extern_func_head = 0;
-+ extern_symbol_head = 0;
- }
-
- /* Set SImode div/mod functions, init_integral_libfuncs only initializes
---- gcc/output.h.global 2005-04-28 16:11:31.000000000 -0700
-+++ gcc/output.h 2005-05-04 20:35:06.000000000 -0700
-@@ -543,6 +543,12 @@ extern void default_file_start (void);
- extern void file_end_indicate_exec_stack (void);
- extern bool default_valid_pointer_mode (enum machine_mode);
-
-+extern void default_elf_asm_output_external (FILE *file, tree,
-+ const char *);
-+extern void default_elf_asm_output_external_1 (tree);
-+extern void default_elf_asm_file_end (void);
-+extern int maybe_assemble_visibility (tree);
-+
- extern int default_address_cost (rtx);
-
- /* When performing hot/cold basic block partitioning, insert note in
---- gcc/tree.h.global 2005-05-04 11:20:53.000000000 -0700
-+++ gcc/tree.h 2005-05-04 20:35:06.000000000 -0700
-@@ -3769,6 +3769,17 @@ extern void process_pending_assemble_ext
- extern void finish_aliases_1 (void);
- extern void finish_aliases_2 (void);
-
-+/* Linked list of all external symbols that are to be emitted by
-+ GCC. */
-+
-+struct extern_symbol_list GTY(())
-+{
-+ struct extern_symbol_list *next;
-+ tree decl;
-+};
-+
-+extern GTY(()) struct extern_symbol_list *extern_symbol_head;
-+
- /* In stmt.c */
- extern void expand_computed_goto (tree);
- extern bool parse_output_constraint (const char **, int, int, int,
---- gcc/varasm.c.global 2005-05-04 20:35:05.000000000 -0700
-+++ gcc/varasm.c 2005-05-04 20:35:06.000000000 -0700
-@@ -123,7 +123,6 @@ static unsigned HOST_WIDE_INT array_size
- static unsigned min_align (unsigned, unsigned);
- static void output_constructor (tree, unsigned HOST_WIDE_INT, unsigned int);
- static void globalize_decl (tree);
--static void maybe_assemble_visibility (tree);
- static int in_named_entry_eq (const void *, const void *);
- static hashval_t in_named_entry_hash (const void *);
- static void initialize_cold_section_name (void);
-@@ -4664,13 +4663,18 @@ default_assemble_visibility (tree decl,
-
- /* A helper function to call assemble_visibility when needed for a decl. */
-
--static void
-+int
- maybe_assemble_visibility (tree decl)
- {
- enum symbol_visibility vis = DECL_VISIBILITY (decl);
-
- if (vis != VISIBILITY_DEFAULT)
-- targetm.asm_out.visibility (decl, vis);
-+ {
-+ targetm.asm_out.visibility (decl, vis);
-+ return 1;
-+ }
-+ else
-+ return 0;
- }
-
- /* Returns 1 if the target configuration supports defining public symbols
-@@ -5496,4 +5500,64 @@ file_end_indicate_exec_stack (void)
- named_section_flags (".note.GNU-stack", flags);
- }
-
-+struct extern_symbol_list *extern_symbol_head;
-+
-+void
-+default_elf_asm_output_external_1 (tree decl)
-+{
-+ struct extern_symbol_list *p
-+ = ggc_alloc (sizeof (struct extern_symbol_list));
-+
-+ p->decl = decl;
-+ p->next = extern_symbol_head;
-+ extern_symbol_head = p;
-+}
-+
-+/* Emit text to declare externally defined symbols. It is needed to
-+ properly support non-default visibility. */
-+
-+void
-+default_elf_asm_output_external (FILE *file ATTRIBUTE_UNUSED,
-+ tree decl,
-+ const char *name)
-+{
-+ /* Ignore builtin functions. */
-+ if (TREE_CODE (decl) == FUNCTION_DECL
-+ && strstr (name, "__builtin_") == name)
-+ return;
-+ else
-+ default_elf_asm_output_external_1 (decl);
-+}
-+
-+/* Print out the list of referenced global symbols with non-default
-+ visibility. */
-+
-+void
-+default_elf_asm_file_end (void)
-+{
-+ struct extern_symbol_list *p;
-+
-+ for (p = extern_symbol_head; p; p = p->next)
-+ {
-+ tree decl = p->decl;
-+ tree id = DECL_ASSEMBLER_NAME (decl);
-+
-+ if (!id)
-+ abort ();
-+
-+ /* We output the name if and only if TREE_SYMBOL_REFERENCED is
-+ set in order to avoid putting out names that are never really
-+ used. */
-+ if (targetm.binds_local_p (decl)
-+ && !TREE_ASM_WRITTEN (decl)
-+ && TREE_SYMBOL_REFERENCED (id))
-+ {
-+ maybe_assemble_visibility (decl);
-+ TREE_ASM_WRITTEN (decl) = 1;
-+ }
-+ }
-+
-+ extern_symbol_head = 0;
-+}
-+
- #include "gt-varasm.h"
+++ /dev/null
-
- c_std/std_cassert.h | 3 +++
- c_std/std_cctype.h | 3 +++
- c_std/std_cerrno.h | 3 +++
- c_std/std_cfloat.h | 3 +++
- c_std/std_climits.h | 2 ++
- c_std/std_clocale.h | 3 +++
- c_std/std_cmath.h | 3 +++
- c_std/std_csetjmp.h | 3 +++
- c_std/std_csignal.h | 3 +++
- c_std/std_cstdarg.h | 3 +++
- c_std/std_cstddef.h | 3 +++
- c_std/std_cstdio.h | 3 +++
- c_std/std_cstdlib.h | 3 +++
- c_std/std_cstring.h | 3 +++
- c_std/std_ctime.h | 3 +++
- c_std/std_cwchar.h | 3 +++
- c_std/std_cwctype.h | 3 +++
- debug/bitset | 4 ++++
- debug/deque | 4 ++++
- debug/hash_map | 4 ++++
- debug/hash_set | 4 ++++
- debug/list | 4 ++++
- debug/map | 4 ++++
- debug/set | 4 ++++
- debug/string | 4 ++++
- debug/vector | 4 ++++
- ext/algorithm | 3 +++
- ext/array_allocator.h | 4 ++++
- ext/bitmap_allocator.h | 4 ++++
- ext/debug_allocator.h | 4 ++++
- ext/functional | 4 ++++
- ext/hash_map | 4 ++++
- ext/hash_set | 4 ++++
- ext/iterator | 3 +++
- ext/malloc_allocator.h | 4 ++++
- ext/memory | 3 +++
- ext/mt_allocator.h | 4 ++++
- ext/new_allocator.h | 4 ++++
- ext/numeric | 3 +++
- ext/pod_char_traits.h | 4 ++++
- ext/pool_allocator.h | 4 ++++
- ext/rb_tree | 3 +++
- ext/rope | 4 ++++
- ext/slist | 5 +++++
- ext/stdio_filebuf.h | 3 +++
- ext/stdio_sync_filebuf.h | 3 +++
- std/std_algorithm.h | 3 +++
- std/std_bitset.h | 3 +++
- std/std_complex.h | 3 +++
- std/std_deque.h | 3 +++
- std/std_fstream.h | 3 +++
- std/std_functional.h | 3 +++
- std/std_iomanip.h | 3 +++
- std/std_ios.h | 3 +++
- std/std_iosfwd.h | 3 +++
- std/std_iostream.h | 3 +++
- std/std_istream.h | 3 +++
- std/std_iterator.h | 3 +++
- std/std_limits.h | 3 +++
- std/std_list.h | 3 +++
- std/std_locale.h | 3 +++
- std/std_map.h | 3 +++
- std/std_memory.h | 3 +++
- std/std_numeric.h | 3 +++
- std/std_ostream.h | 3 +++
- std/std_queue.h | 3 +++
- std/std_set.h | 5 ++++-
- std/std_sstream.h | 3 +++
- std/std_stack.h | 3 +++
- std/std_stdexcept.h | 3 +++
- std/std_streambuf.h | 3 +++
- std/std_string.h | 3 +++
- std/std_utility.h | 3 +++
- std/std_valarray.h | 3 +++
- std/std_vector.h | 3 +++
- tr1/array | 4 ++++
- tr1/functional | 4 ++++
- tr1/memory | 4 ++++
- tr1/tuple | 4 ++++
- tr1/type_traits | 4 ++++
- tr1/unordered_map | 4 ++++
- tr1/unordered_set | 4 ++++
- tr1/utility | 6 +++++-
- 83 files changed, 281 insertions(+), 2 deletions(-)
-
-diff -uNr libstdc++-v3.orig/include/c_std/std_cassert.h libstdc++-v3/include/c_std/std_cassert.h
---- libstdc++-v3.orig/include/c_std/std_cassert.h 2003-12-09 04:44:35.000000000 +0100
-+++ libstdc++-v3/include/c_std/std_cassert.h 2005-05-17 11:23:06.000000000 +0200
-@@ -44,5 +44,8 @@
- // No include guards on this header...
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <assert.h>
-+
-+#pragma GCC visibility pop
-diff -uNr libstdc++-v3.orig/include/c_std/std_cctype.h libstdc++-v3/include/c_std/std_cctype.h
---- libstdc++-v3.orig/include/c_std/std_cctype.h 2003-12-09 04:44:35.000000000 +0100
-+++ libstdc++-v3/include/c_std/std_cctype.h 2005-05-17 11:23:06.000000000 +0200
-@@ -44,6 +45,7 @@
- #define _GLIBCXX_CCTYPE 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <ctype.h>
-@@ -80,4 +82,6 @@
- using ::toupper;
- }
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_cerrno.h libstdc++-v3/include/c_std/std_cerrno.h
---- libstdc++-v3.orig/include/c_std/std_cerrno.h 2003-07-23 17:28:44.000000000 +0200
-+++ libstdc++-v3/include/c_std/std_cerrno.h 2005-05-17 11:23:06.000000000 +0200
-@@ -44,6 +45,7 @@
- #define _GLIBCXX_CERRNO 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <errno.h>
-
-@@ -52,4 +54,6 @@
- #define errno errno
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_cfloat.h libstdc++-v3/include/c_std/std_cfloat.h
---- libstdc++-v3.orig/include/c_std/std_cfloat.h 2003-07-23 17:28:44.000000000 +0200
-+++ libstdc++-v3/include/c_std/std_cfloat.h 2005-05-17 11:23:06.000000000 +0200
-@@ -44,7 +45,10 @@
- #define _GLIBCXX_CFLOAT 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <float.h>
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_climits.h libstdc++-v3/include/c_std/std_climits.h
---- libstdc++-v3.orig/include/c_std/std_climits.h 2003-07-23 17:28:44.000000000 +0200
-+++ libstdc++-v3/include/c_std/std_climits.h 2005-05-17 11:23:06.000000000 +0200
-@@ -45,7 +45,9 @@
- #define _GLIBCXX_CLIMITS 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <limits.h>
-
-+#pragma GCC visibility pop
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_clocale.h libstdc++-v3/include/c_std/std_clocale.h
---- libstdc++-v3.orig/include/c_std/std_clocale.h 2003-07-23 17:28:44.000000000 +0200
-+++ libstdc++-v3/include/c_std/std_clocale.h 2005-05-17 11:23:06.000000000 +0200
-@@ -45,6 +45,7 @@
- #define _GLIBCXX_CLOCALE 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <locale.h>
-
-@@ -59,4 +60,6 @@
- using ::localeconv;
- }
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_cmath.h libstdc++-v3/include/c_std/std_cmath.h
---- libstdc++-v3.orig/include/c_std/std_cmath.h 2005-02-13 11:25:02.000000000 +0100
-+++ libstdc++-v3/include/c_std/std_cmath.h 2005-05-17 11:23:06.000000000 +0200
-@@ -45,6 +45,7 @@
- #define _GLIBCXX_CMATH 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <bits/cpp_type_traits.h>
-@@ -574,4 +575,6 @@
- # include <bits/cmath.tcc>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_csetjmp.h libstdc++-v3/include/c_std/std_csetjmp.h
---- libstdc++-v3.orig/include/c_std/std_csetjmp.h 2003-07-23 17:28:44.000000000 +0200
-+++ libstdc++-v3/include/c_std/std_csetjmp.h 2005-05-17 11:23:06.000000000 +0200
-@@ -45,6 +45,7 @@
- #define _GLIBCXX_CSETJMP 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <setjmp.h>
-
-@@ -62,4 +63,6 @@
- using ::longjmp;
- }
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_csignal.h libstdc++-v3/include/c_std/std_csignal.h
---- libstdc++-v3.orig/include/c_std/std_csignal.h 2003-07-23 17:28:44.000000000 +0200
-+++ libstdc++-v3/include/c_std/std_csignal.h 2005-05-17 11:23:06.000000000 +0200
-@@ -45,6 +45,7 @@
- #define _GLIBCXX_CSIGNAL 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <signal.h>
-
-@@ -58,4 +59,6 @@
- using ::raise;
- }
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_cstdarg.h libstdc++-v3/include/c_std/std_cstdarg.h
---- libstdc++-v3.orig/include/c_std/std_cstdarg.h 2003-07-23 17:28:44.000000000 +0200
-+++ libstdc++-v3/include/c_std/std_cstdarg.h 2005-05-17 11:23:06.000000000 +0200
-@@ -44,6 +45,7 @@
- #define _GLIBCXX_CSTDARG 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <stdarg.h>
-
-@@ -57,4 +59,6 @@
- using ::va_list;
- }
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_cstddef.h libstdc++-v3/include/c_std/std_cstddef.h
---- libstdc++-v3.orig/include/c_std/std_cstddef.h 2003-12-09 04:44:35.000000000 +0100
-+++ libstdc++-v3/include/c_std/std_cstddef.h 2005-05-17 11:23:06.000000000 +0200
-@@ -44,6 +45,7 @@
- #define _GLIBCXX_CSTDDEF 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <stddef.h>
-
-@@ -53,4 +55,6 @@
- using ::size_t;
- }
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_cstdio.h libstdc++-v3/include/c_std/std_cstdio.h
---- libstdc++-v3.orig/include/c_std/std_cstdio.h 2003-12-09 04:44:35.000000000 +0100
-+++ libstdc++-v3/include/c_std/std_cstdio.h 2005-05-17 11:23:06.000000000 +0200
-@@ -45,6 +45,7 @@
- #define _GLIBCXX_CSTDIO 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <cstddef>
-@@ -182,4 +183,6 @@
- }
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_cstdlib.h libstdc++-v3/include/c_std/std_cstdlib.h
---- libstdc++-v3.orig/include/c_std/std_cstdlib.h 2004-08-02 22:28:21.000000000 +0200
-+++ libstdc++-v3/include/c_std/std_cstdlib.h 2005-05-17 11:23:06.000000000 +0200
- #define _GLIBCXX_CSTDLIB 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <cstddef>
-@@ -217,4 +218,6 @@
- }
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_cstring.h libstdc++-v3/include/c_std/std_cstring.h
---- libstdc++-v3.orig/include/c_std/std_cstring.h 2003-12-09 04:44:35.000000000 +0100
-+++ libstdc++-v3/include/c_std/std_cstring.h 2005-05-17 11:23:06.000000000 +0200
-@@ -45,6 +45,7 @@
- #define _GLIBCXX_CSTRING 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <cstddef>
-
-@@ -125,4 +126,6 @@
- { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
- }
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_ctime.h libstdc++-v3/include/c_std/std_ctime.h
---- libstdc++-v3.orig/include/c_std/std_ctime.h 2003-07-23 17:28:44.000000000 +0200
-+++ libstdc++-v3/include/c_std/std_ctime.h 2005-05-17 11:23:06.000000000 +0200
-@@ -45,6 +45,7 @@
- #define _GLIBCXX_CTIME 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <cstddef>
-
-@@ -78,4 +79,6 @@
- using ::strftime;
- }
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_cwchar.h libstdc++-v3/include/c_std/std_cwchar.h
---- libstdc++-v3.orig/include/c_std/std_cwchar.h 2004-07-20 10:47:42.000000000 +0200
-+++ libstdc++-v3/include/c_std/std_cwchar.h 2005-05-17 11:23:06.000000000 +0200
-@@ -45,6 +45,7 @@
- #define _GLIBCXX_CWCHAR 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <cstddef>
-@@ -270,4 +271,6 @@
-
- #endif //_GLIBCXX_USE_WCHAR_T
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/c_std/std_cwctype.h libstdc++-v3/include/c_std/std_cwctype.h
---- libstdc++-v3.orig/include/c_std/std_cwctype.h 2003-12-09 04:44:35.000000000 +0100
-+++ libstdc++-v3/include/c_std/std_cwctype.h 2005-05-17 11:23:06.000000000 +0200
-@@ -45,6 +45,7 @@
- #define _GLIBCXX_CWCTYPE 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
-
-@@ -107,4 +108,6 @@
- }
- #endif //_GLIBCXX_USE_WCHAR_T
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/debug/bitset libstdc++-v3/include/debug/bitset
---- libstdc++-v3.orig/include/debug/bitset 2005-05-09 14:57:24.000000000 +0200
-+++ libstdc++-v3/include/debug/bitset 2005-05-17 11:28:29.000000000 +0200
-@@ -31,6 +31,8 @@
- #ifndef _GLIBCXX_DEBUG_BITSET
- #define _GLIBCXX_DEBUG_BITSET
-
-+#pragma GCC visibility push(default)
-+
- #include <bitset>
- #include <debug/safe_sequence.h>
- #include <debug/safe_iterator.h>
-@@ -318,4 +320,6 @@
- { return __os << __x._M_base(); }
- } // namespace __gnu_debug_def
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/debug/deque libstdc++-v3/include/debug/deque
---- libstdc++-v3.orig/include/debug/deque 2004-04-16 21:04:04.000000000 +0200
-+++ libstdc++-v3/include/debug/deque 2005-05-17 11:23:06.000000000 +0200
-@@ -31,6 +31,8 @@
- #ifndef _GLIBCXX_DEBUG_DEQUE
- #define _GLIBCXX_DEBUG_DEQUE 1
-
-+#pragma GCC visibility push(default)
-+
- #include <deque>
- #include <debug/safe_sequence.h>
- #include <debug/safe_iterator.h>
-@@ -383,4 +385,6 @@
- { __lhs.swap(__rhs); }
- } // namespace __gnu_debug_def
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/debug/hash_map libstdc++-v3/include/debug/hash_map
---- libstdc++-v3.orig/include/debug/hash_map 2003-11-11 21:09:09.000000000 +0100
-+++ libstdc++-v3/include/debug/hash_map 2005-05-17 11:23:06.000000000 +0200
- #ifndef _GLIBCXX_DEBUG_HASH_MAP
- #define _GLIBCXX_DEBUG_HASH_MAP 1
-
-+#pragma GCC visibility push(default)
-+
- #include <hash_map>
- #include <debug/dbg_hash_map.h>
- #include <debug/dbg_hash_multimap.h>
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/debug/hash_set libstdc++-v3/include/debug/hash_set
---- libstdc++-v3.orig/include/debug/hash_set 2003-12-09 05:26:28.000000000 +0100
-+++ libstdc++-v3/include/debug/hash_set 2005-05-17 11:23:06.000000000 +0200
-@@ -31,8 +31,12 @@
- #ifndef _GLIBCXX_DEBUG_HASH_SET
- #define _GLIBCXX_DEBUG_HASH_SET 1
-
-+#pragma GCC visibility push(default)
-+
- #include <ext/hash_set>
- #include <debug/hash_set.h>
- #include <debug/hash_multiset.h>
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/debug/list libstdc++-v3/include/debug/list
---- libstdc++-v3.orig/include/debug/list 2004-04-16 21:04:04.000000000 +0200
-+++ libstdc++-v3/include/debug/list 2005-05-17 11:23:06.000000000 +0200
-@@ -31,6 +31,8 @@
- #ifndef _GLIBCXX_DEBUG_LIST
- #define _GLIBCXX_DEBUG_LIST 1
-
-+#pragma GCC visibility push(default)
-+
- #include <list>
- #include <bits/stl_algo.h>
- #include <debug/safe_sequence.h>
-@@ -502,4 +504,6 @@
- { __lhs.swap(__rhs); }
- } // namespace __gnu_debug_def
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/debug/map libstdc++-v3/include/debug/map
---- libstdc++-v3.orig/include/debug/map 2003-11-11 21:09:09.000000000 +0100
-+++ libstdc++-v3/include/debug/map 2005-05-17 11:23:06.000000000 +0200
-@@ -31,8 +31,12 @@
- #ifndef _GLIBCXX_DEBUG_MAP
- #define _GLIBCXX_DEBUG_MAP 1
-
-+#pragma GCC visibility push(default)
-+
- #include <map>
- #include <debug/map.h>
- #include <debug/multimap.h>
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/debug/set libstdc++-v3/include/debug/set
---- libstdc++-v3.orig/include/debug/set 2003-11-11 21:09:09.000000000 +0100
-+++ libstdc++-v3/include/debug/set 2005-05-17 11:23:06.000000000 +0200
-@@ -31,8 +31,12 @@
- #ifndef _GLIBCXX_DEBUG_SET
- #define _GLIBCXX_DEBUG_SET 1
-
-+#pragma GCC visibility push(default)
-+
- #include <set>
- #include <debug/set.h>
- #include <debug/multiset.h>
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/debug/string libstdc++-v3/include/debug/string
---- libstdc++-v3.orig/include/debug/string 2003-12-09 05:26:28.000000000 +0100
-+++ libstdc++-v3/include/debug/string 2005-05-17 11:23:06.000000000 +0200
-@@ -31,6 +31,8 @@
- #ifndef _GLIBCXX_DEBUG_STRING
- #define _GLIBCXX_DEBUG_STRING 1
-
-+#pragma GCC visibility push(default)
-+
- #include <string>
- #include <debug/safe_sequence.h>
- #include <debug/safe_iterator.h>
-@@ -998,4 +1000,6 @@
- }
- } // namespace __gnu_debug
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/debug/vector libstdc++-v3/include/debug/vector
---- libstdc++-v3.orig/include/debug/vector 2004-04-16 21:04:04.000000000 +0200
-+++ libstdc++-v3/include/debug/vector 2005-05-17 11:23:06.000000000 +0200
-@@ -31,6 +31,8 @@
- #ifndef _GLIBCXX_DEBUG_VECTOR
- #define _GLIBCXX_DEBUG_VECTOR 1
-
-+#pragma GCC visibility push(default)
-+
- #include <vector>
- #include <debug/safe_sequence.h>
- #include <debug/safe_iterator.h>
-@@ -409,4 +411,6 @@
- { __lhs.swap(__rhs); }
- } // namespace __gnu_debug_def
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/algorithm libstdc++-v3/include/ext/algorithm
---- libstdc++-v3.orig/include/ext/algorithm 2004-11-24 05:11:11.000000000 +0100
-+++ libstdc++-v3/include/ext/algorithm 2005-05-17 11:23:06.000000000 +0200
-@@ -62,6 +62,7 @@
- #define _EXT_ALGORITHM 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <algorithm>
-
-@@ -523,4 +524,6 @@
- }
- } // namespace __gnu_cxx
-
-+#pragma GCC visibility pop
-+
- #endif /* _EXT_ALGORITHM */
-diff -uNr libstdc++-v3.orig/include/ext/array_allocator.h libstdc++-v3/include/ext/array_allocator.h
---- libstdc++-v3.orig/include/ext/array_allocator.h 2005-01-19 22:59:55.000000000 +0100
-+++ libstdc++-v3/include/ext/array_allocator.h 2005-05-17 11:23:06.000000000 +0200
-@@ -34,6 +34,8 @@
- #ifndef _ARRAY_ALLOCATOR_H
- #define _ARRAY_ALLOCATOR_H 1
-
-+#pragma GCC visibility push(default)
-+
- #include <cstddef>
- #include <new>
- #include <bits/functexcept.h>
-@@ -142,4 +144,6 @@
- { return false; }
- } // namespace __gnu_cxx
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/bitmap_allocator.h libstdc++-v3/include/ext/bitmap_allocator.h
---- libstdc++-v3.orig/include/ext/bitmap_allocator.h 2005-04-15 06:06:50.000000000 +0200
-+++ libstdc++-v3/include/ext/bitmap_allocator.h 2005-05-17 11:23:06.000000000 +0200
-@@ -34,6 +34,8 @@
- #ifndef _BITMAP_ALLOCATOR_H
- #define _BITMAP_ALLOCATOR_H 1
-
-+#pragma GCC visibility push(default)
-+
- // For std::size_t, and ptrdiff_t.
- #include <cstddef>
-
-@@ -1287,6 +1289,8 @@
-
- }
-
-+#pragma GCC visibility pop
-+
- #endif
-
- // LocalWords: namespace GTHREADS bool const gthread endif Mutex mutex
-diff -uNr libstdc++-v3.orig/include/ext/debug_allocator.h libstdc++-v3/include/ext/debug_allocator.h
---- libstdc++-v3.orig/include/ext/debug_allocator.h 2004-11-05 20:58:02.000000000 +0100
-+++ libstdc++-v3/include/ext/debug_allocator.h 2005-05-17 11:23:06.000000000 +0200
-@@ -48,6 +48,8 @@
- #ifndef _DEBUG_ALLOCATOR_H
- #define _DEBUG_ALLOCATOR_H 1
-
-+#pragma GCC visibility push(default)
-+
- #include <stdexcept>
-
- namespace __gnu_cxx
-@@ -122,4 +124,6 @@
- };
- } // namespace __gnu_cxx
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/functional libstdc++-v3/include/ext/functional
---- libstdc++-v3.orig/include/ext/functional 2004-11-24 05:11:11.000000000 +0100
-+++ libstdc++-v3/include/ext/functional 2005-05-17 11:23:06.000000000 +0200
-@@ -62,6 +62,7 @@
- #define _EXT_FUNCTIONAL 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <functional>
-
-@@ -421,5 +422,8 @@
- mem_fun1_ref(_Ret (_Tp::*__f)(_Arg) const)
- { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
- } // namespace __gnu_cxx
-+
-+#pragma GCC visibility pop
-+
- #endif
-
-diff -uNr libstdc++-v3.orig/include/ext/hash_map libstdc++-v3/include/ext/hash_map
---- libstdc++-v3.orig/include/ext/hash_map 2004-11-24 05:11:11.000000000 +0100
-+++ libstdc++-v3/include/ext/hash_map 2005-05-17 11:23:06.000000000 +0200
-@@ -61,6 +61,8 @@
- #ifndef _HASH_MAP
- #define _HASH_MAP 1
-
-+#pragma GCC visibility push(default)
-+
- #include <ext/hashtable.h>
- #include <bits/concept_check.h>
-
-@@ -622,4 +624,6 @@
- # include <debug/hash_map>
- #endif
-
-+#pragma GCC visibility push(default)
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/hash_set libstdc++-v3/include/ext/hash_set
---- libstdc++-v3.orig/include/ext/hash_set 2004-11-24 05:11:11.000000000 +0100
-+++ libstdc++-v3/include/ext/hash_set 2005-05-17 11:23:06.000000000 +0200
-@@ -61,6 +61,8 @@
- #ifndef _HASH_SET
- #define _HASH_SET 1
-
-+#pragma GCC visibility push(default)
-+
- #include <ext/hashtable.h>
- #include <bits/concept_check.h>
-
-@@ -588,4 +590,6 @@
- # include <debug/hash_set>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/iterator libstdc++-v3/include/ext/iterator
---- libstdc++-v3.orig/include/ext/iterator 2004-11-24 05:11:13.000000000 +0100
-+++ libstdc++-v3/include/ext/iterator 2005-05-17 11:23:06.000000000 +0200
-@@ -62,6 +62,7 @@
- #define _EXT_ITERATOR 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/concept_check.h>
- #include <iterator>
-@@ -113,5 +114,7 @@
- }
- } // namespace __gnu_cxx
-
-+#pragma GCC visibility pop
-+
- #endif
-
-diff -uNr libstdc++-v3.orig/include/ext/malloc_allocator.h libstdc++-v3/include/ext/malloc_allocator.h
---- libstdc++-v3.orig/include/ext/malloc_allocator.h 2004-12-05 01:25:18.000000000 +0100
-+++ libstdc++-v3/include/ext/malloc_allocator.h 2005-05-17 11:23:06.000000000 +0200
-@@ -34,6 +35,8 @@
- #ifndef _MALLOC_ALLOCATOR_H
- #define _MALLOC_ALLOCATOR_H 1
-
-+#pragma GCC visibility push(default)
-+
- #include <cstdlib>
- #include <new>
- #include <bits/functexcept.h>
-@@ -122,4 +125,6 @@
- { return false; }
- } // namespace __gnu_cxx
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/memory libstdc++-v3/include/ext/memory
---- libstdc++-v3.orig/include/ext/memory 2004-11-24 05:11:13.000000000 +0100
-+++ libstdc++-v3/include/ext/memory 2005-05-17 11:23:06.000000000 +0200
-@@ -62,6 +62,7 @@
- #define _EXT_MEMORY 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <memory>
- #include <bits/stl_tempbuf.h>
-@@ -194,5 +195,7 @@
- };
- } // namespace __gnu_cxx
-
-+#pragma GCC visibility pop
-+
- #endif
-
-diff -uNr libstdc++-v3.orig/include/ext/mt_allocator.h libstdc++-v3/include/ext/mt_allocator.h
---- libstdc++-v3.orig/include/ext/mt_allocator.h 2005-04-28 10:01:32.000000000 +0200
-+++ libstdc++-v3/include/ext/mt_allocator.h 2005-05-17 11:23:06.000000000 +0200
-@@ -34,6 +34,8 @@
- #ifndef _MT_ALLOCATOR_H
- #define _MT_ALLOCATOR_H 1
-
-+#pragma GCC visibility push(default)
-+
- #include <new>
- #include <cstdlib>
- #include <bits/functexcept.h>
-@@ -760,4 +762,6 @@
- #undef __thread_default
- } // namespace __gnu_cxx
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/new_allocator.h libstdc++-v3/include/ext/new_allocator.h
---- libstdc++-v3.orig/include/ext/new_allocator.h 2004-11-24 05:11:13.000000000 +0100
-+++ libstdc++-v3/include/ext/new_allocator.h 2005-05-17 11:23:06.000000000 +0200
-@@ -34,6 +34,8 @@
- #ifndef _NEW_ALLOCATOR_H
- #define _NEW_ALLOCATOR_H 1
-
-+#pragma GCC visibility push(default)
-+
- #include <new>
- #include <bits/functexcept.h>
-
-@@ -118,4 +120,6 @@
- { return false; }
- } // namespace __gnu_cxx
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/numeric libstdc++-v3/include/ext/numeric
---- libstdc++-v3.orig/include/ext/numeric 2004-11-24 05:11:13.000000000 +0100
-+++ libstdc++-v3/include/ext/numeric 2005-05-17 11:23:06.000000000 +0200
-@@ -62,6 +62,7 @@
- #define _EXT_NUMERIC 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/concept_check.h>
- #include <numeric>
-@@ -146,5 +147,7 @@
- }
- } // namespace __gnu_cxx
-
-+#pragma GCC visibility pop
-+
- #endif
-
-diff -uNr libstdc++-v3.orig/include/ext/pod_char_traits.h libstdc++-v3/include/ext/pod_char_traits.h
---- libstdc++-v3.orig/include/ext/pod_char_traits.h 2005-05-09 20:39:03.000000000 +0200
-+++ libstdc++-v3/include/ext/pod_char_traits.h 2005-05-17 11:28:29.000000000 +0200
-@@ -37,6 +37,8 @@
- #ifndef _POD_CHAR_TRAITS_H
- #define _POD_CHAR_TRAITS_H 1
-
-+#pragma GCC visibility push(default)
-+
- #include <string>
-
- namespace __gnu_cxx
-@@ -182,4 +184,6 @@
- };
- }
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/pool_allocator.h libstdc++-v3/include/ext/pool_allocator.h
---- libstdc++-v3.orig/include/ext/pool_allocator.h 2005-04-28 10:01:33.000000000 +0200
-+++ libstdc++-v3/include/ext/pool_allocator.h 2005-05-17 11:23:06.000000000 +0200
-@@ -47,6 +47,8 @@
- #ifndef _POOL_ALLOCATOR_H
- #define _POOL_ALLOCATOR_H 1
-
-+#pragma GCC visibility push(default)
-+
- #include <bits/c++config.h>
- #include <cstdlib>
- #include <new>
-@@ -252,4 +254,6 @@
- }
- } // namespace __gnu_cxx
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/rb_tree libstdc++-v3/include/ext/rb_tree
---- libstdc++-v3.orig/include/ext/rb_tree 2004-11-24 05:11:13.000000000 +0100
-+++ libstdc++-v3/include/ext/rb_tree 2005-05-17 11:23:06.000000000 +0200
-@@ -62,6 +62,7 @@
- #define _RB_TREE 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/stl_tree.h>
-
-@@ -94,4 +95,6 @@
- };
- } // namespace __gnu_cxx
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/rope libstdc++-v3/include/ext/rope
---- libstdc++-v3.orig/include/ext/rope 2005-04-28 10:01:33.000000000 +0200
-+++ libstdc++-v3/include/ext/rope 2005-05-17 11:23:06.000000000 +0200
-@@ -48,6 +48,8 @@
- #ifndef _ROPE
- #define _ROPE 1
-
-+#pragma GCC visibility push(default)
-+
- #include <bits/stl_algobase.h>
- #include <bits/stl_construct.h>
- #include <bits/stl_uninitialized.h>
-@@ -2898,4 +2900,6 @@
-
- # include <ext/ropeimpl.h>
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/slist libstdc++-v3/include/ext/slist
---- libstdc++-v3.orig/include/ext/slist 2005-01-31 17:21:50.000000000 +0100
-+++ libstdc++-v3/include/ext/slist 2005-05-17 11:23:06.000000000 +0200
-@@ -49,6 +49,8 @@
- #ifndef _SLIST
- #define _SLIST 1
-
-+#pragma GCC visibility push(default)
-+
- #include <bits/stl_algobase.h>
- #include <bits/allocator.h>
- #include <bits/stl_construct.h>
-@@ -1069,4 +1071,7 @@
- };
-
- } // namespace std
-+
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/stdio_filebuf.h libstdc++-v3/include/ext/stdio_filebuf.h
---- libstdc++-v3.orig/include/ext/stdio_filebuf.h 2004-11-23 10:18:39.000000000 +0100
-+++ libstdc++-v3/include/ext/stdio_filebuf.h 2005-05-17 11:23:06.000000000 +0200
-@@ -35,6 +35,7 @@
- #define _STDIO_FILEBUF_H 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <fstream>
-
-@@ -158,4 +159,6 @@
- }
- } // namespace __gnu_cxx
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/ext/stdio_sync_filebuf.h libstdc++-v3/include/ext/stdio_sync_filebuf.h
---- libstdc++-v3.orig/include/ext/stdio_sync_filebuf.h 2004-11-23 10:18:39.000000000 +0100
-+++ libstdc++-v3/include/ext/stdio_sync_filebuf.h 2005-05-17 11:23:06.000000000 +0200
-@@ -35,6 +35,7 @@
- #define _STDIO_SYNC_FILEBUF_H 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <streambuf>
- #include <unistd.h>
-@@ -279,4 +280,6 @@
- #endif
- } // namespace __gnu_cxx
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/std/std_algorithm.h libstdc++-v3/include/std/std_algorithm.h
---- libstdc++-v3.orig/include/std/std_algorithm.h 2004-11-24 05:11:14.000000000 +0100
-+++ libstdc++-v3/include/std/std_algorithm.h 2005-05-17 11:23:06.000000000 +0200
-@@ -61,10 +61,13 @@
- #define _GLIBCXX_ALGORITHM 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/stl_algobase.h>
- #include <bits/stl_construct.h>
- #include <bits/stl_uninitialized.h>
- #include <bits/stl_algo.h>
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_ALGORITHM */
-diff -uNr libstdc++-v3.orig/include/std/std_bitset.h libstdc++-v3/include/std/std_bitset.h
---- libstdc++-v3.orig/include/std/std_bitset.h 2005-05-10 04:15:36.000000000 +0200
-+++ libstdc++-v3/include/std/std_bitset.h 2005-05-17 11:28:29.000000000 +0200
-@@ -48,6 +48,7 @@
- #define _GLIBCXX_BITSET 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <cstddef> // For size_t
- #include <cstring> // For memset
-@@ -1300,4 +1301,6 @@
- # include <debug/bitset>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_BITSET */
-diff -uNr libstdc++-v3.orig/include/std/std_complex.h libstdc++-v3/include/std/std_complex.h
---- libstdc++-v3.orig/include/std/std_complex.h 2005-03-21 13:57:36.000000000 +0100
-+++ libstdc++-v3/include/std/std_complex.h 2005-05-17 11:23:06.000000000 +0200
-@@ -43,6 +43,7 @@
- #define _GLIBCXX_COMPLEX 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <bits/cpp_type_traits.h>
-@@ -1483,4 +1484,6 @@
- : _M_value(__z.__rep()) { }
- } // namespace std
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_COMPLEX */
-diff -uNr libstdc++-v3.orig/include/std/std_deque.h libstdc++-v3/include/std/std_deque.h
---- libstdc++-v3.orig/include/std/std_deque.h 2004-11-24 05:11:15.000000000 +0100
-+++ libstdc++-v3/include/std/std_deque.h 2005-05-17 11:23:06.000000000 +0200
-@@ -61,6 +61,7 @@
- #define _GLIBCXX_DEQUE 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/functexcept.h>
- #include <bits/stl_algobase.h>
-@@ -77,4 +78,6 @@
- # include <debug/deque>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_DEQUE */
-diff -uNr libstdc++-v3.orig/include/std/std_fstream.h libstdc++-v3/include/std/std_fstream.h
---- libstdc++-v3.orig/include/std/std_fstream.h 2005-03-08 19:24:17.000000000 +0100
-+++ libstdc++-v3/include/std/std_fstream.h 2005-05-17 11:23:06.000000000 +0200
-@@ -40,6 +40,7 @@
- #define _GLIBCXX_FSTREAM 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <istream>
- #include <ostream>
-@@ -782,4 +783,6 @@
- # include <bits/fstream.tcc>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_FSTREAM */
-diff -uNr libstdc++-v3.orig/include/std/std_functional.h libstdc++-v3/include/std/std_functional.h
---- libstdc++-v3.orig/include/std/std_functional.h 2004-11-24 05:11:15.000000000 +0100
-+++ libstdc++-v3/include/std/std_functional.h 2005-05-17 11:23:06.000000000 +0200
-@@ -49,9 +49,12 @@
- #define _GLIBCXX_FUNCTIONAL 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <cstddef>
- #include <bits/stl_function.h>
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_FUNCTIONAL */
-diff -uNr libstdc++-v3.orig/include/std/std_iomanip.h libstdc++-v3/include/std/std_iomanip.h
---- libstdc++-v3.orig/include/std/std_iomanip.h 2004-11-24 05:11:15.000000000 +0100
-+++ libstdc++-v3/include/std/std_iomanip.h 2005-05-17 11:23:06.000000000 +0200
-@@ -40,6 +40,7 @@
- #define _GLIBCXX_IOMANIP 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <istream>
-@@ -296,4 +297,6 @@
- #endif
- } // namespace std
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_IOMANIP */
-diff -uNr libstdc++-v3.orig/include/std/std_iosfwd.h libstdc++-v3/include/std/std_iosfwd.h
---- libstdc++-v3.orig/include/std/std_iosfwd.h 2004-11-24 05:11:15.000000000 +0100
-+++ libstdc++-v3/include/std/std_iosfwd.h 2005-05-17 11:23:06.000000000 +0200
-@@ -40,6 +40,7 @@
- #define _GLIBCXX_IOSFWD 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <bits/c++locale.h>
-@@ -164,4 +165,6 @@
- /** @} */
- } // namespace std
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_IOSFWD */
-diff -uNr libstdc++-v3.orig/include/std/std_ios.h libstdc++-v3/include/std/std_ios.h
---- libstdc++-v3.orig/include/std/std_ios.h 2004-11-24 05:11:15.000000000 +0100
-+++ libstdc++-v3/include/std/std_ios.h 2005-05-17 11:23:06.000000000 +0200
-@@ -39,6 +40,7 @@
- #define _GLIBCXX_IOS 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <iosfwd>
- #include <exception> // For ios_base::failure
-@@ -49,4 +51,6 @@
- #include <streambuf>
- #include <bits/basic_ios.h>
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_IOS */
-diff -uNr libstdc++-v3.orig/include/std/std_iostream.h libstdc++-v3/include/std/std_iostream.h
---- libstdc++-v3.orig/include/std/std_iostream.h 2004-11-24 05:11:15.000000000 +0100
-+++ libstdc++-v3/include/std/std_iostream.h 2005-05-17 11:23:06.000000000 +0200
-@@ -39,6 +40,7 @@
- #define _GLIBCXX_IOSTREAM 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <ostream>
-@@ -76,4 +78,6 @@
- static ios_base::Init __ioinit;
- } // namespace std
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_IOSTREAM */
-diff -uNr libstdc++-v3.orig/include/std/std_istream.h libstdc++-v3/include/std/std_istream.h
---- libstdc++-v3.orig/include/std/std_istream.h 2004-11-24 05:11:15.000000000 +0100
-+++ libstdc++-v3/include/std/std_istream.h 2005-05-17 11:23:06.000000000 +0200
-@@ -40,6 +40,7 @@
- #define _GLIBCXX_ISTREAM 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <ios>
- #include <limits> // For numeric_limits
-@@ -814,4 +815,6 @@
- # include <bits/istream.tcc>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_ISTREAM */
-diff -uNr libstdc++-v3.orig/include/std/std_iterator.h libstdc++-v3/include/std/std_iterator.h
---- libstdc++-v3.orig/include/std/std_iterator.h 2004-11-24 05:11:15.000000000 +0100
-+++ libstdc++-v3/include/std/std_iterator.h 2005-05-17 11:23:06.000000000 +0200
-@@ -61,6 +61,7 @@
- #define _GLIBCXX_ITERATOR 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <cstddef>
-@@ -72,4 +73,6 @@
- #include <bits/stream_iterator.h>
- #include <bits/streambuf_iterator.h>
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_ITERATOR */
-diff -uNr libstdc++-v3.orig/include/std/std_limits.h libstdc++-v3/include/std/std_limits.h
---- libstdc++-v3.orig/include/std/std_limits.h 2005-02-01 02:00:39.000000000 +0100
-+++ libstdc++-v3/include/std/std_limits.h 2005-05-17 11:23:06.000000000 +0200
-@@ -43,6 +44,7 @@
- #define _GLIBCXX_NUMERIC_LIMITS 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
-
-@@ -1156,4 +1158,6 @@
- #undef __glibcxx_digits
- #undef __glibcxx_digits10
-
-+#pragma GCC visibility pop
-+
- #endif // _GLIBCXX_NUMERIC_LIMITS
-diff -uNr libstdc++-v3.orig/include/std/std_list.h libstdc++-v3/include/std/std_list.h
---- libstdc++-v3.orig/include/std/std_list.h 2004-11-24 05:11:16.000000000 +0100
-+++ libstdc++-v3/include/std/std_list.h 2005-05-17 11:23:06.000000000 +0200
-@@ -61,6 +61,7 @@
- #define _GLIBCXX_LIST 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/functexcept.h>
- #include <bits/stl_algobase.h>
-@@ -77,5 +78,7 @@
- # include <debug/list>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_LIST */
-
-diff -uNr libstdc++-v3.orig/include/std/std_locale.h libstdc++-v3/include/std/std_locale.h
---- libstdc++-v3.orig/include/std/std_locale.h 2004-11-24 05:11:16.000000000 +0100
-+++ libstdc++-v3/include/std/std_locale.h 2005-05-17 11:23:06.000000000 +0200
-@@ -39,10 +40,13 @@
- #define _GLIBCXX_LOCALE 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/localefwd.h>
- #include <bits/locale_classes.h>
- #include <bits/locale_facets.h>
- #include <bits/locale_facets.tcc>
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_LOCALE */
-diff -uNr libstdc++-v3.orig/include/std/std_map.h libstdc++-v3/include/std/std_map.h
---- libstdc++-v3.orig/include/std/std_map.h 2004-11-24 05:11:16.000000000 +0100
-+++ libstdc++-v3/include/std/std_map.h 2005-05-17 11:23:06.000000000 +0200
-@@ -61,6 +61,7 @@
- #define _GLIBCXX_MAP 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/stl_tree.h>
- #include <bits/stl_map.h>
-@@ -70,4 +71,6 @@
- # include <debug/map>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_MAP */
-diff -uNr libstdc++-v3.orig/include/std/std_memory.h libstdc++-v3/include/std/std_memory.h
---- libstdc++-v3.orig/include/std/std_memory.h 2004-11-24 05:11:16.000000000 +0100
-+++ libstdc++-v3/include/std/std_memory.h 2005-05-17 11:23:06.000000000 +0200
-@@ -49,6 +49,7 @@
- #define _GLIBCXX_MEMORY 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/stl_algobase.h>
- #include <bits/allocator.h>
-@@ -370,4 +371,6 @@
- };
- } // namespace std
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_MEMORY */
-diff -uNr libstdc++-v3.orig/include/std/std_numeric.h libstdc++-v3/include/std/std_numeric.h
---- libstdc++-v3.orig/include/std/std_numeric.h 2004-11-24 05:11:21.000000000 +0100
-+++ libstdc++-v3/include/std/std_numeric.h 2005-05-17 11:23:06.000000000 +0200
-@@ -61,6 +61,7 @@
- #define _GLIBCXX_NUMERIC 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <cstddef>
-@@ -68,4 +69,6 @@
- #include <bits/stl_function.h>
- #include <bits/stl_numeric.h>
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_NUMERIC */
-diff -uNr libstdc++-v3.orig/include/std/std_ostream.h libstdc++-v3/include/std/std_ostream.h
---- libstdc++-v3.orig/include/std/std_ostream.h 2004-11-24 05:11:21.000000000 +0100
-+++ libstdc++-v3/include/std/std_ostream.h 2005-05-17 11:23:06.000000000 +0200
-@@ -40,6 +40,7 @@
- #define _GLIBCXX_OSTREAM 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <ios>
-
-@@ -544,4 +545,6 @@
- # include <bits/ostream.tcc>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_OSTREAM */
-diff -uNr libstdc++-v3.orig/include/std/std_queue.h libstdc++-v3/include/std/std_queue.h
---- libstdc++-v3.orig/include/std/std_queue.h 2004-11-24 05:11:21.000000000 +0100
-+++ libstdc++-v3/include/std/std_queue.h 2005-05-17 11:23:06.000000000 +0200
-@@ -61,6 +61,7 @@
- #define _GLIBCXX_QUEUE 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <bits/functexcept.h>
-@@ -74,4 +75,6 @@
- #include <vector>
- #include <bits/stl_queue.h>
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_QUEUE */
-diff -uNr libstdc++-v3.orig/include/std/std_set.h libstdc++-v3/include/std/std_set.h
---- libstdc++-v3.orig/include/std/std_set.h 2004-11-24 05:11:21.000000000 +0100
-+++ libstdc++-v3/include/std/std_set.h 2005-05-17 11:23:06.000000000 +0200
-@@ -61,7 +61,8 @@
- #define _GLIBCXX_SET 1
-
- #pragma GCC system_header
--
-+#pragma GCC visibility push(default)
-+
- #include <bits/stl_tree.h>
- #include <bits/stl_set.h>
- #include <bits/stl_multiset.h>
-@@ -70,4 +71,6 @@
- # include <debug/set>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_SET */
-diff -uNr libstdc++-v3.orig/include/std/std_sstream.h libstdc++-v3/include/std/std_sstream.h
---- libstdc++-v3.orig/include/std/std_sstream.h 2004-11-24 05:11:21.000000000 +0100
-+++ libstdc++-v3/include/std/std_sstream.h 2005-05-17 11:23:06.000000000 +0200
-@@ -40,6 +40,7 @@
- #define _GLIBCXX_SSTREAM 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <istream>
- #include <ostream>
-@@ -602,4 +603,6 @@
- # include <bits/sstream.tcc>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_SSTREAM */
-diff -uNr libstdc++-v3.orig/include/std/std_stack.h libstdc++-v3/include/std/std_stack.h
---- libstdc++-v3.orig/include/std/std_stack.h 2004-11-24 05:11:21.000000000 +0100
-+++ libstdc++-v3/include/std/std_stack.h 2005-05-17 11:23:06.000000000 +0200
-@@ -61,6 +61,7 @@
- #define _GLIBCXX_STACK 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/stl_algobase.h>
- #include <bits/allocator.h>
-@@ -69,4 +70,6 @@
- #include <deque>
- #include <bits/stl_stack.h>
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_STACK */
-diff -uNr libstdc++-v3.orig/include/std/std_stdexcept.h libstdc++-v3/include/std/std_stdexcept.h
---- libstdc++-v3.orig/include/std/std_stdexcept.h 2004-11-24 05:11:21.000000000 +0100
-+++ libstdc++-v3/include/std/std_stdexcept.h 2005-05-17 11:23:06.000000000 +0200
-@@ -39,6 +39,7 @@
- #define _GLIBCXX_STDEXCEPT 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <exception>
- #include <string>
-@@ -144,4 +145,6 @@
- };
- } // namespace std
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_STDEXCEPT */
-diff -uNr libstdc++-v3.orig/include/std/std_streambuf.h libstdc++-v3/include/std/std_streambuf.h
---- libstdc++-v3.orig/include/std/std_streambuf.h 2004-11-24 05:11:21.000000000 +0100
-+++ libstdc++-v3/include/std/std_streambuf.h 2005-05-17 11:23:06.000000000 +0200
-@@ -40,6 +40,7 @@
- #define _GLIBXX_STREAMBUF 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <iosfwd>
-@@ -797,4 +798,6 @@
- # include <bits/streambuf.tcc>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_STREAMBUF */
-diff -uNr libstdc++-v3.orig/include/std/std_string.h libstdc++-v3/include/std/std_string.h
---- libstdc++-v3.orig/include/std/std_string.h 2005-01-31 17:21:52.000000000 +0100
-+++ libstdc++-v3/include/std/std_string.h 2005-05-17 11:23:06.000000000 +0200
-@@ -40,6 +40,7 @@
- #define _GLIBCXX_STRING 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <bits/stringfwd.h>
-@@ -56,4 +57,6 @@
- # include <bits/basic_string.tcc>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_STRING */
-diff -uNr libstdc++-v3.orig/include/std/std_utility.h libstdc++-v3/include/std/std_utility.h
---- libstdc++-v3.orig/include/std/std_utility.h 2004-11-24 05:11:21.000000000 +0100
-+++ libstdc++-v3/include/std/std_utility.h 2005-05-17 11:23:06.000000000 +0200
-@@ -61,9 +61,12 @@
- #define _GLIBCXX_UTILITY 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <bits/stl_relops.h>
- #include <bits/stl_pair.h>
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_UTILITY */
-diff -uNr libstdc++-v3.orig/include/std/std_valarray.h libstdc++-v3/include/std/std_valarray.h
---- libstdc++-v3.orig/include/std/std_valarray.h 2004-11-24 05:11:21.000000000 +0100
-+++ libstdc++-v3/include/std/std_valarray.h 2005-05-17 11:23:06.000000000 +0200
-@@ -38,6 +38,7 @@
- #define _GLIBCXX_VALARRAY 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
- #include <cstddef>
-@@ -1007,4 +1008,6 @@
-
- } // namespace std
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_VALARRAY */
-diff -uNr libstdc++-v3.orig/include/std/std_vector.h libstdc++-v3/include/std/std_vector.h
---- libstdc++-v3.orig/include/std/std_vector.h 2004-11-24 05:11:22.000000000 +0100
-+++ libstdc++-v3/include/std/std_vector.h 2005-05-17 11:23:06.000000000 +0200
-@@ -61,6 +61,7 @@
- #define _GLIBCXX_VECTOR 1
-
- #pragma GCC system_header
-+#pragma GCC visibility push(default)
-
- #include <bits/functexcept.h>
- #include <bits/stl_algobase.h>
-@@ -78,5 +79,7 @@
- # include <debug/vector>
- #endif
-
-+#pragma GCC visibility pop
-+
- #endif /* _GLIBCXX_VECTOR */
-
-diff -uNr libstdc++-v3.orig/include/tr1/array libstdc++-v3/include/tr1/array
---- libstdc++-v3.orig/include/tr1/array 2004-11-23 10:18:41.000000000 +0100
-+++ libstdc++-v3/include/tr1/array 2005-05-17 11:23:06.000000000 +0200
-@@ -34,6 +34,8 @@
- #ifndef _ARRAY
- #define _ARRAY 1
-
-+#pragma GCC visibility push(default)
-+
- #include <new>
- #include <iterator>
- #include <algorithm>
-@@ -202,4 +204,6 @@
- } // namespace std::tr1
- }
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/tr1/functional libstdc++-v3/include/tr1/functional
---- libstdc++-v3.orig/include/tr1/functional 2005-04-02 05:08:33.000000000 +0200
-+++ libstdc++-v3/include/tr1/functional 2005-05-17 11:28:29.000000000 +0200
-@@ -34,6 +34,8 @@
- #ifndef _TR1_FUNCTIONAL
- #define _TR1_FUNCTIONAL 1
-
-+#pragma GCC visibility push(default)
-+
- #include "../functional"
- #include <typeinfo>
- #include <tr1/type_traits>
-@@ -1161,4 +1163,6 @@
- }
- }
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/tr1/memory libstdc++-v3/include/tr1/memory
---- libstdc++-v3.orig/include/tr1/memory 2005-04-05 13:09:38.000000000 +0200
-+++ libstdc++-v3/include/tr1/memory 2005-05-20 13:24:11.000000000 +0200
-@@ -30,6 +30,8 @@
- #ifndef _TR1_MEMORY
- #define _TR1_MEMORY 1
-
-+#pragma GCC visibility push(default)
-+
- #include "../memory"
- #include <functional> // std::less
- #include <exception> // std::exception
-@@ -48,4 +50,6 @@
-
- #include <tr1/boost_shared_ptr.h>
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/tr1/tuple libstdc++-v3/include/tr1/tuple
---- libstdc++-v3.orig/include/tr1/tuple 2005-04-01 06:24:32.000000000 +0200
-+++ libstdc++-v3/include/tr1/tuple 2005-05-17 11:28:29.000000000 +0200
-@@ -36,6 +36,8 @@
- #ifndef _TUPLE
- #define _TUPLE 1
-
-+#pragma GCC visibility push(default)
-+
- #include <tr1/utility>
- #include <tr1/ref_fwd.h>
-
-@@ -272,4 +274,6 @@
-
- #include <tr1/functional>
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/tr1/type_traits libstdc++-v3/include/tr1/type_traits
---- libstdc++-v3.orig/include/tr1/type_traits 2005-04-29 00:40:43.000000000 +0200
-+++ libstdc++-v3/include/tr1/type_traits 2005-05-17 11:23:06.000000000 +0200
-@@ -34,6 +34,8 @@
- #ifndef _TYPE_TRAITS
- #define _TYPE_TRAITS 1
-
-+#pragma GCC visibility push(default)
-+
- #include <bits/c++config.h>
- #include <tr1/type_traits_fwd.h>
-
-@@ -703,4 +705,6 @@
- }
- }
-
-+#pragma GCC visibility pop
-+
- #endif
-diff -uNr libstdc++-v3.orig/include/tr1/unordered_map libstdc++-v3/include/tr1/unordered_map
---- libstdc++-v3.orig/include/tr1/unordered_map 2005-02-22 18:07:07.000000000 +0100
-+++ libstdc++-v3/include/tr1/unordered_map 2005-05-20 13:24:35.000000000 +0200
-@@ -34,6 +34,8 @@
- #ifndef GNU_LIBSTDCXX_TR1_UNORDERED_MAP_
- #define GNU_LIBSTDCXX_TR1_UNORDERED_MAP_
-
-+#pragma GCC visibility push(default)
-+
- #include <tr1/hashtable>
- #include <tr1/functional>
- #include <tr1/functional>
-@@ -163,4 +165,6 @@
-
- } }
-
-+#pragma GCC visibility pop
-+
- #endif /* GNU_LIBSTDCXX_TR1_UNORDERED_MAP_ */
-diff -uNr libstdc++-v3.orig/include/tr1/unordered_set libstdc++-v3/include/tr1/unordered_set
---- libstdc++-v3.orig/include/tr1/unordered_set 2005-02-22 18:07:07.000000000 +0100
-+++ libstdc++-v3/include/tr1/unordered_set 2005-05-20 13:24:52.000000000 +0200
-@@ -34,6 +34,8 @@
- #ifndef GNU_LIBSTDCXX_TR1_UNORDERED_SET_
- #define GNU_LIBSTDCXX_TR1_UNORDERED_SET_
-
-+#pragma GCC visibility push(default)
-+
- #include <tr1/hashtable>
- #include <tr1/functional>
- #include <memory>
-@@ -157,4 +159,6 @@
-
- } }
-
-+#pragma GCC visibility pop
-+
- #endif /* GNU_LIBSTDCXX_TR1_UNORDERED_SET_ */
-diff -uNr libstdc++-v3.orig/include/tr1/utility libstdc++-v3/include/tr1/utility
---- libstdc++-v3.orig/include/tr1/utility 2005-02-22 18:07:07.000000000 +0100
-+++ libstdc++-v3/include/tr1/utility 2005-05-17 11:23:06.000000000 +0200
-@@ -34,6 +34,8 @@
- #ifndef _TR1_UTILITY
- #define _TR1_UTILITY 1
-
-+#pragma GCC visibility push(default)
-+
- #include "../utility"
-
- namespace std
-@@ -93,6 +95,8 @@
- get(const pair<_Tp1, _Tp2>& __in)
- { return __pair_get<_Int>::__const_get(__in); }
- }
--}
-+}
-+
-+#pragma GCC visibility pop
-
- #endif