2003-12-09 Benjamin Kosnik * config/linker-map.gnu: Remove private ios_base members from export list. * config/cpu/alpha/atomicity.h: Consistently format. * config/cpu/cris/atomicity.h: Same. * config/cpu/generic/atomicity.h: Same. * config/cpu/hppa/atomicity.h: Same. * config/cpu/i386/atomicity.h: Same. * config/cpu/i486/atomicity.h: Same. * config/cpu/ia64/atomicity.h: Same. * config/cpu/m68k/atomicity.h: Same. * config/cpu/mips/atomicity.h: Same. * config/cpu/powerpc/atomicity.h: Same. * config/cpu/s390/atomicity.h: Same. * config/cpu/sparc/atomicity.h: Same. Index: config/linker-map.gnu =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/linker-map.gnu,v retrieving revision 1.49 diff -c -p -r1.49 linker-map.gnu *** config/linker-map.gnu 11 Nov 2003 20:09:06 -0000 1.49 --- config/linker-map.gnu 10 Dec 2003 04:50:55 -0000 *************** GLIBCXX_3.4 { *** 27,33 **** # Names inside the 'extern' block are demangled names. extern "C++" { ! std::[A-Za-k]*; std::length_error*; std::logic_error*; std::locale::[A-Za-e]*; --- 27,42 ---- # Names inside the 'extern' block are demangled names. extern "C++" { ! std::[A-Za-h]*; ! std::i[a-n]*; ! std::ios_base::[A-Ha-z]*; ! std::ios_base::_M_grow_words*; ! std::ios_base::_M_init*; ! std::ios_base::Init::[A-Za-z]*; ! std::ios_base::Init::_S_initialized*; ! std::ios_base::[J-Za-z]*; ! std::i[p-z]*; ! std::[A-Zj-k]*; std::length_error*; std::logic_error*; std::locale::[A-Za-e]*; *************** GLIBCXX_3.4 { *** 95,100 **** --- 104,113 ---- # std::locale::_Impl constructors, destructors _ZNSt6locale5_ImplC*; _ZNSt6locale5_ImplD*; + + # std::ios_base, std::ios_base::Init destructors + _ZNSt8ios_baseD*; + _ZNSt8ios_base4InitD*; # bool has_facet _ZSt9has_facet*; Index: config/cpu/alpha/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/alpha/atomicity.h,v retrieving revision 1.4 diff -c -p -r1.4 atomicity.h *** config/cpu/alpha/atomicity.h 5 Jul 2003 04:05:27 -0000 1.4 --- config/cpu/alpha/atomicity.h 10 Dec 2003 04:50:55 -0000 *************** *** 1,6 **** // Low-level functions for atomic operations: Alpha version -*- C++ -*- ! // Copyright (C) 1999, 2000, 2001 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 --- 1,6 ---- // Low-level functions for atomic operations: Alpha version -*- C++ -*- ! // Copyright (C) 1999, 2000, 2001, 2003 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 *************** typedef int _Atomic_word; *** 39,45 **** static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word* __mem, int __val) { register int __result, __tmp; --- 39,45 ---- static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { register int __result, __tmp; *************** __exchange_and_add (volatile _Atomic_wor *** 58,64 **** static inline void __attribute__ ((__unused__)) ! __atomic_add (volatile _Atomic_word* __mem, int __val) { register _Atomic_word __result; --- 58,64 ---- static inline void __attribute__ ((__unused__)) ! __atomic_add(volatile _Atomic_word* __mem, int __val) { register _Atomic_word __result; Index: config/cpu/cris/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/cris/atomicity.h,v retrieving revision 1.2 diff -c -p -r1.2 atomicity.h *** config/cpu/cris/atomicity.h 5 Jul 2003 04:05:27 -0000 1.2 --- config/cpu/cris/atomicity.h 10 Dec 2003 04:50:55 -0000 *************** *** 1,6 **** // Low-level functions for atomic operations: CRIS version -*- C++ -*- ! // Copyright (C) 2001 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 --- 1,6 ---- // Low-level functions for atomic operations: CRIS version -*- C++ -*- ! // Copyright (C) 2001, 2003 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 *************** typedef int _Atomic_word __attribute__ ( *** 35,41 **** static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add (_Atomic_word* __mem, int __val) { int __tmp; _Atomic_word __result; --- 35,41 ---- static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add(_Atomic_word* __mem, int __val) { int __tmp; _Atomic_word __result; *************** __exchange_and_add (_Atomic_word* __mem, *** 71,79 **** static inline void __attribute__ ((__unused__)) ! __atomic_add (_Atomic_word* __mem, int __val) { ! __exchange_and_add (__mem, __val); } #endif /* atomicity.h */ --- 71,79 ---- static inline void __attribute__ ((__unused__)) ! __atomic_add(_Atomic_word* __mem, int __val) { ! __exchange_and_add(__mem, __val); } #endif /* atomicity.h */ Index: config/cpu/generic/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/generic/atomicity.h,v retrieving revision 1.6 diff -c -p -r1.6 atomicity.h *** config/cpu/generic/atomicity.h 5 Jul 2003 04:05:27 -0000 1.6 --- config/cpu/generic/atomicity.h 10 Dec 2003 04:50:55 -0000 *************** namespace __gnu_cxx *** 48,77 **** static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word* __mem, int __val) { #ifndef __GTHREAD_MUTEX_INIT ! __gthread_once (&__gnu_cxx::_Atomic_add_mutex_once, ! __gnu_cxx::__gthread_atomic_add_mutex_once); #endif _Atomic_word __result; ! __gthread_mutex_lock (&__gnu_cxx::_Atomic_add_mutex); __result = *__mem; *__mem += __val; ! __gthread_mutex_unlock (&__gnu_cxx::_Atomic_add_mutex); return __result; } static inline void __attribute__ ((__unused__)) ! __atomic_add (volatile _Atomic_word* __mem, int __val) { ! (void) __exchange_and_add (__mem, __val); } #endif /* atomicity.h */ --- 48,77 ---- static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { #ifndef __GTHREAD_MUTEX_INIT ! __gthread_once(&__gnu_cxx::_Atomic_add_mutex_once, ! __gnu_cxx::__gthread_atomic_add_mutex_once); #endif _Atomic_word __result; ! __gthread_mutex_lock(&__gnu_cxx::_Atomic_add_mutex); __result = *__mem; *__mem += __val; ! __gthread_mutex_unlock(&__gnu_cxx::_Atomic_add_mutex); return __result; } static inline void __attribute__ ((__unused__)) ! __atomic_add(volatile _Atomic_word* __mem, int __val) { ! (void) __exchange_and_add(__mem, __val); } #endif /* atomicity.h */ Index: config/cpu/hppa/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/hppa/atomicity.h,v retrieving revision 1.4 diff -c -p -r1.4 atomicity.h *** config/cpu/hppa/atomicity.h 23 Jul 2003 21:17:43 -0000 1.4 --- config/cpu/hppa/atomicity.h 10 Dec 2003 04:50:55 -0000 *************** template volatile int __Atomicity_lock<0 *** 42,48 **** static inline int __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word* __mem, int __val) { _Atomic_word result; int tmp; --- 42,48 ---- static inline int __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { _Atomic_word result; int tmp; *************** __exchange_and_add (volatile _Atomic_wor *** 67,73 **** static inline void __attribute__ ((__unused__)) ! __atomic_add (_Atomic_word* __mem, int __val) { int tmp; volatile int& lock = __Atomicity_lock<0>::_S_atomicity_lock; --- 67,73 ---- static inline void __attribute__ ((__unused__)) ! __atomic_add(_Atomic_word* __mem, int __val) { int tmp; volatile int& lock = __Atomicity_lock<0>::_S_atomicity_lock; Index: config/cpu/i386/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/i386/atomicity.h,v retrieving revision 1.7 diff -c -p -r1.7 atomicity.h *** config/cpu/i386/atomicity.h 5 Jul 2003 04:05:27 -0000 1.7 --- config/cpu/i386/atomicity.h 10 Dec 2003 04:50:55 -0000 *************** *** 32,51 **** typedef int _Atomic_word; ! template ! struct __Atomicity_lock ! { ! static volatile _Atomic_word _S_atomicity_lock; ! }; ! template volatile _Atomic_word __Atomicity_lock<__inst>::_S_atomicity_lock = 0; template volatile _Atomic_word __Atomicity_lock<0>::_S_atomicity_lock; static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word *__mem, int __val) { register _Atomic_word __result, __tmp = 1; --- 32,51 ---- typedef int _Atomic_word; ! template ! struct __Atomicity_lock ! { ! static volatile _Atomic_word _S_atomicity_lock; ! }; ! template volatile _Atomic_word __Atomicity_lock<__inst>::_S_atomicity_lock = 0; template volatile _Atomic_word __Atomicity_lock<0>::_S_atomicity_lock; static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { register _Atomic_word __result, __tmp = 1; *************** __exchange_and_add (volatile _Atomic_wor *** 67,75 **** static inline void __attribute__ ((__unused__)) ! __atomic_add (volatile _Atomic_word* __mem, int __val) { ! __exchange_and_add (__mem, __val); } #endif /* atomicity.h */ --- 67,75 ---- static inline void __attribute__ ((__unused__)) ! __atomic_add(volatile _Atomic_word* __mem, int __val) { ! __exchange_and_add(__mem, __val); } #endif /* atomicity.h */ Index: config/cpu/i486/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/i486/atomicity.h,v retrieving revision 1.4 diff -c -p -r1.4 atomicity.h *** config/cpu/i486/atomicity.h 5 Jul 2003 04:05:27 -0000 1.4 --- config/cpu/i486/atomicity.h 10 Dec 2003 04:50:55 -0000 *************** typedef int _Atomic_word; *** 34,40 **** static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word *__mem, int __val) { register _Atomic_word __result; __asm__ __volatile__ ("lock; xadd{l} {%0,%1|%1,%0}" --- 34,40 ---- static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { register _Atomic_word __result; __asm__ __volatile__ ("lock; xadd{l} {%0,%1|%1,%0}" *************** __exchange_and_add (volatile _Atomic_wor *** 46,57 **** static inline void __attribute__ ((__unused__)) ! __atomic_add (volatile _Atomic_word* __mem, int __val) { __asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}" : "+m" (*__mem) : "ir" (__val) : "memory"); } #endif /* atomicity.h */ - - --- 46,55 ---- static inline void __attribute__ ((__unused__)) ! __atomic_add(volatile _Atomic_word* __mem, int __val) { __asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}" : "+m" (*__mem) : "ir" (__val) : "memory"); } #endif /* atomicity.h */ Index: config/cpu/ia64/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/ia64/atomicity.h,v retrieving revision 1.2 diff -c -p -r1.2 atomicity.h *** config/cpu/ia64/atomicity.h 5 Jul 2003 04:05:28 -0000 1.2 --- config/cpu/ia64/atomicity.h 10 Dec 2003 04:50:55 -0000 *************** *** 1,6 **** // Low-level functions for atomic operations: IA64 version -*- C++ -*- ! // Copyright (C) 2000, 2001 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 --- 1,6 ---- // Low-level functions for atomic operations: IA64 version -*- C++ -*- ! // Copyright (C) 2000, 2001, 2003 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 *************** typedef int _Atomic_word; *** 36,51 **** static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word *__mem, int __val) { ! return __sync_fetch_and_add (__mem, __val); } static inline void __attribute__ ((__unused__)) ! __atomic_add (volatile _Atomic_word* __mem, int __val) { ! __sync_fetch_and_add (__mem, __val); } #endif /* atomicity.h */ --- 36,51 ---- static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { ! return __sync_fetch_and_add(__mem, __val); } static inline void __attribute__ ((__unused__)) ! __atomic_add(volatile _Atomic_word* __mem, int __val) { ! __sync_fetch_and_add(__mem, __val); } #endif /* atomicity.h */ Index: config/cpu/m68k/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/m68k/atomicity.h,v retrieving revision 1.6 diff -c -p -r1.6 atomicity.h *** config/cpu/m68k/atomicity.h 16 Oct 2003 19:47:45 -0000 1.6 --- config/cpu/m68k/atomicity.h 10 Dec 2003 04:50:55 -0000 *************** typedef int _Atomic_word; *** 39,45 **** static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word *__mem, int __val) { register _Atomic_word __result = *__mem; register _Atomic_word __temp; --- 39,45 ---- static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { register _Atomic_word __result = *__mem; register _Atomic_word __temp; *************** __exchange_and_add (volatile _Atomic_wor *** 60,66 **** */ static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word *__mem, int __val) { _Atomic_word __result; short __level, __tmpsr; --- 60,66 ---- */ static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { _Atomic_word __result; short __level, __tmpsr; *************** __exchange_and_add (volatile _Atomic_wor *** 77,96 **** #else ! template ! struct __Atomicity_lock ! { ! static volatile unsigned char _S_atomicity_lock; ! }; ! template volatile unsigned char __Atomicity_lock<__inst>::_S_atomicity_lock = 0; template volatile unsigned char __Atomicity_lock<0>::_S_atomicity_lock; static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word *__mem, int __val) { _Atomic_word __result; --- 77,96 ---- #else ! template ! struct __Atomicity_lock ! { ! static volatile unsigned char _S_atomicity_lock; ! }; ! template volatile unsigned char __Atomicity_lock<__inst>::_S_atomicity_lock = 0; template volatile unsigned char __Atomicity_lock<0>::_S_atomicity_lock; static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { _Atomic_word __result; *************** __exchange_and_add (volatile _Atomic_wor *** 130,140 **** static inline void __attribute__ ((__unused__)) ! __atomic_add (volatile _Atomic_word* __mem, int __val) { // Careful: using add.l with a memory destination is not // architecturally guaranteed to be atomic. ! (void) __exchange_and_add (__mem, __val); } #endif /* !_GLIBCXX_ATOMICITY_H */ --- 130,140 ---- static inline void __attribute__ ((__unused__)) ! __atomic_add(volatile _Atomic_word* __mem, int __val) { // Careful: using add.l with a memory destination is not // architecturally guaranteed to be atomic. ! (void) __exchange_and_add(__mem, __val); } #endif /* !_GLIBCXX_ATOMICITY_H */ Index: config/cpu/mips/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/mips/atomicity.h,v retrieving revision 1.6 diff -c -p -r1.6 atomicity.h *** config/cpu/mips/atomicity.h 20 Oct 2003 18:37:22 -0000 1.6 --- config/cpu/mips/atomicity.h 10 Dec 2003 04:50:55 -0000 *************** typedef int _Atomic_word; *** 34,40 **** static inline int __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word *__mem, int __val) { int __result, __tmp; --- 34,40 ---- static inline int __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { int __result, __tmp; *************** __exchange_and_add (volatile _Atomic_wor *** 60,66 **** static inline void __attribute__ ((__unused__)) ! __atomic_add (volatile _Atomic_word *__mem, int __val) { int __result; --- 60,66 ---- static inline void __attribute__ ((__unused__)) ! __atomic_add(volatile _Atomic_word* __mem, int __val) { int __result; Index: config/cpu/powerpc/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/powerpc/atomicity.h,v retrieving revision 1.5 diff -c -p -r1.5 atomicity.h *** config/cpu/powerpc/atomicity.h 5 Jul 2003 04:05:29 -0000 1.5 --- config/cpu/powerpc/atomicity.h 10 Dec 2003 04:50:55 -0000 *************** *** 1,6 **** // Low-level functions for atomic operations: PowerPC version -*- C++ -*- ! // Copyright (C) 1999, 2000, 2001 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 --- 1,6 ---- // Low-level functions for atomic operations: PowerPC version -*- C++ -*- ! // Copyright (C) 1999, 2000, 2001, 2003 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 *************** typedef int _Atomic_word; *** 40,46 **** static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word* __mem, int __val) { _Atomic_word __tmp, __res; __asm__ __volatile__ ( --- 40,46 ---- static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { _Atomic_word __tmp, __res; __asm__ __volatile__ ( *************** __exchange_and_add (volatile _Atomic_wor *** 59,65 **** static inline void __attribute__ ((__unused__)) ! __atomic_add (volatile _Atomic_word *__mem, int __val) { _Atomic_word __tmp; __asm__ __volatile__ ( --- 59,65 ---- static inline void __attribute__ ((__unused__)) ! __atomic_add(volatile _Atomic_word* __mem, int __val) { _Atomic_word __tmp; __asm__ __volatile__ ( Index: config/cpu/s390/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/s390/atomicity.h,v retrieving revision 1.2 diff -c -p -r1.2 atomicity.h *** config/cpu/s390/atomicity.h 5 Jul 2003 04:05:29 -0000 1.2 --- config/cpu/s390/atomicity.h 10 Dec 2003 04:50:55 -0000 *************** *** 1,6 **** // Low-level functions for atomic operations: S/390 version -*- C++ -*- ! // Copyright (C) 2001 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 --- 1,6 ---- // Low-level functions for atomic operations: S/390 version -*- C++ -*- ! // Copyright (C) 2001, 2003 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 *************** typedef int _Atomic_word; *** 34,40 **** static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word *__mem, int __val) { register _Atomic_word __old_val, __new_val; --- 34,40 ---- static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { register _Atomic_word __old_val, __new_val; *************** __exchange_and_add (volatile _Atomic_wor *** 50,58 **** static inline void __attribute__ ((__unused__)) ! __atomic_add (volatile _Atomic_word *__mem, int __val) { ! __exchange_and_add (__mem, __val); } #endif /* atomicity.h */ --- 50,58 ---- static inline void __attribute__ ((__unused__)) ! __atomic_add(volatile _Atomic_word* __mem, int __val) { ! __exchange_and_add(__mem, __val); } #endif /* atomicity.h */ Index: config/cpu/sparc/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/sparc/atomicity.h,v retrieving revision 1.3 diff -c -p -r1.3 atomicity.h *** config/cpu/sparc/atomicity.h 8 Dec 2003 10:01:01 -0000 1.3 --- config/cpu/sparc/atomicity.h 10 Dec 2003 04:50:55 -0000 *************** typedef long _Atomic_word; *** 36,42 **** static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word *__mem, int __val) { _Atomic_word __tmp1, __tmp2; _Atomic_word __val_extended = __val; --- 36,42 ---- static inline _Atomic_word __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { _Atomic_word __tmp1, __tmp2; _Atomic_word __val_extended = __val; *************** __exchange_and_add (volatile _Atomic_wor *** 55,61 **** static inline void __attribute__ ((__unused__)) ! __atomic_add (volatile _Atomic_word* __mem, int __val) { _Atomic_word __tmp1, __tmp2; _Atomic_word __val_extended = __val; --- 55,61 ---- static inline void __attribute__ ((__unused__)) ! __atomic_add(volatile _Atomic_word* __mem, int __val) { _Atomic_word __tmp1, __tmp2; _Atomic_word __val_extended = __val; *************** __atomic_add (volatile _Atomic_word* __m *** 75,94 **** typedef int _Atomic_word; ! template ! struct __Atomicity_lock ! { ! static unsigned char _S_atomicity_lock; ! }; ! template unsigned char __Atomicity_lock<__inst>::_S_atomicity_lock = 0; template unsigned char __Atomicity_lock<0>::_S_atomicity_lock; static int __attribute__ ((__unused__)) ! __exchange_and_add (volatile _Atomic_word* __mem, int __val) { _Atomic_word __result, __tmp; --- 75,94 ---- typedef int _Atomic_word; ! template ! struct __Atomicity_lock ! { ! static unsigned char _S_atomicity_lock; ! }; ! template unsigned char __Atomicity_lock<__inst>::_S_atomicity_lock = 0; template unsigned char __Atomicity_lock<0>::_S_atomicity_lock; static int __attribute__ ((__unused__)) ! __exchange_and_add(volatile _Atomic_word* __mem, int __val) { _Atomic_word __result, __tmp; *************** __exchange_and_add (volatile _Atomic_wor *** 110,116 **** static void __attribute__ ((__unused__)) ! __atomic_add (volatile _Atomic_word* __mem, int __val) { _Atomic_word __tmp; --- 110,116 ---- static void __attribute__ ((__unused__)) ! __atomic_add(volatile _Atomic_word* __mem, int __val) { _Atomic_word __tmp;