Magellan Linux

Contents of /trunk/gcc/patches/gcc-4.0.2-visibility-hidden.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 169 - (show annotations) (download)
Tue May 8 21:36:54 2007 UTC (17 years ago) by niro
File size: 64084 byte(s)
-moved to patches subdir

1 ////////////////
2 2005-05-04 H.J. Lu <hongjiu.lu@intel.com>
3
4 PR middle-end/20218
5 * config/elfos.h (ASM_OUTPUT_EXTERNAL): New.
6 (TARGET_ASM_FILE_END): New.
7
8 * config/i386/i386-protos.h (ix86_elf_file_end): New.
9
10 * config/i386/i386.c (ix86_elf_file_end): New.
11
12 * config/i386/linux.h (TARGET_ASM_FILE_END): Defined.
13 * config/i386/linux64.h (TARGET_ASM_FILE_END): Likewise.
14
15 * config/ia64/hpux.h (TARGET_ASM_FILE_END): Removed.
16
17 * config/ia64/ia64.c (ia64_hpux_add_extern_decl): Removed.
18 (ia64_hpux_file_end): Renamed to ...
19 (ia64_file_end): This. Handle symbol with non-default
20 visibility.
21 (TARGET_ASM_FILE_END): Defined.
22 (ia64_asm_output_external): Rewritten.
23 (extern_func_list): Removed.
24 (extern_func_head): Likewise.
25
26 * output.h (default_elf_asm_output_external): New.
27 (default_elf_asm_output_external_1): New.
28 (default_elf_asm_file_end): New.
29 (maybe_assemble_visibility): New.
30
31 * tree.h (extern_symbol_list): New.
32 (extern_symbol_head): New.
33
34 * varasm.c (maybe_assemble_visibility): Make it extern and
35 return int.
36 (extern_symbol_head): New.
37 (default_elf_asm_output_external_1): New.
38 (default_elf_asm_output_external): New.
39 (default_elf_asm_file_end): New.
40
41 2005-02-03 H.J. Lu <hongjiu.lu@intel.com>
42
43 PR C++/19664
44 * decl2.c (determine_visibility): Don't set visibility to
45 hidden if it has been set explicitly by user.
46 2005-05-20 Paolo Carlini <pcarlini@suse.de>
47
48 PR libstdc++/19664
49 * include/c_std/std_cassert.h: Wrap in pragma visibility push/pop.
50 * include/c_std/std_cctype.h: Likewise.
51 * include/c_std/std_cerrno.h: Likewise.
52 * include/c_std/std_cfloat.h: Likewise.
53 * include/c_std/std_climits.h: Likewise.
54 * include/c_std/std_clocale.h: Likewise.
55 * include/c_std/std_cmath.h: Likewise.
56 * include/c_std/std_csetjmp.h: Likewise.
57 * include/c_std/std_csignal.h: Likewise.
58 * include/c_std/std_cstdarg.h: Likewise.
59 * include/c_std/std_cstddef.h: Likewise.
60 * include/c_std/std_cstdio.h: Likewise.
61 * include/c_std/std_cstdlib.h: Likewise.
62 * include/c_std/std_cstring.h: Likewise.
63 * include/c_std/std_ctime.h: Likewise.
64 * include/c_std/std_cwchar.h: Likewise.
65 * include/c_std/std_cwctype.h: Likewise.
66 * include/debug/bitset: Likewise.
67 * include/debug/deque: Likewise.
68 * include/debug/hash_map: Likewise.
69 * include/debug/hash_set: Likewise.
70 * include/debug/list: Likewise.
71 * include/debug/map: Likewise.
72 * include/debug/set: Likewise.
73 * include/debug/string: Likewise.
74 * include/debug/vector: Likewise.
75 * include/ext/algorithm: Likewise.
76 * include/ext/array_allocator.h: Likewise.
77 * include/ext/bitmap_allocator.h: Likewise.
78 * include/ext/debug_allocator.h: Likewise.
79 * include/ext/functional: Likewise.
80 * include/ext/hash_map: Likewise.
81 * include/ext/hash_set: Likewise.
82 * include/ext/iterator: Likewise.
83 * include/ext/malloc_allocator.h: Likewise.
84 * include/ext/memory: Likewise.
85 * include/ext/mt_allocator.h: Likewise.
86 * include/ext/new_allocator.h: Likewise.
87 * include/ext/numeric: Likewise.
88 * include/ext/pod_char_traits.h: Likewise.
89 * include/ext/pool_allocator.h: Likewise.
90 * include/ext/rb_tree: Likewise.
91 * include/ext/rope: Likewise.
92 * include/ext/slist: Likewise.
93 * include/ext/stdio_filebuf.h: Likewise.
94 * include/ext/stdio_sync_filebuf.h: Likewise.
95 * include/std/std_algorithm.h: Likewise.
96 * include/std/std_bitset.h: Likewise.
97 * include/std/std_complex.h: Likewise.
98 * include/std/std_deque.h: Likewise.
99 * include/std/std_fstream.h: Likewise.
100 * include/std/std_functional.h: Likewise.
101 * include/std/std_iomanip.h: Likewise.
102 * include/std/std_ios.h: Likewise.
103 * include/std/std_iosfwd.h: Likewise.
104 * include/std/std_iostream.h: Likewise.
105 * include/std/std_istream.h: Likewise.
106 * include/std/std_iterator.h: Likewise.
107 * include/std/std_limits.h: Likewise.
108 * include/std/std_list.h: Likewise.
109 * include/std/std_locale.h: Likewise.
110 * include/std/std_map.h: Likewise.
111 * include/std/std_memory.h: Likewise.
112 * include/std/std_numeric.h: Likewise.
113 * include/std/std_ostream.h: Likewise.
114 * include/std/std_queue.h: Likewise.
115 * include/std/std_set.h: Likewise.
116 * include/std/std_sstream.h: Likewise.
117 * include/std/std_stack.h: Likewise.
118 * include/std/std_stdexcept.h: Likewise.
119 * include/std/std_streambuf.h: Likewise.
120 * include/std/std_string.h: Likewise.
121 * include/std/std_utility.h: Likewise.
122 * include/std/std_valarray.h: Likewise.
123 * include/std/std_vector.h: Likewise.
124 * include/tr1/array: Likewise.
125 * include/tr1/functional: Likewise.
126 * include/tr1/memory: Likewise.
127 * include/tr1/tuple: Likewise.
128 * include/tr1/type_traits: Likewise.
129 * include/tr1/unordered_map: Likewise.
130 * include/tr1/unordered_set: Likewise.
131 * include/tr1/utility: Likewise.
132 * testsuite/20_util/memory/auto_ptr/assign_neg.cc: Adjust
133 dg-error line numbers.
134 ================================================================================
135 --- gcc/config/elfos.h
136 +++ gcc/config/elfos.h
137 @@ -487,3 +487,17 @@
138 fprintf ((FILE), "\"\n"); \
139 } \
140 while (0)
141 +
142 +/* A C statement (sans semicolon) to output to the stdio stream STREAM
143 + any text necessary for declaring the name of an external symbol
144 + named NAME whch is referenced in this compilation but not defined.
145 + It is needed to properly support non-default visibility. */
146 +
147 +#ifndef ASM_OUTPUT_EXTERNAL
148 +#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
149 + default_elf_asm_output_external (FILE, DECL, NAME)
150 +#endif
151 +
152 +#ifndef TARGET_ASM_FILE_END
153 +#define TARGET_ASM_FILE_END default_elf_asm_file_end
154 +#endif
155 --- gcc/config/i386/i386-protos.h
156 +++ gcc/config/i386/i386-protos.h
157 @@ -28,6 +28,7 @@
158 extern void ix86_setup_frame_addresses (void);
159
160 extern void ix86_file_end (void);
161 +extern void ix86_elf_file_end (void);
162 extern HOST_WIDE_INT ix86_initial_elimination_offset (int, int);
163 extern void ix86_expand_prologue (void);
164 extern void ix86_expand_epilogue (int);
165 --- gcc/config/i386/i386.c
166 +++ gcc/config/i386/i386.c
167 @@ -3942,6 +3942,13 @@
168 file_end_indicate_exec_stack ();
169 }
170
171 +void
172 +ix86_elf_file_end (void)
173 +{
174 + ix86_file_end ();
175 + default_elf_asm_file_end ();
176 +}
177 +
178 /* Emit code for the SET_GOT patterns. */
179
180 const char *
181 --- gcc/config/i386/linux.h
182 +++ gcc/config/i386/linux.h
183 @@ -185,3 +185,6 @@
184
185 /* This macro may be overridden in i386/k*bsd-gnu.h. */
186 #define REG_NAME(reg) reg
187 +
188 +#undef TARGET_ASM_FILE_END
189 +#define TARGET_ASM_FILE_END ix86_elf_file_end
190 --- gcc/config/i386/linux64.h
191 +++ gcc/config/i386/linux64.h
192 @@ -73,3 +73,6 @@
193
194 /* This macro may be overridden in i386/k*bsd-gnu.h. */
195 #define REG_NAME(reg) reg
196 +
197 +#undef TARGET_ASM_FILE_END
198 +#define TARGET_ASM_FILE_END ix86_elf_file_end
199 --- gcc/config/ia64/hpux.h
200 +++ gcc/config/ia64/hpux.h
201 @@ -152,10 +152,6 @@
202 definitions, so do not use them in gthr-posix.h. */
203 #define GTHREAD_USE_WEAK 0
204
205 -/* Put out the needed function declarations at the end. */
206 -
207 -#define TARGET_ASM_FILE_END ia64_hpux_file_end
208 -
209 #undef CTORS_SECTION_ASM_OP
210 #define CTORS_SECTION_ASM_OP "\t.section\t.init_array,\t\"aw\",\"init_array\""
211
212 --- gcc/config/ia64/ia64.c
213 +++ gcc/config/ia64/ia64.c
214 @@ -247,6 +247,7 @@
215 static void ia64_output_mi_thunk (FILE *, tree, HOST_WIDE_INT,
216 HOST_WIDE_INT, tree);
217 static void ia64_file_start (void);
218 +static void ia64_file_end (void);
219
220 static void ia64_select_rtx_section (enum machine_mode, rtx,
221 unsigned HOST_WIDE_INT);
222 @@ -258,10 +259,6 @@
223 unsigned HOST_WIDE_INT)
224 ATTRIBUTE_UNUSED;
225 static unsigned int ia64_section_type_flags (tree, const char *, int);
226 -static void ia64_hpux_add_extern_decl (tree decl)
227 - ATTRIBUTE_UNUSED;
228 -static void ia64_hpux_file_end (void)
229 - ATTRIBUTE_UNUSED;
230 static void ia64_init_libfuncs (void)
231 ATTRIBUTE_UNUSED;
232 static void ia64_hpux_init_libfuncs (void)
233 @@ -373,6 +370,9 @@
234 #undef TARGET_ASM_FILE_START
235 #define TARGET_ASM_FILE_START ia64_file_start
236
237 +#undef TARGET_ASM_FILE_END
238 +#define TARGET_ASM_FILE_END ia64_file_end
239 +
240 #undef TARGET_RTX_COSTS
241 #define TARGET_RTX_COSTS ia64_rtx_costs
242 #undef TARGET_ADDRESS_COST
243 @@ -4610,43 +4610,24 @@
244 the Intel assembler does not support undefined externals. */
245
246 void
247 -ia64_asm_output_external (FILE *file, tree decl, const char *name)
248 +ia64_asm_output_external (FILE *file ATTRIBUTE_UNUSED, tree decl,
249 + const char *name)
250 {
251 - int save_referenced;
252 -
253 - /* GNU as does not need anything here, but the HP linker does need
254 - something for external functions. */
255 -
256 - if (TARGET_GNU_AS
257 - && (!TARGET_HPUX_LD
258 - || TREE_CODE (decl) != FUNCTION_DECL
259 - || strstr (name, "__builtin_") == name))
260 - return;
261 -
262 /* ??? The Intel assembler creates a reference that needs to be satisfied by
263 the linker when we do this, so we need to be careful not to do this for
264 builtin functions which have no library equivalent. Unfortunately, we
265 can't tell here whether or not a function will actually be called by
266 expand_expr, so we pull in library functions even if we may not need
267 them later. */
268 - if (! strcmp (name, "__builtin_next_arg")
269 - || ! strcmp (name, "alloca")
270 - || ! strcmp (name, "__builtin_constant_p")
271 - || ! strcmp (name, "__builtin_args_info"))
272 + if (TREE_CODE (decl) == FUNCTION_DECL
273 + && ((TARGET_GNU_AS && strstr (name, "__builtin_") == name)
274 + || (!strcmp (name, "__builtin_next_arg")
275 + || ! strcmp (name, "alloca")
276 + || ! strcmp (name, "__builtin_constant_p")
277 + || ! strcmp (name, "__builtin_args_info"))))
278 return;
279
280 - if (TARGET_HPUX_LD)
281 - ia64_hpux_add_extern_decl (decl);
282 - else
283 - {
284 - /* assemble_name will set TREE_SYMBOL_REFERENCED, so we must save and
285 - restore it. */
286 - save_referenced = TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl));
287 - if (TREE_CODE (decl) == FUNCTION_DECL)
288 - ASM_OUTPUT_TYPE_DIRECTIVE (file, name, "function");
289 - (*targetm.asm_out.globalize_label) (file, name);
290 - TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)) = save_referenced;
291 - }
292 + default_elf_asm_output_external_1 (decl);
293 }
294
295 /* Parse the -mfixed-range= option string. */
296 @@ -8599,36 +8580,16 @@
297 return DEFAULT_FUNCTION_ARG_PADDING (mode, type);
298 }
299
300 -/* Linked list of all external functions that are to be emitted by GCC.
301 - We output the name if and only if TREE_SYMBOL_REFERENCED is set in
302 - order to avoid putting out names that are never really used. */
303 -
304 -struct extern_func_list GTY(())
305 -{
306 - struct extern_func_list *next;
307 - tree decl;
308 -};
309 -
310 -static GTY(()) struct extern_func_list *extern_func_head;
311 -
312 -static void
313 -ia64_hpux_add_extern_decl (tree decl)
314 -{
315 - struct extern_func_list *p = ggc_alloc (sizeof (struct extern_func_list));
316 -
317 - p->decl = decl;
318 - p->next = extern_func_head;
319 - extern_func_head = p;
320 -}
321 -
322 /* Print out the list of used global functions. */
323
324 static void
325 -ia64_hpux_file_end (void)
326 +ia64_file_end (void)
327 {
328 - struct extern_func_list *p;
329 + struct extern_symbol_list *p;
330 + int hpld = TARGET_HPUX_LD;
331 + int gas = TARGET_GNU_AS;
332
333 - for (p = extern_func_head; p; p = p->next)
334 + for (p = extern_symbol_head; p; p = p->next)
335 {
336 tree decl = p->decl;
337 tree id = DECL_ASSEMBLER_NAME (decl);
338 @@ -8637,18 +8598,28 @@
339 abort ();
340
341 if (!TREE_ASM_WRITTEN (decl) && TREE_SYMBOL_REFERENCED (id))
342 - {
343 + {
344 + int vis = ((*targetm.binds_local_p) (decl)
345 + && maybe_assemble_visibility (decl));
346 const char *name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
347
348 + /* GNU as does not need anything here, but the HP linker
349 + does need something for external functions. */
350 + if ((hpld || !gas)
351 + && TREE_CODE (decl) == FUNCTION_DECL)
352 + {
353 + ASM_OUTPUT_TYPE_DIRECTIVE (asm_out_file, name,
354 + "function");
355 + (*targetm.asm_out.globalize_label) (asm_out_file, name);
356 + }
357 + else if (vis && !gas)
358 + (*targetm.asm_out.globalize_label) (asm_out_file, name);
359 +
360 TREE_ASM_WRITTEN (decl) = 1;
361 - (*targetm.asm_out.globalize_label) (asm_out_file, name);
362 - fputs (TYPE_ASM_OP, asm_out_file);
363 - assemble_name (asm_out_file, name);
364 - fprintf (asm_out_file, "," TYPE_OPERAND_FMT "\n", "function");
365 }
366 }
367
368 - extern_func_head = 0;
369 + extern_symbol_head = 0;
370 }
371
372 /* Set SImode div/mod functions, init_integral_libfuncs only initializes
373 --- gcc/cp/decl2.c
374 +++ gcc/cp/decl2.c
375 @@ -1644,8 +1644,12 @@
376 && DECL_DECLARED_INLINE_P (decl)
377 && visibility_options.inlines_hidden)
378 {
379 - DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN;
380 - DECL_VISIBILITY_SPECIFIED (decl) = 1;
381 + /* Don't change it if it has been set explicitly by user. */
382 + if (!DECL_VISIBILITY_SPECIFIED (decl))
383 + {
384 + DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN;
385 + DECL_VISIBILITY_SPECIFIED (decl) = 1;
386 + }
387 }
388 else if (CLASSTYPE_VISIBILITY_SPECIFIED (class_type))
389 {
390 --- gcc/output.h
391 +++ gcc/output.h
392 @@ -517,6 +517,12 @@
393 extern void file_end_indicate_exec_stack (void);
394 extern bool default_valid_pointer_mode (enum machine_mode);
395
396 +extern void default_elf_asm_output_external (FILE *file, tree,
397 + const char *);
398 +extern void default_elf_asm_output_external_1 (tree);
399 +extern void default_elf_asm_file_end (void);
400 +extern int maybe_assemble_visibility (tree);
401 +
402 extern int default_address_cost (rtx);
403
404 /* dbxout helper functions */
405 --- gcc/tree.h
406 +++ gcc/tree.h
407 @@ -3737,6 +3737,17 @@
408 extern void finish_aliases_1 (void);
409 extern void finish_aliases_2 (void);
410
411 +/* Linked list of all external symbols that are to be emitted by
412 + GCC. */
413 +
414 +struct extern_symbol_list GTY(())
415 +{
416 + struct extern_symbol_list *next;
417 + tree decl;
418 +};
419 +
420 +extern GTY(()) struct extern_symbol_list *extern_symbol_head;
421 +
422 /* In stmt.c */
423 extern void expand_computed_goto (tree);
424 extern bool parse_output_constraint (const char **, int, int, int,
425 --- gcc/varasm.c
426 +++ gcc/varasm.c
427 @@ -140,7 +140,6 @@
428 static unsigned min_align (unsigned, unsigned);
429 static void output_constructor (tree, unsigned HOST_WIDE_INT, unsigned int);
430 static void globalize_decl (tree);
431 -static void maybe_assemble_visibility (tree);
432 static int in_named_entry_eq (const void *, const void *);
433 static hashval_t in_named_entry_hash (const void *);
434 #ifdef BSS_SECTION_ASM_OP
435 @@ -4615,13 +4614,18 @@
436
437 /* A helper function to call assemble_visibility when needed for a decl. */
438
439 -static void
440 +int
441 maybe_assemble_visibility (tree decl)
442 {
443 enum symbol_visibility vis = DECL_VISIBILITY (decl);
444
445 if (vis != VISIBILITY_DEFAULT)
446 - targetm.asm_out.visibility (decl, vis);
447 + {
448 + targetm.asm_out.visibility (decl, vis);
449 + return 1;
450 + }
451 + else
452 + return 0;
453 }
454
455 /* Returns 1 if the target configuration supports defining public symbols
456 @@ -5438,4 +5442,64 @@
457 named_section_flags (".note.GNU-stack", flags);
458 }
459
460 +struct extern_symbol_list *extern_symbol_head;
461 +
462 +void
463 +default_elf_asm_output_external_1 (tree decl)
464 +{
465 + struct extern_symbol_list *p
466 + = ggc_alloc (sizeof (struct extern_symbol_list));
467 +
468 + p->decl = decl;
469 + p->next = extern_symbol_head;
470 + extern_symbol_head = p;
471 +}
472 +
473 +/* Emit text to declare externally defined symbols. It is needed to
474 + properly support non-default visibility. */
475 +
476 +void
477 +default_elf_asm_output_external (FILE *file ATTRIBUTE_UNUSED,
478 + tree decl,
479 + const char *name)
480 +{
481 + /* Ignore builtin functions. */
482 + if (TREE_CODE (decl) == FUNCTION_DECL
483 + && strstr (name, "__builtin_") == name)
484 + return;
485 + else
486 + default_elf_asm_output_external_1 (decl);
487 +}
488 +
489 +/* Print out the list of referenced global symbols with non-default
490 + visibility. */
491 +
492 +void
493 +default_elf_asm_file_end (void)
494 +{
495 + struct extern_symbol_list *p;
496 +
497 + for (p = extern_symbol_head; p; p = p->next)
498 + {
499 + tree decl = p->decl;
500 + tree id = DECL_ASSEMBLER_NAME (decl);
501 +
502 + if (!id)
503 + abort ();
504 +
505 + /* We output the name if and only if TREE_SYMBOL_REFERENCED is
506 + set in order to avoid putting out names that are never really
507 + used. */
508 + if (targetm.binds_local_p (decl)
509 + && !TREE_ASM_WRITTEN (decl)
510 + && TREE_SYMBOL_REFERENCED (id))
511 + {
512 + maybe_assemble_visibility (decl);
513 + TREE_ASM_WRITTEN (decl) = 1;
514 + }
515 + }
516 +
517 + extern_symbol_head = 0;
518 +}
519 +
520 #include "gt-varasm.h"
521 --- libstdc++-v3/include/c_std/std_cassert.h
522 +++ libstdc++-v3/include/c_std/std_cassert.h
523 @@ -1,6 +1,6 @@
524 // -*- C++ -*- forwarding header.
525
526 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
527 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
528 // Free Software Foundation, Inc.
529 //
530 // This file is part of the GNU ISO C++ Library. This library is free
531 @@ -44,5 +44,8 @@
532 // No include guards on this header...
533
534 #pragma GCC system_header
535 +#pragma GCC visibility push(default)
536
537 #include <assert.h>
538 +
539 +#pragma GCC visibility pop
540 --- libstdc++-v3/include/c_std/std_cctype.h
541 +++ libstdc++-v3/include/c_std/std_cctype.h
542 @@ -1,6 +1,7 @@
543 // -*- C++ -*- forwarding header.
544
545 -// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
546 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2005
547 +// Free Software Foundation, Inc.
548 //
549 // This file is part of the GNU ISO C++ Library. This library is free
550 // software; you can redistribute it and/or modify it under the
551 @@ -44,6 +45,7 @@
552 #define _GLIBCXX_CCTYPE 1
553
554 #pragma GCC system_header
555 +#pragma GCC visibility push(default)
556
557 #include <bits/c++config.h>
558 #include <ctype.h>
559 @@ -80,4 +82,6 @@
560 using ::toupper;
561 }
562
563 +#pragma GCC visibility pop
564 +
565 #endif
566 --- libstdc++-v3/include/c_std/std_cerrno.h
567 +++ libstdc++-v3/include/c_std/std_cerrno.h
568 @@ -1,6 +1,7 @@
569 // The -*- C++ -*- forwarding header.
570
571 -// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
572 +// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2005
573 +// Free Software Foundation, Inc.
574 //
575 // This file is part of the GNU ISO C++ Library. This library is free
576 // software; you can redistribute it and/or modify it under the
577 @@ -44,6 +45,7 @@
578 #define _GLIBCXX_CERRNO 1
579
580 #pragma GCC system_header
581 +#pragma GCC visibility push(default)
582
583 #include <errno.h>
584
585 @@ -52,4 +54,6 @@
586 #define errno errno
587 #endif
588
589 +#pragma GCC visibility pop
590 +
591 #endif
592 --- libstdc++-v3/include/c_std/std_cfloat.h
593 +++ libstdc++-v3/include/c_std/std_cfloat.h
594 @@ -1,6 +1,7 @@
595 // -*- C++ -*- forwarding header.
596
597 -// Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
598 +// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2005
599 +// Free Software Foundation, Inc.
600 //
601 // This file is part of the GNU ISO C++ Library. This library is free
602 // software; you can redistribute it and/or modify it under the
603 @@ -44,7 +45,10 @@
604 #define _GLIBCXX_CFLOAT 1
605
606 #pragma GCC system_header
607 +#pragma GCC visibility push(default)
608
609 #include <float.h>
610
611 +#pragma GCC visibility pop
612 +
613 #endif
614 --- libstdc++-v3/include/c_std/std_climits.h
615 +++ libstdc++-v3/include/c_std/std_climits.h
616 @@ -45,7 +45,9 @@
617 #define _GLIBCXX_CLIMITS 1
618
619 #pragma GCC system_header
620 +#pragma GCC visibility push(default)
621
622 #include <limits.h>
623
624 +#pragma GCC visibility pop
625 #endif
626 --- libstdc++-v3/include/c_std/std_clocale.h
627 +++ libstdc++-v3/include/c_std/std_clocale.h
628 @@ -1,6 +1,6 @@
629 // -*- C++ -*- forwarding header.
630
631 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
632 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
633 // Free Software Foundation, Inc.
634 //
635 // This file is part of the GNU ISO C++ Library. This library is free
636 @@ -45,6 +45,7 @@
637 #define _GLIBCXX_CLOCALE 1
638
639 #pragma GCC system_header
640 +#pragma GCC visibility push(default)
641
642 #include <locale.h>
643
644 @@ -59,4 +60,6 @@
645 using ::localeconv;
646 }
647
648 +#pragma GCC visibility pop
649 +
650 #endif
651 --- libstdc++-v3/include/c_std/std_cmath.h
652 +++ libstdc++-v3/include/c_std/std_cmath.h
653 @@ -45,6 +45,7 @@
654 #define _GLIBCXX_CMATH 1
655
656 #pragma GCC system_header
657 +#pragma GCC visibility push(default)
658
659 #include <bits/c++config.h>
660 #include <bits/cpp_type_traits.h>
661 @@ -574,4 +575,6 @@
662 # include <bits/cmath.tcc>
663 #endif
664
665 +#pragma GCC visibility pop
666 +
667 #endif
668 --- libstdc++-v3/include/c_std/std_csetjmp.h
669 +++ libstdc++-v3/include/c_std/std_csetjmp.h
670 @@ -1,6 +1,6 @@
671 // -*- C++ -*- forwarding header.
672
673 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
674 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
675 // Free Software Foundation, Inc.
676 //
677 // This file is part of the GNU ISO C++ Library. This library is free
678 @@ -45,6 +45,7 @@
679 #define _GLIBCXX_CSETJMP 1
680
681 #pragma GCC system_header
682 +#pragma GCC visibility push(default)
683
684 #include <setjmp.h>
685
686 @@ -62,4 +63,6 @@
687 using ::longjmp;
688 }
689
690 +#pragma GCC visibility pop
691 +
692 #endif
693 --- libstdc++-v3/include/c_std/std_csignal.h
694 +++ libstdc++-v3/include/c_std/std_csignal.h
695 @@ -1,6 +1,6 @@
696 // -*- C++ -*- forwarding header.
697
698 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
699 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
700 // Free Software Foundation, Inc.
701 //
702 // This file is part of the GNU ISO C++ Library. This library is free
703 @@ -45,6 +45,7 @@
704 #define _GLIBCXX_CSIGNAL 1
705
706 #pragma GCC system_header
707 +#pragma GCC visibility push(default)
708
709 #include <signal.h>
710
711 @@ -58,4 +59,6 @@
712 using ::raise;
713 }
714
715 +#pragma GCC visibility pop
716 +
717 #endif
718 --- libstdc++-v3/include/c_std/std_cstdarg.h
719 +++ libstdc++-v3/include/c_std/std_cstdarg.h
720 @@ -1,6 +1,7 @@
721 // -*- C++ -*- forwarding header.
722
723 -// Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
724 +// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2005
725 +// Free Software Foundation, Inc.
726 //
727 // This file is part of the GNU ISO C++ Library. This library is free
728 // software; you can redistribute it and/or modify it under the
729 @@ -44,6 +45,7 @@
730 #define _GLIBCXX_CSTDARG 1
731
732 #pragma GCC system_header
733 +#pragma GCC visibility push(default)
734
735 #include <stdarg.h>
736
737 @@ -57,4 +59,6 @@
738 using ::va_list;
739 }
740
741 +#pragma GCC visibility pop
742 +
743 #endif
744 --- libstdc++-v3/include/c_std/std_cstddef.h
745 +++ libstdc++-v3/include/c_std/std_cstddef.h
746 @@ -1,6 +1,7 @@
747 // -*- C++ -*- forwarding header.
748
749 -// Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
750 +// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2005
751 +// Free Software Foundation, Inc.
752 //
753 // This file is part of the GNU ISO C++ Library. This library is free
754 // software; you can redistribute it and/or modify it under the
755 @@ -44,6 +45,7 @@
756 #define _GLIBCXX_CSTDDEF 1
757
758 #pragma GCC system_header
759 +#pragma GCC visibility push(default)
760
761 #include <stddef.h>
762
763 @@ -53,4 +55,6 @@
764 using ::size_t;
765 }
766
767 +#pragma GCC visibility pop
768 +
769 #endif
770 --- libstdc++-v3/include/c_std/std_cstdio.h
771 +++ libstdc++-v3/include/c_std/std_cstdio.h
772 @@ -1,6 +1,6 @@
773 // -*- C++ -*- forwarding header.
774
775 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
776 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
777 // Free Software Foundation, Inc.
778 //
779 // This file is part of the GNU ISO C++ Library. This library is free
780 @@ -45,6 +45,7 @@
781 #define _GLIBCXX_CSTDIO 1
782
783 #pragma GCC system_header
784 +#pragma GCC visibility push(default)
785
786 #include <bits/c++config.h>
787 #include <cstddef>
788 @@ -182,4 +183,6 @@
789 }
790 #endif
791
792 +#pragma GCC visibility pop
793 +
794 #endif
795 --- libstdc++-v3/include/c_std/std_cstdlib.h
796 +++ libstdc++-v3/include/c_std/std_cstdlib.h
797 @@ -1,6 +1,6 @@
798 // -*- C++ -*- forwarding header.
799
800 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
801 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
802 // Free Software Foundation, Inc.
803 //
804 // This file is part of the GNU ISO C++ Library. This library is free
805 @@ -45,6 +45,7 @@
806 #define _GLIBCXX_CSTDLIB 1
807
808 #pragma GCC system_header
809 +#pragma GCC visibility push(default)
810
811 #include <bits/c++config.h>
812 #include <cstddef>
813 @@ -217,4 +218,6 @@
814 }
815 #endif
816
817 +#pragma GCC visibility pop
818 +
819 #endif
820 --- libstdc++-v3/include/c_std/std_cstring.h
821 +++ libstdc++-v3/include/c_std/std_cstring.h
822 @@ -1,6 +1,6 @@
823 // -*- C++ -*- forwarding header.
824
825 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
826 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
827 // Free Software Foundation, Inc.
828 //
829 // This file is part of the GNU ISO C++ Library. This library is free
830 @@ -45,6 +45,7 @@
831 #define _GLIBCXX_CSTRING 1
832
833 #pragma GCC system_header
834 +#pragma GCC visibility push(default)
835
836 #include <cstddef>
837
838 @@ -125,4 +126,6 @@
839 { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
840 }
841
842 +#pragma GCC visibility pop
843 +
844 #endif
845 --- libstdc++-v3/include/c_std/std_ctime.h
846 +++ libstdc++-v3/include/c_std/std_ctime.h
847 @@ -1,6 +1,6 @@
848 // -*- C++ -*- forwarding header.
849
850 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
851 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
852 // Free Software Foundation, Inc.
853 //
854 // This file is part of the GNU ISO C++ Library. This library is free
855 @@ -45,6 +45,7 @@
856 #define _GLIBCXX_CTIME 1
857
858 #pragma GCC system_header
859 +#pragma GCC visibility push(default)
860
861 #include <cstddef>
862
863 @@ -78,4 +79,6 @@
864 using ::strftime;
865 }
866
867 +#pragma GCC visibility pop
868 +
869 #endif
870 --- libstdc++-v3/include/c_std/std_cwchar.h
871 +++ libstdc++-v3/include/c_std/std_cwchar.h
872 @@ -1,6 +1,6 @@
873 // -*- C++ -*- forwarding header.
874
875 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
876 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
877 // Free Software Foundation, Inc.
878 //
879 // This file is part of the GNU ISO C++ Library. This library is free
880 @@ -45,6 +45,7 @@
881 #define _GLIBCXX_CWCHAR 1
882
883 #pragma GCC system_header
884 +#pragma GCC visibility push(default)
885
886 #include <bits/c++config.h>
887 #include <cstddef>
888 @@ -270,4 +271,6 @@
889
890 #endif //_GLIBCXX_USE_WCHAR_T
891
892 +#pragma GCC visibility pop
893 +
894 #endif
895 --- libstdc++-v3/include/c_std/std_cwctype.h
896 +++ libstdc++-v3/include/c_std/std_cwctype.h
897 @@ -45,6 +45,7 @@
898 #define _GLIBCXX_CWCTYPE 1
899
900 #pragma GCC system_header
901 +#pragma GCC visibility push(default)
902
903 #include <bits/c++config.h>
904
905 @@ -107,4 +108,6 @@
906 }
907 #endif //_GLIBCXX_USE_WCHAR_T
908
909 +#pragma GCC visibility pop
910 +
911 #endif
912 --- libstdc++-v3/include/debug/bitset
913 +++ libstdc++-v3/include/debug/bitset
914 @@ -31,6 +31,8 @@
915 #ifndef _GLIBCXX_DEBUG_BITSET
916 #define _GLIBCXX_DEBUG_BITSET
917
918 +#pragma GCC visibility push(default)
919 +
920 #include <bitset>
921 #include <debug/safe_sequence.h>
922 #include <debug/safe_iterator.h>
923 @@ -318,4 +320,6 @@
924 { return __os << __x._M_base(); }
925 } // namespace __gnu_debug_def
926
927 +#pragma GCC visibility pop
928 +
929 #endif
930 --- libstdc++-v3/include/debug/deque
931 +++ libstdc++-v3/include/debug/deque
932 @@ -1,6 +1,6 @@
933 // Debugging deque implementation -*- C++ -*-
934
935 -// Copyright (C) 2003, 2004
936 +// Copyright (C) 2003, 2004, 2005
937 // Free Software Foundation, Inc.
938 //
939 // This file is part of the GNU ISO C++ Library. This library is free
940 @@ -31,6 +31,8 @@
941 #ifndef _GLIBCXX_DEBUG_DEQUE
942 #define _GLIBCXX_DEBUG_DEQUE 1
943
944 +#pragma GCC visibility push(default)
945 +
946 #include <deque>
947 #include <debug/safe_sequence.h>
948 #include <debug/safe_iterator.h>
949 @@ -383,4 +385,6 @@
950 { __lhs.swap(__rhs); }
951 } // namespace __gnu_debug_def
952
953 +#pragma GCC visibility pop
954 +
955 #endif
956 --- libstdc++-v3/include/debug/hash_map
957 +++ libstdc++-v3/include/debug/hash_map
958 @@ -1,6 +1,6 @@
959 // Debugging hash_map/hash_multimap implementation -*- C++ -*-
960
961 -// Copyright (C) 2003
962 +// Copyright (C) 2003, 2005
963 // Free Software Foundation, Inc.
964 //
965 // This file is part of the GNU ISO C++ Library. This library is free
966 @@ -31,8 +31,12 @@
967 #ifndef _GLIBCXX_DEBUG_HASH_MAP
968 #define _GLIBCXX_DEBUG_HASH_MAP 1
969
970 +#pragma GCC visibility push(default)
971 +
972 #include <hash_map>
973 #include <debug/dbg_hash_map.h>
974 #include <debug/dbg_hash_multimap.h>
975
976 +#pragma GCC visibility pop
977 +
978 #endif
979 --- libstdc++-v3/include/debug/hash_set
980 +++ libstdc++-v3/include/debug/hash_set
981 @@ -1,6 +1,6 @@
982 // Debugging hash_set/hash_multiset implementation -*- C++ -*-
983
984 -// Copyright (C) 2003
985 +// Copyright (C) 2003, 2005
986 // Free Software Foundation, Inc.
987 //
988 // This file is part of the GNU ISO C++ Library. This library is free
989 @@ -31,8 +31,12 @@
990 #ifndef _GLIBCXX_DEBUG_HASH_SET
991 #define _GLIBCXX_DEBUG_HASH_SET 1
992
993 +#pragma GCC visibility push(default)
994 +
995 #include <hash_set>
996 #include <debug/dbg_hash_set.h>
997 #include <debug/dbg_hash_multiset.h>
998
999 +#pragma GCC visibility pop
1000 +
1001 #endif
1002 --- libstdc++-v3/include/debug/list
1003 +++ libstdc++-v3/include/debug/list
1004 @@ -1,6 +1,6 @@
1005 // Debugging list implementation -*- C++ -*-
1006
1007 -// Copyright (C) 2003, 2004
1008 +// Copyright (C) 2003, 2004, 2005
1009 // Free Software Foundation, Inc.
1010 //
1011 // This file is part of the GNU ISO C++ Library. This library is free
1012 @@ -31,6 +31,8 @@
1013 #ifndef _GLIBCXX_DEBUG_LIST
1014 #define _GLIBCXX_DEBUG_LIST 1
1015
1016 +#pragma GCC visibility push(default)
1017 +
1018 #include <list>
1019 #include <bits/stl_algo.h>
1020 #include <debug/safe_sequence.h>
1021 @@ -502,4 +504,6 @@
1022 { __lhs.swap(__rhs); }
1023 } // namespace __gnu_debug_def
1024
1025 +#pragma GCC visibility pop
1026 +
1027 #endif
1028 --- libstdc++-v3/include/debug/map
1029 +++ libstdc++-v3/include/debug/map
1030 @@ -1,6 +1,6 @@
1031 // Debugging map/multimap implementation -*- C++ -*-
1032
1033 -// Copyright (C) 2003
1034 +// Copyright (C) 2003, 2005
1035 // Free Software Foundation, Inc.
1036 //
1037 // This file is part of the GNU ISO C++ Library. This library is free
1038 @@ -31,8 +31,12 @@
1039 #ifndef _GLIBCXX_DEBUG_MAP
1040 #define _GLIBCXX_DEBUG_MAP 1
1041
1042 +#pragma GCC visibility push(default)
1043 +
1044 #include <map>
1045 #include <debug/map.h>
1046 #include <debug/multimap.h>
1047
1048 +#pragma GCC visibility pop
1049 +
1050 #endif
1051 --- libstdc++-v3/include/debug/set
1052 +++ libstdc++-v3/include/debug/set
1053 @@ -1,6 +1,6 @@
1054 // Debugging set/multiset implementation -*- C++ -*-
1055
1056 -// Copyright (C) 2003
1057 +// Copyright (C) 2003, 2005
1058 // Free Software Foundation, Inc.
1059 //
1060 // This file is part of the GNU ISO C++ Library. This library is free
1061 @@ -31,8 +31,12 @@
1062 #ifndef _GLIBCXX_DEBUG_SET
1063 #define _GLIBCXX_DEBUG_SET 1
1064
1065 +#pragma GCC visibility push(default)
1066 +
1067 #include <set>
1068 #include <debug/set.h>
1069 #include <debug/multiset.h>
1070
1071 +#pragma GCC visibility pop
1072 +
1073 #endif
1074 --- libstdc++-v3/include/debug/string
1075 +++ libstdc++-v3/include/debug/string
1076 @@ -31,6 +31,8 @@
1077 #ifndef _GLIBCXX_DEBUG_STRING
1078 #define _GLIBCXX_DEBUG_STRING 1
1079
1080 +#pragma GCC visibility push(default)
1081 +
1082 #include <string>
1083 #include <debug/safe_sequence.h>
1084 #include <debug/safe_iterator.h>
1085 @@ -1015,4 +1017,6 @@
1086
1087 } // namespace __gnu_debug
1088
1089 +#pragma GCC visibility pop
1090 +
1091 #endif
1092 --- libstdc++-v3/include/debug/vector
1093 +++ libstdc++-v3/include/debug/vector
1094 @@ -1,6 +1,6 @@
1095 // Debugging vector implementation -*- C++ -*-
1096
1097 -// Copyright (C) 2003, 2004
1098 +// Copyright (C) 2003, 2004, 2005
1099 // Free Software Foundation, Inc.
1100 //
1101 // This file is part of the GNU ISO C++ Library. This library is free
1102 @@ -31,6 +31,8 @@
1103 #ifndef _GLIBCXX_DEBUG_VECTOR
1104 #define _GLIBCXX_DEBUG_VECTOR 1
1105
1106 +#pragma GCC visibility push(default)
1107 +
1108 #include <vector>
1109 #include <debug/safe_sequence.h>
1110 #include <debug/safe_iterator.h>
1111 @@ -409,4 +411,6 @@
1112 { __lhs.swap(__rhs); }
1113 } // namespace __gnu_debug_def
1114
1115 +#pragma GCC visibility pop
1116 +
1117 #endif
1118 --- libstdc++-v3/include/ext/algorithm
1119 +++ libstdc++-v3/include/ext/algorithm
1120 @@ -1,6 +1,6 @@
1121 // Algorithm extensions -*- C++ -*-
1122
1123 -// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
1124 +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
1125 //
1126 // This file is part of the GNU ISO C++ Library. This library is free
1127 // software; you can redistribute it and/or modify it under the
1128 @@ -62,6 +62,7 @@
1129 #define _EXT_ALGORITHM 1
1130
1131 #pragma GCC system_header
1132 +#pragma GCC visibility push(default)
1133
1134 #include <algorithm>
1135
1136 @@ -523,4 +524,6 @@
1137 }
1138 } // namespace __gnu_cxx
1139
1140 +#pragma GCC visibility pop
1141 +
1142 #endif /* _EXT_ALGORITHM */
1143 --- libstdc++-v3/include/ext/array_allocator.h
1144 +++ libstdc++-v3/include/ext/array_allocator.h
1145 @@ -34,6 +34,8 @@
1146 #ifndef _ARRAY_ALLOCATOR_H
1147 #define _ARRAY_ALLOCATOR_H 1
1148
1149 +#pragma GCC visibility push(default)
1150 +
1151 #include <cstddef>
1152 #include <new>
1153 #include <bits/functexcept.h>
1154 @@ -142,4 +144,6 @@
1155 { return false; }
1156 } // namespace __gnu_cxx
1157
1158 +#pragma GCC visibility pop
1159 +
1160 #endif
1161 --- libstdc++-v3/include/ext/bitmap_allocator.h
1162 +++ libstdc++-v3/include/ext/bitmap_allocator.h
1163 @@ -34,6 +34,8 @@
1164 #ifndef _BITMAP_ALLOCATOR_H
1165 #define _BITMAP_ALLOCATOR_H 1
1166
1167 +#pragma GCC visibility push(default)
1168 +
1169 // For std::size_t, and ptrdiff_t.
1170 #include <cstddef>
1171
1172 @@ -1289,6 +1291,8 @@
1173
1174 }
1175
1176 +#pragma GCC visibility pop
1177 +
1178 #endif
1179
1180 // LocalWords: namespace GTHREADS bool const gthread endif Mutex mutex
1181 --- libstdc++-v3/include/ext/debug_allocator.h
1182 +++ libstdc++-v3/include/ext/debug_allocator.h
1183 @@ -48,6 +48,8 @@
1184 #ifndef _DEBUG_ALLOCATOR_H
1185 #define _DEBUG_ALLOCATOR_H 1
1186
1187 +#pragma GCC visibility push(default)
1188 +
1189 #include <stdexcept>
1190
1191 namespace __gnu_cxx
1192 @@ -122,4 +124,6 @@
1193 };
1194 } // namespace __gnu_cxx
1195
1196 +#pragma GCC visibility pop
1197 +
1198 #endif
1199 --- libstdc++-v3/include/ext/functional
1200 +++ libstdc++-v3/include/ext/functional
1201 @@ -1,6 +1,6 @@
1202 // Functional extensions -*- C++ -*-
1203
1204 -// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
1205 +// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
1206 //
1207 // This file is part of the GNU ISO C++ Library. This library is free
1208 // software; you can redistribute it and/or modify it under the
1209 @@ -62,6 +62,7 @@
1210 #define _EXT_FUNCTIONAL 1
1211
1212 #pragma GCC system_header
1213 +#pragma GCC visibility push(default)
1214
1215 #include <functional>
1216
1217 @@ -421,5 +422,8 @@
1218 mem_fun1_ref(_Ret (_Tp::*__f)(_Arg) const)
1219 { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
1220 } // namespace __gnu_cxx
1221 +
1222 +#pragma GCC visibility pop
1223 +
1224 #endif
1225
1226 --- libstdc++-v3/include/ext/hash_map
1227 +++ libstdc++-v3/include/ext/hash_map
1228 @@ -1,6 +1,6 @@
1229 // Hashing map implementation -*- C++ -*-
1230
1231 -// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
1232 +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
1233 //
1234 // This file is part of the GNU ISO C++ Library. This library is free
1235 // software; you can redistribute it and/or modify it under the
1236 @@ -61,6 +61,8 @@
1237 #ifndef _HASH_MAP
1238 #define _HASH_MAP 1
1239
1240 +#pragma GCC visibility push(default)
1241 +
1242 #include <ext/hashtable.h>
1243 #include <bits/concept_check.h>
1244
1245 @@ -617,4 +619,7 @@
1246 { return *this; }
1247 };
1248 } // namespace std
1249 +
1250 +#pragma GCC visibility push(default)
1251 +
1252 #endif
1253 --- libstdc++-v3/include/ext/hash_set
1254 +++ libstdc++-v3/include/ext/hash_set
1255 @@ -1,6 +1,6 @@
1256 // Hashing set implementation -*- C++ -*-
1257
1258 -// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
1259 +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
1260 //
1261 // This file is part of the GNU ISO C++ Library. This library is free
1262 // software; you can redistribute it and/or modify it under the
1263 @@ -61,6 +61,8 @@
1264 #ifndef _HASH_SET
1265 #define _HASH_SET 1
1266
1267 +#pragma GCC visibility push(default)
1268 +
1269 #include <ext/hashtable.h>
1270 #include <bits/concept_check.h>
1271
1272 @@ -583,4 +585,7 @@
1273 operator++(int) { return *this; }
1274 };
1275 } // namespace std
1276 +
1277 +#pragma GCC visibility pop
1278 +
1279 #endif
1280 --- libstdc++-v3/include/ext/iterator
1281 +++ libstdc++-v3/include/ext/iterator
1282 @@ -1,6 +1,6 @@
1283 // HP/SGI iterator extensions -*- C++ -*-
1284
1285 -// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
1286 +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
1287 //
1288 // This file is part of the GNU ISO C++ Library. This library is free
1289 // software; you can redistribute it and/or modify it under the
1290 @@ -62,6 +62,7 @@
1291 #define _EXT_ITERATOR 1
1292
1293 #pragma GCC system_header
1294 +#pragma GCC visibility push(default)
1295
1296 #include <bits/concept_check.h>
1297 #include <iterator>
1298 @@ -113,5 +114,7 @@
1299 }
1300 } // namespace __gnu_cxx
1301
1302 +#pragma GCC visibility pop
1303 +
1304 #endif
1305
1306 --- libstdc++-v3/include/ext/malloc_allocator.h
1307 +++ libstdc++-v3/include/ext/malloc_allocator.h
1308 @@ -1,6 +1,7 @@
1309 // Allocator that wraps "C" malloc -*- C++ -*-
1310
1311 -// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
1312 +// Copyright (C) 2001, 2002, 2003, 2004, 2005
1313 +// Free Software Foundation, Inc.
1314 //
1315 // This file is part of the GNU ISO C++ Library. This library is free
1316 // software; you can redistribute it and/or modify it under the
1317 @@ -34,6 +35,8 @@
1318 #ifndef _MALLOC_ALLOCATOR_H
1319 #define _MALLOC_ALLOCATOR_H 1
1320
1321 +#pragma GCC visibility push(default)
1322 +
1323 #include <cstdlib>
1324 #include <new>
1325 #include <bits/functexcept.h>
1326 @@ -122,4 +125,6 @@
1327 { return false; }
1328 } // namespace __gnu_cxx
1329
1330 +#pragma GCC visibility pop
1331 +
1332 #endif
1333 --- libstdc++-v3/include/ext/memory
1334 +++ libstdc++-v3/include/ext/memory
1335 @@ -1,6 +1,6 @@
1336 // Memory extensions -*- C++ -*-
1337
1338 -// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
1339 +// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
1340 //
1341 // This file is part of the GNU ISO C++ Library. This library is free
1342 // software; you can redistribute it and/or modify it under the
1343 @@ -62,6 +62,7 @@
1344 #define _EXT_MEMORY 1
1345
1346 #pragma GCC system_header
1347 +#pragma GCC visibility push(default)
1348
1349 #include <memory>
1350 #include <bits/stl_tempbuf.h>
1351 @@ -194,5 +195,7 @@
1352 };
1353 } // namespace __gnu_cxx
1354
1355 +#pragma GCC visibility pop
1356 +
1357 #endif
1358
1359 --- libstdc++-v3/include/ext/mt_allocator.h
1360 +++ libstdc++-v3/include/ext/mt_allocator.h
1361 @@ -34,6 +34,8 @@
1362 #ifndef _MT_ALLOCATOR_H
1363 #define _MT_ALLOCATOR_H 1
1364
1365 +#pragma GCC visibility push(default)
1366 +
1367 #include <new>
1368 #include <cstdlib>
1369 #include <bits/functexcept.h>
1370 @@ -760,4 +762,6 @@
1371 #undef __thread_default
1372 } // namespace __gnu_cxx
1373
1374 +#pragma GCC visibility pop
1375 +
1376 #endif
1377 --- libstdc++-v3/include/ext/new_allocator.h
1378 +++ libstdc++-v3/include/ext/new_allocator.h
1379 @@ -1,6 +1,6 @@
1380 // Allocator that wraps operator new -*- C++ -*-
1381
1382 -// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
1383 +// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
1384 //
1385 // This file is part of the GNU ISO C++ Library. This library is free
1386 // software; you can redistribute it and/or modify it under the
1387 @@ -34,6 +34,8 @@
1388 #ifndef _NEW_ALLOCATOR_H
1389 #define _NEW_ALLOCATOR_H 1
1390
1391 +#pragma GCC visibility push(default)
1392 +
1393 #include <new>
1394 #include <bits/functexcept.h>
1395
1396 @@ -118,4 +120,6 @@
1397 { return false; }
1398 } // namespace __gnu_cxx
1399
1400 +#pragma GCC visibility pop
1401 +
1402 #endif
1403 --- libstdc++-v3/include/ext/numeric
1404 +++ libstdc++-v3/include/ext/numeric
1405 @@ -1,6 +1,6 @@
1406 // Numeric extensions -*- C++ -*-
1407
1408 -// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
1409 +// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
1410 //
1411 // This file is part of the GNU ISO C++ Library. This library is free
1412 // software; you can redistribute it and/or modify it under the
1413 @@ -62,6 +62,7 @@
1414 #define _EXT_NUMERIC 1
1415
1416 #pragma GCC system_header
1417 +#pragma GCC visibility push(default)
1418
1419 #include <bits/concept_check.h>
1420 #include <numeric>
1421 @@ -146,5 +147,7 @@
1422 }
1423 } // namespace __gnu_cxx
1424
1425 +#pragma GCC visibility pop
1426 +
1427 #endif
1428
1429 --- libstdc++-v3/include/ext/pod_char_traits.h
1430 +++ libstdc++-v3/include/ext/pod_char_traits.h
1431 @@ -37,6 +37,8 @@
1432 #ifndef _POD_CHAR_TRAITS_H
1433 #define _POD_CHAR_TRAITS_H 1
1434
1435 +#pragma GCC visibility push(default)
1436 +
1437 #include <string>
1438
1439 namespace __gnu_cxx
1440 @@ -182,4 +184,6 @@
1441 };
1442 }
1443
1444 +#pragma GCC visibility pop
1445 +
1446 #endif
1447 --- libstdc++-v3/include/ext/pool_allocator.h
1448 +++ libstdc++-v3/include/ext/pool_allocator.h
1449 @@ -1,6 +1,6 @@
1450 // Allocators -*- C++ -*-
1451
1452 -// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
1453 +// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
1454 //
1455 // This file is part of the GNU ISO C++ Library. This library is free
1456 // software; you can redistribute it and/or modify it under the
1457 @@ -47,6 +47,8 @@
1458 #ifndef _POOL_ALLOCATOR_H
1459 #define _POOL_ALLOCATOR_H 1
1460
1461 +#pragma GCC visibility push(default)
1462 +
1463 #include <bits/c++config.h>
1464 #include <cstdlib>
1465 #include <new>
1466 @@ -252,4 +254,6 @@
1467 }
1468 } // namespace __gnu_cxx
1469
1470 +#pragma GCC visibility pop
1471 +
1472 #endif
1473 --- libstdc++-v3/include/ext/rb_tree
1474 +++ libstdc++-v3/include/ext/rb_tree
1475 @@ -1,6 +1,6 @@
1476 // rb_tree extension -*- C++ -*-
1477
1478 -// Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
1479 +// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
1480 //
1481 // This file is part of the GNU ISO C++ Library. This library is free
1482 // software; you can redistribute it and/or modify it under the
1483 @@ -62,6 +62,7 @@
1484 #define _RB_TREE 1
1485
1486 #pragma GCC system_header
1487 +#pragma GCC visibility push(default)
1488
1489 #include <bits/stl_tree.h>
1490
1491 @@ -94,4 +95,6 @@
1492 };
1493 } // namespace __gnu_cxx
1494
1495 +#pragma GCC visibility pop
1496 +
1497 #endif
1498 --- libstdc++-v3/include/ext/rope
1499 +++ libstdc++-v3/include/ext/rope
1500 @@ -48,6 +48,8 @@
1501 #ifndef _ROPE
1502 #define _ROPE 1
1503
1504 +#pragma GCC visibility push(default)
1505 +
1506 #include <bits/stl_algobase.h>
1507 #include <bits/stl_construct.h>
1508 #include <bits/stl_uninitialized.h>
1509 @@ -2898,4 +2900,6 @@
1510
1511 # include <ext/ropeimpl.h>
1512
1513 +#pragma GCC visibility pop
1514 +
1515 #endif
1516 --- libstdc++-v3/include/ext/slist
1517 +++ libstdc++-v3/include/ext/slist
1518 @@ -49,6 +49,8 @@
1519 #ifndef _SLIST
1520 #define _SLIST 1
1521
1522 +#pragma GCC visibility push(default)
1523 +
1524 #include <bits/stl_algobase.h>
1525 #include <bits/allocator.h>
1526 #include <bits/stl_construct.h>
1527 @@ -1069,4 +1071,7 @@
1528 };
1529
1530 } // namespace std
1531 +
1532 +#pragma GCC visibility pop
1533 +
1534 #endif
1535 --- libstdc++-v3/include/ext/stdio_filebuf.h
1536 +++ libstdc++-v3/include/ext/stdio_filebuf.h
1537 @@ -1,6 +1,6 @@
1538 // File descriptor layer for filebuf -*- C++ -*-
1539
1540 -// Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
1541 +// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
1542 //
1543 // This file is part of the GNU ISO C++ Library. This library is free
1544 // software; you can redistribute it and/or modify it under the
1545 @@ -35,6 +35,7 @@
1546 #define _STDIO_FILEBUF_H 1
1547
1548 #pragma GCC system_header
1549 +#pragma GCC visibility push(default)
1550
1551 #include <fstream>
1552
1553 @@ -158,4 +159,6 @@
1554 }
1555 } // namespace __gnu_cxx
1556
1557 +#pragma GCC visibility pop
1558 +
1559 #endif
1560 --- libstdc++-v3/include/ext/stdio_sync_filebuf.h
1561 +++ libstdc++-v3/include/ext/stdio_sync_filebuf.h
1562 @@ -1,6 +1,6 @@
1563 // Iostreams wrapper for stdio FILE* -*- C++ -*-
1564
1565 -// Copyright (C) 2003, 2004 Free Software Foundation, Inc.
1566 +// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
1567 //
1568 // This file is part of the GNU ISO C++ Library. This library is free
1569 // software; you can redistribute it and/or modify it under the
1570 @@ -35,6 +35,7 @@
1571 #define _STDIO_SYNC_FILEBUF_H 1
1572
1573 #pragma GCC system_header
1574 +#pragma GCC visibility push(default)
1575
1576 #include <streambuf>
1577 #include <unistd.h>
1578 @@ -279,4 +280,6 @@
1579 #endif
1580 } // namespace __gnu_cxx
1581
1582 +#pragma GCC visibility pop
1583 +
1584 #endif
1585 --- libstdc++-v3/include/std/std_algorithm.h
1586 +++ libstdc++-v3/include/std/std_algorithm.h
1587 @@ -1,6 +1,6 @@
1588 // <algorithm> -*- C++ -*-
1589
1590 -// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
1591 +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
1592 //
1593 // This file is part of the GNU ISO C++ Library. This library is free
1594 // software; you can redistribute it and/or modify it under the
1595 @@ -61,10 +61,13 @@
1596 #define _GLIBCXX_ALGORITHM 1
1597
1598 #pragma GCC system_header
1599 +#pragma GCC visibility push(default)
1600
1601 #include <bits/stl_algobase.h>
1602 #include <bits/stl_construct.h>
1603 #include <bits/stl_uninitialized.h>
1604 #include <bits/stl_algo.h>
1605
1606 +#pragma GCC visibility pop
1607 +
1608 #endif /* _GLIBCXX_ALGORITHM */
1609 --- libstdc++-v3/include/std/std_bitset.h
1610 +++ libstdc++-v3/include/std/std_bitset.h
1611 @@ -48,6 +48,7 @@
1612 #define _GLIBCXX_BITSET 1
1613
1614 #pragma GCC system_header
1615 +#pragma GCC visibility push(default)
1616
1617 #include <cstddef> // For size_t
1618 #include <cstring> // For memset
1619 @@ -1300,4 +1301,6 @@
1620 # include <debug/bitset>
1621 #endif
1622
1623 +#pragma GCC visibility pop
1624 +
1625 #endif /* _GLIBCXX_BITSET */
1626 --- libstdc++-v3/include/std/std_complex.h
1627 +++ libstdc++-v3/include/std/std_complex.h
1628 @@ -43,6 +43,7 @@
1629 #define _GLIBCXX_COMPLEX 1
1630
1631 #pragma GCC system_header
1632 +#pragma GCC visibility push(default)
1633
1634 #include <bits/c++config.h>
1635 #include <bits/cpp_type_traits.h>
1636 @@ -1483,4 +1484,6 @@
1637 : _M_value(__z.__rep()) { }
1638 } // namespace std
1639
1640 +#pragma GCC visibility pop
1641 +
1642 #endif /* _GLIBCXX_COMPLEX */
1643 --- libstdc++-v3/include/std/std_deque.h
1644 +++ libstdc++-v3/include/std/std_deque.h
1645 @@ -1,6 +1,6 @@
1646 // <deque> -*- C++ -*-
1647
1648 -// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
1649 +// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
1650 //
1651 // This file is part of the GNU ISO C++ Library. This library is free
1652 // software; you can redistribute it and/or modify it under the
1653 @@ -61,6 +61,7 @@
1654 #define _GLIBCXX_DEQUE 1
1655
1656 #pragma GCC system_header
1657 +#pragma GCC visibility push(default)
1658
1659 #include <bits/functexcept.h>
1660 #include <bits/stl_algobase.h>
1661 @@ -77,4 +78,6 @@
1662 # include <debug/deque>
1663 #endif
1664
1665 +#pragma GCC visibility pop
1666 +
1667 #endif /* _GLIBCXX_DEQUE */
1668 --- libstdc++-v3/include/std/std_fstream.h
1669 +++ libstdc++-v3/include/std/std_fstream.h
1670 @@ -40,6 +40,7 @@
1671 #define _GLIBCXX_FSTREAM 1
1672
1673 #pragma GCC system_header
1674 +#pragma GCC visibility push(default)
1675
1676 #include <istream>
1677 #include <ostream>
1678 @@ -782,4 +783,6 @@
1679 # include <bits/fstream.tcc>
1680 #endif
1681
1682 +#pragma GCC visibility pop
1683 +
1684 #endif /* _GLIBCXX_FSTREAM */
1685 --- libstdc++-v3/include/std/std_functional.h
1686 +++ libstdc++-v3/include/std/std_functional.h
1687 @@ -1,6 +1,6 @@
1688 // <functional> -*- C++ -*-
1689
1690 -// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
1691 +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
1692 //
1693 // This file is part of the GNU ISO C++ Library. This library is free
1694 // software; you can redistribute it and/or modify it under the
1695 @@ -49,9 +49,12 @@
1696 #define _GLIBCXX_FUNCTIONAL 1
1697
1698 #pragma GCC system_header
1699 +#pragma GCC visibility push(default)
1700
1701 #include <bits/c++config.h>
1702 #include <cstddef>
1703 #include <bits/stl_function.h>
1704
1705 +#pragma GCC visibility pop
1706 +
1707 #endif /* _GLIBCXX_FUNCTIONAL */
1708 --- libstdc++-v3/include/std/std_iomanip.h
1709 +++ libstdc++-v3/include/std/std_iomanip.h
1710 @@ -1,6 +1,6 @@
1711 // Standard stream manipulators -*- C++ -*-
1712
1713 -// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003
1714 +// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2005
1715 // Free Software Foundation, Inc.
1716 //
1717 // This file is part of the GNU ISO C++ Library. This library is free
1718 @@ -40,6 +40,7 @@
1719 #define _GLIBCXX_IOMANIP 1
1720
1721 #pragma GCC system_header
1722 +#pragma GCC visibility push(default)
1723
1724 #include <bits/c++config.h>
1725 #include <istream>
1726 @@ -296,4 +297,6 @@
1727 #endif
1728 } // namespace std
1729
1730 +#pragma GCC visibility pop
1731 +
1732 #endif /* _GLIBCXX_IOMANIP */
1733 --- libstdc++-v3/include/std/std_ios.h
1734 +++ libstdc++-v3/include/std/std_ios.h
1735 @@ -1,6 +1,7 @@
1736 // Iostreams base classes -*- C++ -*-
1737
1738 -// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
1739 +// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2005
1740 +// Free Software Foundation, Inc.
1741 //
1742 // This file is part of the GNU ISO C++ Library. This library is free
1743 // software; you can redistribute it and/or modify it under the
1744 @@ -39,6 +40,7 @@
1745 #define _GLIBCXX_IOS 1
1746
1747 #pragma GCC system_header
1748 +#pragma GCC visibility push(default)
1749
1750 #include <iosfwd>
1751 #include <exception> // For ios_base::failure
1752 @@ -49,4 +51,6 @@
1753 #include <streambuf>
1754 #include <bits/basic_ios.h>
1755
1756 +#pragma GCC visibility pop
1757 +
1758 #endif /* _GLIBCXX_IOS */
1759 --- libstdc++-v3/include/std/std_iosfwd.h
1760 +++ libstdc++-v3/include/std/std_iosfwd.h
1761 @@ -1,6 +1,6 @@
1762 // Forwarding declarations -*- C++ -*-
1763
1764 -// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003
1765 +// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2005
1766 // Free Software Foundation, Inc.
1767 //
1768 // This file is part of the GNU ISO C++ Library. This library is free
1769 @@ -40,6 +40,7 @@
1770 #define _GLIBCXX_IOSFWD 1
1771
1772 #pragma GCC system_header
1773 +#pragma GCC visibility push(default)
1774
1775 #include <bits/c++config.h>
1776 #include <bits/c++locale.h>
1777 @@ -164,4 +165,6 @@
1778 /** @} */
1779 } // namespace std
1780
1781 +#pragma GCC visibility pop
1782 +
1783 #endif /* _GLIBCXX_IOSFWD */
1784 --- libstdc++-v3/include/std/std_iostream.h
1785 +++ libstdc++-v3/include/std/std_iostream.h
1786 @@ -1,6 +1,7 @@
1787 // Standard iostream objects -*- C++ -*-
1788
1789 -// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
1790 +// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2005
1791 +// Free Software Foundation, Inc.
1792 //
1793 // This file is part of the GNU ISO C++ Library. This library is free
1794 // software; you can redistribute it and/or modify it under the
1795 @@ -39,6 +40,7 @@
1796 #define _GLIBCXX_IOSTREAM 1
1797
1798 #pragma GCC system_header
1799 +#pragma GCC visibility push(default)
1800
1801 #include <bits/c++config.h>
1802 #include <ostream>
1803 @@ -76,4 +78,6 @@
1804 static ios_base::Init __ioinit;
1805 } // namespace std
1806
1807 +#pragma GCC visibility pop
1808 +
1809 #endif /* _GLIBCXX_IOSTREAM */
1810 --- libstdc++-v3/include/std/std_istream.h
1811 +++ libstdc++-v3/include/std/std_istream.h
1812 @@ -1,6 +1,6 @@
1813 // Input streams -*- C++ -*-
1814
1815 -// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004
1816 +// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
1817 // Free Software Foundation, Inc.
1818 //
1819 // This file is part of the GNU ISO C++ Library. This library is free
1820 @@ -40,6 +40,7 @@
1821 #define _GLIBCXX_ISTREAM 1
1822
1823 #pragma GCC system_header
1824 +#pragma GCC visibility push(default)
1825
1826 #include <ios>
1827 #include <limits> // For numeric_limits
1828 @@ -814,4 +815,6 @@
1829 # include <bits/istream.tcc>
1830 #endif
1831
1832 +#pragma GCC visibility pop
1833 +
1834 #endif /* _GLIBCXX_ISTREAM */
1835 --- libstdc++-v3/include/std/std_iterator.h
1836 +++ libstdc++-v3/include/std/std_iterator.h
1837 @@ -1,6 +1,6 @@
1838 // <iterator> -*- C++ -*-
1839
1840 -// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
1841 +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
1842 //
1843 // This file is part of the GNU ISO C++ Library. This library is free
1844 // software; you can redistribute it and/or modify it under the
1845 @@ -61,6 +61,7 @@
1846 #define _GLIBCXX_ITERATOR 1
1847
1848 #pragma GCC system_header
1849 +#pragma GCC visibility push(default)
1850
1851 #include <bits/c++config.h>
1852 #include <cstddef>
1853 @@ -72,4 +73,6 @@
1854 #include <bits/stream_iterator.h>
1855 #include <bits/streambuf_iterator.h>
1856
1857 +#pragma GCC visibility pop
1858 +
1859 #endif /* _GLIBCXX_ITERATOR */
1860 --- libstdc++-v3/include/std/std_limits.h
1861 +++ libstdc++-v3/include/std/std_limits.h
1862 @@ -1,6 +1,7 @@
1863 // The template and inlines for the -*- C++ -*- numeric_limits classes.
1864
1865 -// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
1866 +// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005
1867 +// Free Software Foundation, Inc.
1868 //
1869 // This file is part of the GNU ISO C++ Library. This library is free
1870 // software; you can redistribute it and/or modify it under the
1871 @@ -43,6 +44,7 @@
1872 #define _GLIBCXX_NUMERIC_LIMITS 1
1873
1874 #pragma GCC system_header
1875 +#pragma GCC visibility push(default)
1876
1877 #include <bits/c++config.h>
1878
1879 @@ -1156,4 +1158,6 @@
1880 #undef __glibcxx_digits
1881 #undef __glibcxx_digits10
1882
1883 +#pragma GCC visibility pop
1884 +
1885 #endif // _GLIBCXX_NUMERIC_LIMITS
1886 --- libstdc++-v3/include/std/std_list.h
1887 +++ libstdc++-v3/include/std/std_list.h
1888 @@ -1,6 +1,6 @@
1889 // <list> -*- C++ -*-
1890
1891 -// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
1892 +// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
1893 //
1894 // This file is part of the GNU ISO C++ Library. This library is free
1895 // software; you can redistribute it and/or modify it under the
1896 @@ -61,6 +61,7 @@
1897 #define _GLIBCXX_LIST 1
1898
1899 #pragma GCC system_header
1900 +#pragma GCC visibility push(default)
1901
1902 #include <bits/functexcept.h>
1903 #include <bits/stl_algobase.h>
1904 @@ -77,5 +78,7 @@
1905 # include <debug/list>
1906 #endif
1907
1908 +#pragma GCC visibility pop
1909 +
1910 #endif /* _GLIBCXX_LIST */
1911
1912 --- libstdc++-v3/include/std/std_locale.h
1913 +++ libstdc++-v3/include/std/std_locale.h
1914 @@ -1,6 +1,7 @@
1915 // Locale support -*- C++ -*-
1916
1917 -// Copyright (C) 1997, 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
1918 +// Copyright (C) 1997, 1998, 1999, 2002, 2003, 2005
1919 +// Free Software Foundation, Inc.
1920 //
1921 // This file is part of the GNU ISO C++ Library. This library is free
1922 // software; you can redistribute it and/or modify it under the
1923 @@ -39,10 +40,13 @@
1924 #define _GLIBCXX_LOCALE 1
1925
1926 #pragma GCC system_header
1927 +#pragma GCC visibility push(default)
1928
1929 #include <bits/localefwd.h>
1930 #include <bits/locale_classes.h>
1931 #include <bits/locale_facets.h>
1932 #include <bits/locale_facets.tcc>
1933
1934 +#pragma GCC visibility pop
1935 +
1936 #endif /* _GLIBCXX_LOCALE */
1937 --- libstdc++-v3/include/std/std_map.h
1938 +++ libstdc++-v3/include/std/std_map.h
1939 @@ -1,6 +1,6 @@
1940 // <map> -*- C++ -*-
1941
1942 -// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
1943 +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
1944 //
1945 // This file is part of the GNU ISO C++ Library. This library is free
1946 // software; you can redistribute it and/or modify it under the
1947 @@ -61,6 +61,7 @@
1948 #define _GLIBCXX_MAP 1
1949
1950 #pragma GCC system_header
1951 +#pragma GCC visibility push(default)
1952
1953 #include <bits/stl_tree.h>
1954 #include <bits/stl_map.h>
1955 @@ -70,4 +71,6 @@
1956 # include <debug/map>
1957 #endif
1958
1959 +#pragma GCC visibility pop
1960 +
1961 #endif /* _GLIBCXX_MAP */
1962 --- libstdc++-v3/include/std/std_memory.h
1963 +++ libstdc++-v3/include/std/std_memory.h
1964 @@ -1,6 +1,6 @@
1965 // <memory> -*- C++ -*-
1966
1967 -// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
1968 +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
1969 //
1970 // This file is part of the GNU ISO C++ Library. This library is free
1971 // software; you can redistribute it and/or modify it under the
1972 @@ -49,6 +49,7 @@
1973 #define _GLIBCXX_MEMORY 1
1974
1975 #pragma GCC system_header
1976 +#pragma GCC visibility push(default)
1977
1978 #include <bits/stl_algobase.h>
1979 #include <bits/allocator.h>
1980 @@ -370,4 +371,6 @@
1981 };
1982 } // namespace std
1983
1984 +#pragma GCC visibility pop
1985 +
1986 #endif /* _GLIBCXX_MEMORY */
1987 --- libstdc++-v3/include/std/std_numeric.h
1988 +++ libstdc++-v3/include/std/std_numeric.h
1989 @@ -1,6 +1,6 @@
1990 // <numeric> -*- C++ -*-
1991
1992 -// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
1993 +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
1994 //
1995 // This file is part of the GNU ISO C++ Library. This library is free
1996 // software; you can redistribute it and/or modify it under the
1997 @@ -61,6 +61,7 @@
1998 #define _GLIBCXX_NUMERIC 1
1999
2000 #pragma GCC system_header
2001 +#pragma GCC visibility push(default)
2002
2003 #include <bits/c++config.h>
2004 #include <cstddef>
2005 @@ -68,4 +69,6 @@
2006 #include <bits/stl_function.h>
2007 #include <bits/stl_numeric.h>
2008
2009 +#pragma GCC visibility pop
2010 +
2011 #endif /* _GLIBCXX_NUMERIC */
2012 --- libstdc++-v3/include/std/std_ostream.h
2013 +++ libstdc++-v3/include/std/std_ostream.h
2014 @@ -1,6 +1,6 @@
2015 // Output streams -*- C++ -*-
2016
2017 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
2018 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
2019 // Free Software Foundation, Inc.
2020 //
2021 // This file is part of the GNU ISO C++ Library. This library is free
2022 @@ -40,6 +40,7 @@
2023 #define _GLIBCXX_OSTREAM 1
2024
2025 #pragma GCC system_header
2026 +#pragma GCC visibility push(default)
2027
2028 #include <ios>
2029
2030 @@ -544,4 +545,6 @@
2031 # include <bits/ostream.tcc>
2032 #endif
2033
2034 +#pragma GCC visibility pop
2035 +
2036 #endif /* _GLIBCXX_OSTREAM */
2037 --- libstdc++-v3/include/std/std_queue.h
2038 +++ libstdc++-v3/include/std/std_queue.h
2039 @@ -1,6 +1,6 @@
2040 // <queue> -*- C++ -*-
2041
2042 -// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
2043 +// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
2044 //
2045 // This file is part of the GNU ISO C++ Library. This library is free
2046 // software; you can redistribute it and/or modify it under the
2047 @@ -61,6 +61,7 @@
2048 #define _GLIBCXX_QUEUE 1
2049
2050 #pragma GCC system_header
2051 +#pragma GCC visibility push(default)
2052
2053 #include <bits/c++config.h>
2054 #include <bits/functexcept.h>
2055 @@ -74,4 +75,6 @@
2056 #include <vector>
2057 #include <bits/stl_queue.h>
2058
2059 +#pragma GCC visibility pop
2060 +
2061 #endif /* _GLIBCXX_QUEUE */
2062 --- libstdc++-v3/include/std/std_set.h
2063 +++ libstdc++-v3/include/std/std_set.h
2064 @@ -1,6 +1,6 @@
2065 // <set> -*- C++ -*-
2066
2067 -// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
2068 +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
2069 //
2070 // This file is part of the GNU ISO C++ Library. This library is free
2071 // software; you can redistribute it and/or modify it under the
2072 @@ -61,7 +61,8 @@
2073 #define _GLIBCXX_SET 1
2074
2075 #pragma GCC system_header
2076 -
2077 +#pragma GCC visibility push(default)
2078 +
2079 #include <bits/stl_tree.h>
2080 #include <bits/stl_set.h>
2081 #include <bits/stl_multiset.h>
2082 @@ -70,4 +71,6 @@
2083 # include <debug/set>
2084 #endif
2085
2086 +#pragma GCC visibility pop
2087 +
2088 #endif /* _GLIBCXX_SET */
2089 --- libstdc++-v3/include/std/std_sstream.h
2090 +++ libstdc++-v3/include/std/std_sstream.h
2091 @@ -40,6 +40,7 @@
2092 #define _GLIBCXX_SSTREAM 1
2093
2094 #pragma GCC system_header
2095 +#pragma GCC visibility push(default)
2096
2097 #include <istream>
2098 #include <ostream>
2099 @@ -614,4 +615,6 @@
2100 # include <bits/sstream.tcc>
2101 #endif
2102
2103 +#pragma GCC visibility pop
2104 +
2105 #endif /* _GLIBCXX_SSTREAM */
2106 --- libstdc++-v3/include/std/std_stack.h
2107 +++ libstdc++-v3/include/std/std_stack.h
2108 @@ -1,6 +1,6 @@
2109 // <stack> -*- C++ -*-
2110
2111 -// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
2112 +// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
2113 //
2114 // This file is part of the GNU ISO C++ Library. This library is free
2115 // software; you can redistribute it and/or modify it under the
2116 @@ -61,6 +61,7 @@
2117 #define _GLIBCXX_STACK 1
2118
2119 #pragma GCC system_header
2120 +#pragma GCC visibility push(default)
2121
2122 #include <bits/stl_algobase.h>
2123 #include <bits/allocator.h>
2124 @@ -69,4 +70,6 @@
2125 #include <deque>
2126 #include <bits/stl_stack.h>
2127
2128 +#pragma GCC visibility pop
2129 +
2130 #endif /* _GLIBCXX_STACK */
2131 --- libstdc++-v3/include/std/std_stdexcept.h
2132 +++ libstdc++-v3/include/std/std_stdexcept.h
2133 @@ -1,6 +1,6 @@
2134 // Standard exception classes -*- C++ -*-
2135
2136 -// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
2137 +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
2138 //
2139 // This file is part of the GNU ISO C++ Library. This library is free
2140 // software; you can redistribute it and/or modify it under the
2141 @@ -39,6 +39,7 @@
2142 #define _GLIBCXX_STDEXCEPT 1
2143
2144 #pragma GCC system_header
2145 +#pragma GCC visibility push(default)
2146
2147 #include <exception>
2148 #include <string>
2149 @@ -144,4 +145,6 @@
2150 };
2151 } // namespace std
2152
2153 +#pragma GCC visibility pop
2154 +
2155 #endif /* _GLIBCXX_STDEXCEPT */
2156 --- libstdc++-v3/include/std/std_streambuf.h
2157 +++ libstdc++-v3/include/std/std_streambuf.h
2158 @@ -1,6 +1,6 @@
2159 // Stream buffer classes -*- C++ -*-
2160
2161 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
2162 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
2163 // Free Software Foundation, Inc.
2164 //
2165 // This file is part of the GNU ISO C++ Library. This library is free
2166 @@ -40,6 +40,7 @@
2167 #define _GLIBXX_STREAMBUF 1
2168
2169 #pragma GCC system_header
2170 +#pragma GCC visibility push(default)
2171
2172 #include <bits/c++config.h>
2173 #include <iosfwd>
2174 @@ -797,4 +798,6 @@
2175 # include <bits/streambuf.tcc>
2176 #endif
2177
2178 +#pragma GCC visibility pop
2179 +
2180 #endif /* _GLIBCXX_STREAMBUF */
2181 --- libstdc++-v3/include/std/std_string.h
2182 +++ libstdc++-v3/include/std/std_string.h
2183 @@ -40,6 +40,7 @@
2184 #define _GLIBCXX_STRING 1
2185
2186 #pragma GCC system_header
2187 +#pragma GCC visibility push(default)
2188
2189 #include <bits/c++config.h>
2190 #include <bits/stringfwd.h>
2191 @@ -56,4 +57,6 @@
2192 # include <bits/basic_string.tcc>
2193 #endif
2194
2195 +#pragma GCC visibility pop
2196 +
2197 #endif /* _GLIBCXX_STRING */
2198 --- libstdc++-v3/include/std/std_utility.h
2199 +++ libstdc++-v3/include/std/std_utility.h
2200 @@ -1,6 +1,6 @@
2201 // <utility> -*- C++ -*-
2202
2203 -// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
2204 +// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
2205 //
2206 // This file is part of the GNU ISO C++ Library. This library is free
2207 // software; you can redistribute it and/or modify it under the
2208 @@ -61,9 +61,12 @@
2209 #define _GLIBCXX_UTILITY 1
2210
2211 #pragma GCC system_header
2212 +#pragma GCC visibility push(default)
2213
2214 #include <bits/c++config.h>
2215 #include <bits/stl_relops.h>
2216 #include <bits/stl_pair.h>
2217
2218 +#pragma GCC visibility pop
2219 +
2220 #endif /* _GLIBCXX_UTILITY */
2221 --- libstdc++-v3/include/std/std_valarray.h
2222 +++ libstdc++-v3/include/std/std_valarray.h
2223 @@ -1,6 +1,6 @@
2224 // The template and inlines for the -*- C++ -*- valarray class.
2225
2226 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
2227 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
2228 // Free Software Foundation, Inc.
2229 //
2230 // This file is part of the GNU ISO C++ Library. This library is free
2231 @@ -38,6 +38,7 @@
2232 #define _GLIBCXX_VALARRAY 1
2233
2234 #pragma GCC system_header
2235 +#pragma GCC visibility push(default)
2236
2237 #include <bits/c++config.h>
2238 #include <cstddef>
2239 @@ -1007,4 +1008,6 @@
2240
2241 } // namespace std
2242
2243 +#pragma GCC visibility pop
2244 +
2245 #endif /* _GLIBCXX_VALARRAY */
2246 --- libstdc++-v3/include/std/std_vector.h
2247 +++ libstdc++-v3/include/std/std_vector.h
2248 @@ -1,6 +1,6 @@
2249 // <vector> -*- C++ -*-
2250
2251 -// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
2252 +// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
2253 //
2254 // This file is part of the GNU ISO C++ Library. This library is free
2255 // software; you can redistribute it and/or modify it under the
2256 @@ -61,6 +61,7 @@
2257 #define _GLIBCXX_VECTOR 1
2258
2259 #pragma GCC system_header
2260 +#pragma GCC visibility push(default)
2261
2262 #include <bits/functexcept.h>
2263 #include <bits/stl_algobase.h>
2264 @@ -78,5 +79,7 @@
2265 # include <debug/vector>
2266 #endif
2267
2268 +#pragma GCC visibility pop
2269 +
2270 #endif /* _GLIBCXX_VECTOR */
2271
2272 --- libstdc++-v3/include/tr1/array
2273 +++ libstdc++-v3/include/tr1/array
2274 @@ -34,6 +34,8 @@
2275 #ifndef _ARRAY
2276 #define _ARRAY 1
2277
2278 +#pragma GCC visibility push(default)
2279 +
2280 #include <new>
2281 #include <iterator>
2282 #include <algorithm>
2283 @@ -231,4 +233,6 @@
2284 } // namespace std::tr1
2285 }
2286
2287 +#pragma GCC visibility pop
2288 +
2289 #endif
2290 --- libstdc++-v3/include/tr1/functional
2291 +++ libstdc++-v3/include/tr1/functional
2292 @@ -34,6 +34,8 @@
2293 #ifndef _TR1_FUNCTIONAL
2294 #define _TR1_FUNCTIONAL 1
2295
2296 +#pragma GCC visibility push(default)
2297 +
2298 #include "../functional"
2299 #include <typeinfo>
2300 #include <tr1/type_traits>
2301 @@ -1266,4 +1268,6 @@
2302 }
2303 }
2304
2305 +#pragma GCC visibility pop
2306 +
2307 #endif
2308 --- libstdc++-v3/include/tr1/memory
2309 +++ libstdc++-v3/include/tr1/memory
2310 @@ -30,6 +30,8 @@
2311 #ifndef _TR1_MEMORY
2312 #define _TR1_MEMORY 1
2313
2314 +#pragma GCC visibility push(default)
2315 +
2316 #include "../memory"
2317 #include <functional> // std::less
2318 #include <exception> // std::exception
2319 @@ -48,4 +50,6 @@
2320
2321 #include <tr1/boost_shared_ptr.h>
2322
2323 +#pragma GCC visibility pop
2324 +
2325 #endif
2326 --- libstdc++-v3/include/tr1/tuple
2327 +++ libstdc++-v3/include/tr1/tuple
2328 @@ -36,6 +36,8 @@
2329 #ifndef _TUPLE
2330 #define _TUPLE 1
2331
2332 +#pragma GCC visibility push(default)
2333 +
2334 #include <tr1/utility>
2335 #include <tr1/ref_fwd.h>
2336
2337 @@ -272,4 +274,6 @@
2338
2339 #include <tr1/functional>
2340
2341 +#pragma GCC visibility pop
2342 +
2343 #endif
2344 --- libstdc++-v3/include/tr1/type_traits
2345 +++ libstdc++-v3/include/tr1/type_traits
2346 @@ -34,6 +34,8 @@
2347 #ifndef _TYPE_TRAITS
2348 #define _TYPE_TRAITS 1
2349
2350 +#pragma GCC visibility push(default)
2351 +
2352 #include <bits/c++config.h>
2353 #include <tr1/type_traits_fwd.h>
2354
2355 @@ -703,4 +705,6 @@
2356 }
2357 }
2358
2359 +#pragma GCC visibility pop
2360 +
2361 #endif
2362 --- libstdc++-v3/include/tr1/unordered_map
2363 +++ libstdc++-v3/include/tr1/unordered_map
2364 @@ -34,6 +34,8 @@
2365 #ifndef GNU_LIBSTDCXX_TR1_UNORDERED_MAP_
2366 #define GNU_LIBSTDCXX_TR1_UNORDERED_MAP_
2367
2368 +#pragma GCC visibility push(default)
2369 +
2370 #include <tr1/hashtable>
2371 #include <tr1/functional>
2372 #include <tr1/functional>
2373 @@ -163,4 +165,6 @@
2374
2375 } }
2376
2377 +#pragma GCC visibility pop
2378 +
2379 #endif /* GNU_LIBSTDCXX_TR1_UNORDERED_MAP_ */
2380 --- libstdc++-v3/include/tr1/unordered_set
2381 +++ libstdc++-v3/include/tr1/unordered_set
2382 @@ -34,6 +34,8 @@
2383 #ifndef GNU_LIBSTDCXX_TR1_UNORDERED_SET_
2384 #define GNU_LIBSTDCXX_TR1_UNORDERED_SET_
2385
2386 +#pragma GCC visibility push(default)
2387 +
2388 #include <tr1/hashtable>
2389 #include <tr1/functional>
2390 #include <memory>
2391 @@ -157,4 +159,6 @@
2392
2393 } }
2394
2395 +#pragma GCC visibility pop
2396 +
2397 #endif /* GNU_LIBSTDCXX_TR1_UNORDERED_SET_ */
2398 --- libstdc++-v3/include/tr1/utility
2399 +++ libstdc++-v3/include/tr1/utility
2400 @@ -34,6 +34,8 @@
2401 #ifndef _TR1_UTILITY
2402 #define _TR1_UTILITY 1
2403
2404 +#pragma GCC visibility push(default)
2405 +
2406 #include "../utility"
2407
2408 namespace std
2409 @@ -93,6 +95,8 @@
2410 get(const pair<_Tp1, _Tp2>& __in)
2411 { return __pair_get<_Int>::__const_get(__in); }
2412 }
2413 -}
2414 +}
2415 +
2416 +#pragma GCC visibility pop
2417
2418 #endif
2419 --- libstdc++-v3/testsuite/20_util/memory/auto_ptr/assign_neg.cc
2420 +++ libstdc++-v3/testsuite/20_util/memory/auto_ptr/assign_neg.cc
2421 @@ -46,5 +46,5 @@
2422 test01();
2423 return 0;
2424 }
2425 -// { dg-error "candidates" "" { target *-*-* } 223 }
2426 -// { dg-error "std::auto_ptr" "" { target *-*-* } 353 }
2427 +// { dg-error "candidates" "" { target *-*-* } 224 }
2428 +// { dg-error "std::auto_ptr" "" { target *-*-* } 354 }