//////////////// 2005-05-04 H.J. Lu 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. 2005-02-03 H.J. Lu PR C++/19664 * decl2.c (determine_visibility): Don't set visibility to hidden if it has been set explicitly by user. 2005-05-20 Paolo Carlini PR libstdc++/19664 * include/c_std/std_cassert.h: Wrap in pragma visibility push/pop. * include/c_std/std_cctype.h: Likewise. * include/c_std/std_cerrno.h: Likewise. * include/c_std/std_cfloat.h: Likewise. * include/c_std/std_climits.h: Likewise. * include/c_std/std_clocale.h: Likewise. * include/c_std/std_cmath.h: Likewise. * include/c_std/std_csetjmp.h: Likewise. * include/c_std/std_csignal.h: Likewise. * include/c_std/std_cstdarg.h: Likewise. * include/c_std/std_cstddef.h: Likewise. * include/c_std/std_cstdio.h: Likewise. * include/c_std/std_cstdlib.h: Likewise. * include/c_std/std_cstring.h: Likewise. * include/c_std/std_ctime.h: Likewise. * include/c_std/std_cwchar.h: Likewise. * include/c_std/std_cwctype.h: Likewise. * include/debug/bitset: Likewise. * include/debug/deque: Likewise. * include/debug/hash_map: Likewise. * include/debug/hash_set: Likewise. * include/debug/list: Likewise. * include/debug/map: Likewise. * include/debug/set: Likewise. * include/debug/string: Likewise. * include/debug/vector: Likewise. * include/ext/algorithm: Likewise. * include/ext/array_allocator.h: Likewise. * include/ext/bitmap_allocator.h: Likewise. * include/ext/debug_allocator.h: Likewise. * include/ext/functional: Likewise. * include/ext/hash_map: Likewise. * include/ext/hash_set: Likewise. * include/ext/iterator: Likewise. * include/ext/malloc_allocator.h: Likewise. * include/ext/memory: Likewise. * include/ext/mt_allocator.h: Likewise. * include/ext/new_allocator.h: Likewise. * include/ext/numeric: Likewise. * include/ext/pod_char_traits.h: Likewise. * include/ext/pool_allocator.h: Likewise. * include/ext/rb_tree: Likewise. * include/ext/rope: Likewise. * include/ext/slist: Likewise. * include/ext/stdio_filebuf.h: Likewise. * include/ext/stdio_sync_filebuf.h: Likewise. * include/std/std_algorithm.h: Likewise. * include/std/std_bitset.h: Likewise. * include/std/std_complex.h: Likewise. * include/std/std_deque.h: Likewise. * include/std/std_fstream.h: Likewise. * include/std/std_functional.h: Likewise. * include/std/std_iomanip.h: Likewise. * include/std/std_ios.h: Likewise. * include/std/std_iosfwd.h: Likewise. * include/std/std_iostream.h: Likewise. * include/std/std_istream.h: Likewise. * include/std/std_iterator.h: Likewise. * include/std/std_limits.h: Likewise. * include/std/std_list.h: Likewise. * include/std/std_locale.h: Likewise. * include/std/std_map.h: Likewise. * include/std/std_memory.h: Likewise. * include/std/std_numeric.h: Likewise. * include/std/std_ostream.h: Likewise. * include/std/std_queue.h: Likewise. * include/std/std_set.h: Likewise. * include/std/std_sstream.h: Likewise. * include/std/std_stack.h: Likewise. * include/std/std_stdexcept.h: Likewise. * include/std/std_streambuf.h: Likewise. * include/std/std_string.h: Likewise. * include/std/std_utility.h: Likewise. * include/std/std_valarray.h: Likewise. * include/std/std_vector.h: Likewise. * include/tr1/array: Likewise. * include/tr1/functional: Likewise. * include/tr1/memory: Likewise. * include/tr1/tuple: Likewise. * include/tr1/type_traits: Likewise. * include/tr1/unordered_map: Likewise. * include/tr1/unordered_set: Likewise. * include/tr1/utility: Likewise. * testsuite/20_util/memory/auto_ptr/assign_neg.cc: Adjust dg-error line numbers. ================================================================================ --- gcc/config/elfos.h +++ gcc/config/elfos.h @@ -487,3 +487,17 @@ 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 +++ gcc/config/i386/i386-protos.h @@ -28,6 +28,7 @@ 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 +++ gcc/config/i386/i386.c @@ -3942,6 +3942,13 @@ 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 +++ gcc/config/i386/linux.h @@ -185,3 +185,6 @@ /* 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 +++ gcc/config/i386/linux64.h @@ -73,3 +73,6 @@ /* 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 +++ gcc/config/ia64/hpux.h @@ -152,10 +152,6 @@ 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 +++ gcc/config/ia64/ia64.c @@ -247,6 +247,7 @@ 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); @@ -258,10 +259,6 @@ 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) @@ -373,6 +370,9 @@ #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 @@ -4610,43 +4610,24 @@ 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); } /* Parse the -mfixed-range= option string. */ @@ -8599,36 +8580,16 @@ 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); @@ -8637,18 +8598,28 @@ abort (); 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/cp/decl2.c +++ gcc/cp/decl2.c @@ -1644,8 +1644,12 @@ && DECL_DECLARED_INLINE_P (decl) && visibility_options.inlines_hidden) { - DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN; - DECL_VISIBILITY_SPECIFIED (decl) = 1; + /* Don't change it if it has been set explicitly by user. */ + if (!DECL_VISIBILITY_SPECIFIED (decl)) + { + DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN; + DECL_VISIBILITY_SPECIFIED (decl) = 1; + } } else if (CLASSTYPE_VISIBILITY_SPECIFIED (class_type)) { --- gcc/output.h +++ gcc/output.h @@ -517,6 +517,12 @@ 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); /* dbxout helper functions */ --- gcc/tree.h +++ gcc/tree.h @@ -3737,6 +3737,17 @@ 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 +++ gcc/varasm.c @@ -140,7 +140,6 @@ 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 *); #ifdef BSS_SECTION_ASM_OP @@ -4615,13 +4614,18 @@ /* 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 @@ -5438,4 +5442,64 @@ 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" --- libstdc++-v3/include/c_std/std_cassert.h +++ libstdc++-v3/include/c_std/std_cassert.h @@ -1,6 +1,6 @@ // -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -44,5 +44,8 @@ // No include guards on this header... #pragma GCC system_header +#pragma GCC visibility push(default) #include + +#pragma GCC visibility pop --- libstdc++-v3/include/c_std/std_cctype.h +++ libstdc++-v3/include/c_std/std_cctype.h @@ -1,6 +1,7 @@ // -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2005 +// Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -44,6 +45,7 @@ #define _GLIBCXX_CCTYPE 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -80,4 +82,6 @@ using ::toupper; } +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_cerrno.h +++ libstdc++-v3/include/c_std/std_cerrno.h @@ -1,6 +1,7 @@ // The -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc. +// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2005 +// Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -44,6 +45,7 @@ #define _GLIBCXX_CERRNO 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -52,4 +54,6 @@ #define errno errno #endif +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_cfloat.h +++ libstdc++-v3/include/c_std/std_cfloat.h @@ -1,6 +1,7 @@ // -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2005 +// Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -44,7 +45,10 @@ #define _GLIBCXX_CFLOAT 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_climits.h +++ libstdc++-v3/include/c_std/std_climits.h @@ -45,7 +45,9 @@ #define _GLIBCXX_CLIMITS 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include +#pragma GCC visibility pop #endif --- libstdc++-v3/include/c_std/std_clocale.h +++ libstdc++-v3/include/c_std/std_clocale.h @@ -1,6 +1,6 @@ // -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -45,6 +45,7 @@ #define _GLIBCXX_CLOCALE 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -59,4 +60,6 @@ using ::localeconv; } +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_cmath.h +++ libstdc++-v3/include/c_std/std_cmath.h @@ -45,6 +45,7 @@ #define _GLIBCXX_CMATH 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -574,4 +575,6 @@ # include #endif +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_csetjmp.h +++ libstdc++-v3/include/c_std/std_csetjmp.h @@ -1,6 +1,6 @@ // -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -45,6 +45,7 @@ #define _GLIBCXX_CSETJMP 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -62,4 +63,6 @@ using ::longjmp; } +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_csignal.h +++ libstdc++-v3/include/c_std/std_csignal.h @@ -1,6 +1,6 @@ // -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -45,6 +45,7 @@ #define _GLIBCXX_CSIGNAL 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -58,4 +59,6 @@ using ::raise; } +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_cstdarg.h +++ libstdc++-v3/include/c_std/std_cstdarg.h @@ -1,6 +1,7 @@ // -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2005 +// Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -44,6 +45,7 @@ #define _GLIBCXX_CSTDARG 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -57,4 +59,6 @@ using ::va_list; } +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_cstddef.h +++ libstdc++-v3/include/c_std/std_cstddef.h @@ -1,6 +1,7 @@ // -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2005 +// Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -44,6 +45,7 @@ #define _GLIBCXX_CSTDDEF 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -53,4 +55,6 @@ using ::size_t; } +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_cstdio.h +++ libstdc++-v3/include/c_std/std_cstdio.h @@ -1,6 +1,6 @@ // -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -45,6 +45,7 @@ #define _GLIBCXX_CSTDIO 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -182,4 +183,6 @@ } #endif +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_cstdlib.h +++ libstdc++-v3/include/c_std/std_cstdlib.h @@ -1,6 +1,6 @@ // -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -45,6 +45,7 @@ #define _GLIBCXX_CSTDLIB 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -217,4 +218,6 @@ } #endif +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_cstring.h +++ libstdc++-v3/include/c_std/std_cstring.h @@ -1,6 +1,6 @@ // -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -45,6 +45,7 @@ #define _GLIBCXX_CSTRING 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -125,4 +126,6 @@ { return __builtin_strstr(const_cast(__s1), __s2); } } +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_ctime.h +++ libstdc++-v3/include/c_std/std_ctime.h @@ -1,6 +1,6 @@ // -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -45,6 +45,7 @@ #define _GLIBCXX_CTIME 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -78,4 +79,6 @@ using ::strftime; } +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_cwchar.h +++ libstdc++-v3/include/c_std/std_cwchar.h @@ -1,6 +1,6 @@ // -*- C++ -*- forwarding header. -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -45,6 +45,7 @@ #define _GLIBCXX_CWCHAR 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -270,4 +271,6 @@ #endif //_GLIBCXX_USE_WCHAR_T +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/c_std/std_cwctype.h +++ libstdc++-v3/include/c_std/std_cwctype.h @@ -45,6 +45,7 @@ #define _GLIBCXX_CWCTYPE 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -107,4 +108,6 @@ } #endif //_GLIBCXX_USE_WCHAR_T +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/debug/bitset +++ libstdc++-v3/include/debug/bitset @@ -31,6 +31,8 @@ #ifndef _GLIBCXX_DEBUG_BITSET #define _GLIBCXX_DEBUG_BITSET +#pragma GCC visibility push(default) + #include #include #include @@ -318,4 +320,6 @@ { return __os << __x._M_base(); } } // namespace __gnu_debug_def +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/debug/deque +++ libstdc++-v3/include/debug/deque @@ -1,6 +1,6 @@ // Debugging deque implementation -*- C++ -*- -// Copyright (C) 2003, 2004 +// Copyright (C) 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -31,6 +31,8 @@ #ifndef _GLIBCXX_DEBUG_DEQUE #define _GLIBCXX_DEBUG_DEQUE 1 +#pragma GCC visibility push(default) + #include #include #include @@ -383,4 +385,6 @@ { __lhs.swap(__rhs); } } // namespace __gnu_debug_def +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/debug/hash_map +++ libstdc++-v3/include/debug/hash_map @@ -1,6 +1,6 @@ // Debugging hash_map/hash_multimap implementation -*- C++ -*- -// Copyright (C) 2003 +// Copyright (C) 2003, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -31,8 +31,12 @@ #ifndef _GLIBCXX_DEBUG_HASH_MAP #define _GLIBCXX_DEBUG_HASH_MAP 1 +#pragma GCC visibility push(default) + #include #include #include +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/debug/hash_set +++ libstdc++-v3/include/debug/hash_set @@ -1,6 +1,6 @@ // Debugging hash_set/hash_multiset implementation -*- C++ -*- -// Copyright (C) 2003 +// Copyright (C) 2003, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -31,8 +31,12 @@ #ifndef _GLIBCXX_DEBUG_HASH_SET #define _GLIBCXX_DEBUG_HASH_SET 1 +#pragma GCC visibility push(default) + #include #include #include +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/debug/list +++ libstdc++-v3/include/debug/list @@ -1,6 +1,6 @@ // Debugging list implementation -*- C++ -*- -// Copyright (C) 2003, 2004 +// Copyright (C) 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -31,6 +31,8 @@ #ifndef _GLIBCXX_DEBUG_LIST #define _GLIBCXX_DEBUG_LIST 1 +#pragma GCC visibility push(default) + #include #include #include @@ -502,4 +504,6 @@ { __lhs.swap(__rhs); } } // namespace __gnu_debug_def +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/debug/map +++ libstdc++-v3/include/debug/map @@ -1,6 +1,6 @@ // Debugging map/multimap implementation -*- C++ -*- -// Copyright (C) 2003 +// Copyright (C) 2003, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -31,8 +31,12 @@ #ifndef _GLIBCXX_DEBUG_MAP #define _GLIBCXX_DEBUG_MAP 1 +#pragma GCC visibility push(default) + #include #include #include +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/debug/set +++ libstdc++-v3/include/debug/set @@ -1,6 +1,6 @@ // Debugging set/multiset implementation -*- C++ -*- -// Copyright (C) 2003 +// Copyright (C) 2003, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -31,8 +31,12 @@ #ifndef _GLIBCXX_DEBUG_SET #define _GLIBCXX_DEBUG_SET 1 +#pragma GCC visibility push(default) + #include #include #include +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/debug/string +++ libstdc++-v3/include/debug/string @@ -31,6 +31,8 @@ #ifndef _GLIBCXX_DEBUG_STRING #define _GLIBCXX_DEBUG_STRING 1 +#pragma GCC visibility push(default) + #include #include #include @@ -1015,4 +1017,6 @@ } // namespace __gnu_debug +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/debug/vector +++ libstdc++-v3/include/debug/vector @@ -1,6 +1,6 @@ // Debugging vector implementation -*- C++ -*- -// Copyright (C) 2003, 2004 +// Copyright (C) 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -31,6 +31,8 @@ #ifndef _GLIBCXX_DEBUG_VECTOR #define _GLIBCXX_DEBUG_VECTOR 1 +#pragma GCC visibility push(default) + #include #include #include @@ -409,4 +411,6 @@ { __lhs.swap(__rhs); } } // namespace __gnu_debug_def +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/algorithm +++ libstdc++-v3/include/ext/algorithm @@ -1,6 +1,6 @@ // Algorithm extensions -*- C++ -*- -// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -62,6 +62,7 @@ #define _EXT_ALGORITHM 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -523,4 +524,6 @@ } } // namespace __gnu_cxx +#pragma GCC visibility pop + #endif /* _EXT_ALGORITHM */ --- libstdc++-v3/include/ext/array_allocator.h +++ libstdc++-v3/include/ext/array_allocator.h @@ -34,6 +34,8 @@ #ifndef _ARRAY_ALLOCATOR_H #define _ARRAY_ALLOCATOR_H 1 +#pragma GCC visibility push(default) + #include #include #include @@ -142,4 +144,6 @@ { return false; } } // namespace __gnu_cxx +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/bitmap_allocator.h +++ libstdc++-v3/include/ext/bitmap_allocator.h @@ -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 @@ -1289,6 +1291,8 @@ } +#pragma GCC visibility pop + #endif // LocalWords: namespace GTHREADS bool const gthread endif Mutex mutex --- libstdc++-v3/include/ext/debug_allocator.h +++ libstdc++-v3/include/ext/debug_allocator.h @@ -48,6 +48,8 @@ #ifndef _DEBUG_ALLOCATOR_H #define _DEBUG_ALLOCATOR_H 1 +#pragma GCC visibility push(default) + #include namespace __gnu_cxx @@ -122,4 +124,6 @@ }; } // namespace __gnu_cxx +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/functional +++ libstdc++-v3/include/ext/functional @@ -1,6 +1,6 @@ // Functional extensions -*- C++ -*- -// Copyright (C) 2002, 2004 Free Software Foundation, Inc. +// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -62,6 +62,7 @@ #define _EXT_FUNCTIONAL 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -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 --- libstdc++-v3/include/ext/hash_map +++ libstdc++-v3/include/ext/hash_map @@ -1,6 +1,6 @@ // Hashing map implementation -*- C++ -*- -// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -61,6 +61,8 @@ #ifndef _HASH_MAP #define _HASH_MAP 1 +#pragma GCC visibility push(default) + #include #include @@ -617,4 +619,7 @@ { return *this; } }; } // namespace std + +#pragma GCC visibility push(default) + #endif --- libstdc++-v3/include/ext/hash_set +++ libstdc++-v3/include/ext/hash_set @@ -1,6 +1,6 @@ // Hashing set implementation -*- C++ -*- -// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -61,6 +61,8 @@ #ifndef _HASH_SET #define _HASH_SET 1 +#pragma GCC visibility push(default) + #include #include @@ -583,4 +585,7 @@ operator++(int) { return *this; } }; } // namespace std + +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/iterator +++ libstdc++-v3/include/ext/iterator @@ -1,6 +1,6 @@ // HP/SGI iterator extensions -*- C++ -*- -// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -62,6 +62,7 @@ #define _EXT_ITERATOR 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -113,5 +114,7 @@ } } // namespace __gnu_cxx +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/malloc_allocator.h +++ libstdc++-v3/include/ext/malloc_allocator.h @@ -1,6 +1,7 @@ // Allocator that wraps "C" malloc -*- C++ -*- -// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2003, 2004, 2005 +// Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -34,6 +35,8 @@ #ifndef _MALLOC_ALLOCATOR_H #define _MALLOC_ALLOCATOR_H 1 +#pragma GCC visibility push(default) + #include #include #include @@ -122,4 +125,6 @@ { return false; } } // namespace __gnu_cxx +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/memory +++ libstdc++-v3/include/ext/memory @@ -1,6 +1,6 @@ // Memory extensions -*- C++ -*- -// Copyright (C) 2002, 2004 Free Software Foundation, Inc. +// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -62,6 +62,7 @@ #define _EXT_MEMORY 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -194,5 +195,7 @@ }; } // namespace __gnu_cxx +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/mt_allocator.h +++ libstdc++-v3/include/ext/mt_allocator.h @@ -34,6 +34,8 @@ #ifndef _MT_ALLOCATOR_H #define _MT_ALLOCATOR_H 1 +#pragma GCC visibility push(default) + #include #include #include @@ -760,4 +762,6 @@ #undef __thread_default } // namespace __gnu_cxx +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/new_allocator.h +++ libstdc++-v3/include/ext/new_allocator.h @@ -1,6 +1,6 @@ // Allocator that wraps operator new -*- C++ -*- -// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -34,6 +34,8 @@ #ifndef _NEW_ALLOCATOR_H #define _NEW_ALLOCATOR_H 1 +#pragma GCC visibility push(default) + #include #include @@ -118,4 +120,6 @@ { return false; } } // namespace __gnu_cxx +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/numeric +++ libstdc++-v3/include/ext/numeric @@ -1,6 +1,6 @@ // Numeric extensions -*- C++ -*- -// Copyright (C) 2002, 2004 Free Software Foundation, Inc. +// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -62,6 +62,7 @@ #define _EXT_NUMERIC 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -146,5 +147,7 @@ } } // namespace __gnu_cxx +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/pod_char_traits.h +++ libstdc++-v3/include/ext/pod_char_traits.h @@ -37,6 +37,8 @@ #ifndef _POD_CHAR_TRAITS_H #define _POD_CHAR_TRAITS_H 1 +#pragma GCC visibility push(default) + #include namespace __gnu_cxx @@ -182,4 +184,6 @@ }; } +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/pool_allocator.h +++ libstdc++-v3/include/ext/pool_allocator.h @@ -1,6 +1,6 @@ // Allocators -*- C++ -*- -// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -47,6 +47,8 @@ #ifndef _POOL_ALLOCATOR_H #define _POOL_ALLOCATOR_H 1 +#pragma GCC visibility push(default) + #include #include #include @@ -252,4 +254,6 @@ } } // namespace __gnu_cxx +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/rb_tree +++ libstdc++-v3/include/ext/rb_tree @@ -1,6 +1,6 @@ // rb_tree extension -*- C++ -*- -// Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -62,6 +62,7 @@ #define _RB_TREE 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -94,4 +95,6 @@ }; } // namespace __gnu_cxx +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/rope +++ libstdc++-v3/include/ext/rope @@ -48,6 +48,8 @@ #ifndef _ROPE #define _ROPE 1 +#pragma GCC visibility push(default) + #include #include #include @@ -2898,4 +2900,6 @@ # include +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/slist +++ libstdc++-v3/include/ext/slist @@ -49,6 +49,8 @@ #ifndef _SLIST #define _SLIST 1 +#pragma GCC visibility push(default) + #include #include #include @@ -1069,4 +1071,7 @@ }; } // namespace std + +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/stdio_filebuf.h +++ libstdc++-v3/include/ext/stdio_filebuf.h @@ -1,6 +1,6 @@ // File descriptor layer for filebuf -*- C++ -*- -// Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -35,6 +35,7 @@ #define _STDIO_FILEBUF_H 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -158,4 +159,6 @@ } } // namespace __gnu_cxx +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/ext/stdio_sync_filebuf.h +++ libstdc++-v3/include/ext/stdio_sync_filebuf.h @@ -1,6 +1,6 @@ // Iostreams wrapper for stdio FILE* -*- C++ -*- -// Copyright (C) 2003, 2004 Free Software Foundation, Inc. +// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -35,6 +35,7 @@ #define _STDIO_SYNC_FILEBUF_H 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -279,4 +280,6 @@ #endif } // namespace __gnu_cxx +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/std/std_algorithm.h +++ libstdc++-v3/include/std/std_algorithm.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2001, 2002 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -61,10 +61,13 @@ #define _GLIBCXX_ALGORITHM 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include #include #include +#pragma GCC visibility pop + #endif /* _GLIBCXX_ALGORITHM */ --- libstdc++-v3/include/std/std_bitset.h +++ libstdc++-v3/include/std/std_bitset.h @@ -48,6 +48,7 @@ #define _GLIBCXX_BITSET 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include // For size_t #include // For memset @@ -1300,4 +1301,6 @@ # include #endif +#pragma GCC visibility pop + #endif /* _GLIBCXX_BITSET */ --- libstdc++-v3/include/std/std_complex.h +++ libstdc++-v3/include/std/std_complex.h @@ -43,6 +43,7 @@ #define _GLIBCXX_COMPLEX 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -1483,4 +1484,6 @@ : _M_value(__z.__rep()) { } } // namespace std +#pragma GCC visibility pop + #endif /* _GLIBCXX_COMPLEX */ --- libstdc++-v3/include/std/std_deque.h +++ libstdc++-v3/include/std/std_deque.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -61,6 +61,7 @@ #define _GLIBCXX_DEQUE 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -77,4 +78,6 @@ # include #endif +#pragma GCC visibility pop + #endif /* _GLIBCXX_DEQUE */ --- libstdc++-v3/include/std/std_fstream.h +++ libstdc++-v3/include/std/std_fstream.h @@ -40,6 +40,7 @@ #define _GLIBCXX_FSTREAM 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -782,4 +783,6 @@ # include #endif +#pragma GCC visibility pop + #endif /* _GLIBCXX_FSTREAM */ --- libstdc++-v3/include/std/std_functional.h +++ libstdc++-v3/include/std/std_functional.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2001, 2002 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -49,9 +49,12 @@ #define _GLIBCXX_FUNCTIONAL 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include #include +#pragma GCC visibility pop + #endif /* _GLIBCXX_FUNCTIONAL */ --- libstdc++-v3/include/std/std_iomanip.h +++ libstdc++-v3/include/std/std_iomanip.h @@ -1,6 +1,6 @@ // Standard stream manipulators -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003 +// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -40,6 +40,7 @@ #define _GLIBCXX_IOMANIP 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -296,4 +297,6 @@ #endif } // namespace std +#pragma GCC visibility pop + #endif /* _GLIBCXX_IOMANIP */ --- libstdc++-v3/include/std/std_ios.h +++ libstdc++-v3/include/std/std_ios.h @@ -1,6 +1,7 @@ // Iostreams base classes -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc. +// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2005 +// Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -39,6 +40,7 @@ #define _GLIBCXX_IOS 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include // For ios_base::failure @@ -49,4 +51,6 @@ #include #include +#pragma GCC visibility pop + #endif /* _GLIBCXX_IOS */ --- libstdc++-v3/include/std/std_iosfwd.h +++ libstdc++-v3/include/std/std_iosfwd.h @@ -1,6 +1,6 @@ // Forwarding declarations -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003 +// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -40,6 +40,7 @@ #define _GLIBCXX_IOSFWD 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -164,4 +165,6 @@ /** @} */ } // namespace std +#pragma GCC visibility pop + #endif /* _GLIBCXX_IOSFWD */ --- libstdc++-v3/include/std/std_iostream.h +++ libstdc++-v3/include/std/std_iostream.h @@ -1,6 +1,7 @@ // Standard iostream objects -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc. +// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2005 +// Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -39,6 +40,7 @@ #define _GLIBCXX_IOSTREAM 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -76,4 +78,6 @@ static ios_base::Init __ioinit; } // namespace std +#pragma GCC visibility pop + #endif /* _GLIBCXX_IOSTREAM */ --- libstdc++-v3/include/std/std_istream.h +++ libstdc++-v3/include/std/std_istream.h @@ -1,6 +1,6 @@ // Input streams -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004 +// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -40,6 +40,7 @@ #define _GLIBCXX_ISTREAM 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include // For numeric_limits @@ -814,4 +815,6 @@ # include #endif +#pragma GCC visibility pop + #endif /* _GLIBCXX_ISTREAM */ --- libstdc++-v3/include/std/std_iterator.h +++ libstdc++-v3/include/std/std_iterator.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2001, 2002 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -61,6 +61,7 @@ #define _GLIBCXX_ITERATOR 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -72,4 +73,6 @@ #include #include +#pragma GCC visibility pop + #endif /* _GLIBCXX_ITERATOR */ --- libstdc++-v3/include/std/std_limits.h +++ libstdc++-v3/include/std/std_limits.h @@ -1,6 +1,7 @@ // The template and inlines for the -*- C++ -*- numeric_limits classes. -// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005 +// Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -43,6 +44,7 @@ #define _GLIBCXX_NUMERIC_LIMITS 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -1156,4 +1158,6 @@ #undef __glibcxx_digits #undef __glibcxx_digits10 +#pragma GCC visibility pop + #endif // _GLIBCXX_NUMERIC_LIMITS --- libstdc++-v3/include/std/std_list.h +++ libstdc++-v3/include/std/std_list.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -61,6 +61,7 @@ #define _GLIBCXX_LIST 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -77,5 +78,7 @@ # include #endif +#pragma GCC visibility pop + #endif /* _GLIBCXX_LIST */ --- libstdc++-v3/include/std/std_locale.h +++ libstdc++-v3/include/std/std_locale.h @@ -1,6 +1,7 @@ // Locale support -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2002, 2003 Free Software Foundation, Inc. +// Copyright (C) 1997, 1998, 1999, 2002, 2003, 2005 +// Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -39,10 +40,13 @@ #define _GLIBCXX_LOCALE 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include #include #include +#pragma GCC visibility pop + #endif /* _GLIBCXX_LOCALE */ --- libstdc++-v3/include/std/std_map.h +++ libstdc++-v3/include/std/std_map.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2001, 2002 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -61,6 +61,7 @@ #define _GLIBCXX_MAP 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -70,4 +71,6 @@ # include #endif +#pragma GCC visibility pop + #endif /* _GLIBCXX_MAP */ --- libstdc++-v3/include/std/std_memory.h +++ libstdc++-v3/include/std/std_memory.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -49,6 +49,7 @@ #define _GLIBCXX_MEMORY 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -370,4 +371,6 @@ }; } // namespace std +#pragma GCC visibility pop + #endif /* _GLIBCXX_MEMORY */ --- libstdc++-v3/include/std/std_numeric.h +++ libstdc++-v3/include/std/std_numeric.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2001, 2002 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -61,6 +61,7 @@ #define _GLIBCXX_NUMERIC 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -68,4 +69,6 @@ #include #include +#pragma GCC visibility pop + #endif /* _GLIBCXX_NUMERIC */ --- libstdc++-v3/include/std/std_ostream.h +++ libstdc++-v3/include/std/std_ostream.h @@ -1,6 +1,6 @@ // Output streams -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -40,6 +40,7 @@ #define _GLIBCXX_OSTREAM 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include @@ -544,4 +545,6 @@ # include #endif +#pragma GCC visibility pop + #endif /* _GLIBCXX_OSTREAM */ --- libstdc++-v3/include/std/std_queue.h +++ libstdc++-v3/include/std/std_queue.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -61,6 +61,7 @@ #define _GLIBCXX_QUEUE 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -74,4 +75,6 @@ #include #include +#pragma GCC visibility pop + #endif /* _GLIBCXX_QUEUE */ --- libstdc++-v3/include/std/std_set.h +++ libstdc++-v3/include/std/std_set.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2001, 2002 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -61,7 +61,8 @@ #define _GLIBCXX_SET 1 #pragma GCC system_header - +#pragma GCC visibility push(default) + #include #include #include @@ -70,4 +71,6 @@ # include #endif +#pragma GCC visibility pop + #endif /* _GLIBCXX_SET */ --- libstdc++-v3/include/std/std_sstream.h +++ libstdc++-v3/include/std/std_sstream.h @@ -40,6 +40,7 @@ #define _GLIBCXX_SSTREAM 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -614,4 +615,6 @@ # include #endif +#pragma GCC visibility pop + #endif /* _GLIBCXX_SSTREAM */ --- libstdc++-v3/include/std/std_stack.h +++ libstdc++-v3/include/std/std_stack.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -61,6 +61,7 @@ #define _GLIBCXX_STACK 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -69,4 +70,6 @@ #include #include +#pragma GCC visibility pop + #endif /* _GLIBCXX_STACK */ --- libstdc++-v3/include/std/std_stdexcept.h +++ libstdc++-v3/include/std/std_stdexcept.h @@ -1,6 +1,6 @@ // Standard exception classes -*- C++ -*- -// Copyright (C) 2001, 2002 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -39,6 +39,7 @@ #define _GLIBCXX_STDEXCEPT 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -144,4 +145,6 @@ }; } // namespace std +#pragma GCC visibility pop + #endif /* _GLIBCXX_STDEXCEPT */ --- libstdc++-v3/include/std/std_streambuf.h +++ libstdc++-v3/include/std/std_streambuf.h @@ -1,6 +1,6 @@ // Stream buffer classes -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -40,6 +40,7 @@ #define _GLIBXX_STREAMBUF 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -797,4 +798,6 @@ # include #endif +#pragma GCC visibility pop + #endif /* _GLIBCXX_STREAMBUF */ --- libstdc++-v3/include/std/std_string.h +++ libstdc++-v3/include/std/std_string.h @@ -40,6 +40,7 @@ #define _GLIBCXX_STRING 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -56,4 +57,6 @@ # include #endif +#pragma GCC visibility pop + #endif /* _GLIBCXX_STRING */ --- libstdc++-v3/include/std/std_utility.h +++ libstdc++-v3/include/std/std_utility.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2001, 2002 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -61,9 +61,12 @@ #define _GLIBCXX_UTILITY 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include #include +#pragma GCC visibility pop + #endif /* _GLIBCXX_UTILITY */ --- libstdc++-v3/include/std/std_valarray.h +++ libstdc++-v3/include/std/std_valarray.h @@ -1,6 +1,6 @@ // The template and inlines for the -*- C++ -*- valarray class. -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -38,6 +38,7 @@ #define _GLIBCXX_VALARRAY 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -1007,4 +1008,6 @@ } // namespace std +#pragma GCC visibility pop + #endif /* _GLIBCXX_VALARRAY */ --- libstdc++-v3/include/std/std_vector.h +++ libstdc++-v3/include/std/std_vector.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -61,6 +61,7 @@ #define _GLIBCXX_VECTOR 1 #pragma GCC system_header +#pragma GCC visibility push(default) #include #include @@ -78,5 +79,7 @@ # include #endif +#pragma GCC visibility pop + #endif /* _GLIBCXX_VECTOR */ --- libstdc++-v3/include/tr1/array +++ libstdc++-v3/include/tr1/array @@ -34,6 +34,8 @@ #ifndef _ARRAY #define _ARRAY 1 +#pragma GCC visibility push(default) + #include #include #include @@ -231,4 +233,6 @@ } // namespace std::tr1 } +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/tr1/functional +++ libstdc++-v3/include/tr1/functional @@ -34,6 +34,8 @@ #ifndef _TR1_FUNCTIONAL #define _TR1_FUNCTIONAL 1 +#pragma GCC visibility push(default) + #include "../functional" #include #include @@ -1266,4 +1268,6 @@ } } +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/tr1/memory +++ libstdc++-v3/include/tr1/memory @@ -30,6 +30,8 @@ #ifndef _TR1_MEMORY #define _TR1_MEMORY 1 +#pragma GCC visibility push(default) + #include "../memory" #include // std::less #include // std::exception @@ -48,4 +50,6 @@ #include +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/tr1/tuple +++ libstdc++-v3/include/tr1/tuple @@ -36,6 +36,8 @@ #ifndef _TUPLE #define _TUPLE 1 +#pragma GCC visibility push(default) + #include #include @@ -272,4 +274,6 @@ #include +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/tr1/type_traits +++ libstdc++-v3/include/tr1/type_traits @@ -34,6 +34,8 @@ #ifndef _TYPE_TRAITS #define _TYPE_TRAITS 1 +#pragma GCC visibility push(default) + #include #include @@ -703,4 +705,6 @@ } } +#pragma GCC visibility pop + #endif --- libstdc++-v3/include/tr1/unordered_map +++ libstdc++-v3/include/tr1/unordered_map @@ -34,6 +34,8 @@ #ifndef GNU_LIBSTDCXX_TR1_UNORDERED_MAP_ #define GNU_LIBSTDCXX_TR1_UNORDERED_MAP_ +#pragma GCC visibility push(default) + #include #include #include @@ -163,4 +165,6 @@ } } +#pragma GCC visibility pop + #endif /* GNU_LIBSTDCXX_TR1_UNORDERED_MAP_ */ --- libstdc++-v3/include/tr1/unordered_set +++ libstdc++-v3/include/tr1/unordered_set @@ -34,6 +34,8 @@ #ifndef GNU_LIBSTDCXX_TR1_UNORDERED_SET_ #define GNU_LIBSTDCXX_TR1_UNORDERED_SET_ +#pragma GCC visibility push(default) + #include #include #include @@ -157,4 +159,6 @@ } } +#pragma GCC visibility pop + #endif /* GNU_LIBSTDCXX_TR1_UNORDERED_SET_ */ --- libstdc++-v3/include/tr1/utility +++ libstdc++-v3/include/tr1/utility @@ -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 --- libstdc++-v3/testsuite/20_util/memory/auto_ptr/assign_neg.cc +++ libstdc++-v3/testsuite/20_util/memory/auto_ptr/assign_neg.cc @@ -46,5 +46,5 @@ test01(); return 0; } -// { dg-error "candidates" "" { target *-*-* } 223 } -// { dg-error "std::auto_ptr" "" { target *-*-* } 353 } +// { dg-error "candidates" "" { target *-*-* } 224 } +// { dg-error "std::auto_ptr" "" { target *-*-* } 354 }