X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libstdc%2B%2B-v3%2Finclude%2Fbits%2Fc%2B%2Bconfig;h=eb8dc798f0b4727eb273215b8d00372252ab5135;hb=7956a9b7781b808c246e2a7b98c35b3355c66576;hp=95cda933a866ab4835a35aeb16df11ba24c6e20d;hpb=5006ae6b948a045f009ae580e0107b6948f0ee77;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config index 95cda933a86..eb8dc798f0b 100644 --- a/libstdc++-v3/include/bits/c++config +++ b/libstdc++-v3/include/bits/c++config @@ -1,6 +1,6 @@ // Predefined symbols and macros -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -16,7 +16,7 @@ // You should have received a copy of the GNU General Public License along // with this library; see the file COPYING. If not, write to the Free -// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. // As a special exception, you may use this file as part of a free software @@ -34,29 +34,8 @@ // Pick up any OS-specific definitions. #include -// The current version of the C++ library in compressed ISO date format. -#define __GLIBCXX__ 20041214 - -// Allow use of "export template." This is currently not a feature -// that g++ supports. -// #define _GLIBCXX_EXPORT_TEMPLATE 1 - -// Allow use of the GNU syntax extension, "extern template." This -// extension is fully documented in the g++ manual, but in a nutshell, -// it inhibits all implicit instantiations and is used throughout the -// library to avoid multiple weak definitions for required types that -// are already explicitly instantiated in the library binary. This -// substantially reduces the binary size of resulting executables. -#ifndef _GLIBCXX_EXTERN_TEMPLATE -# define _GLIBCXX_EXTERN_TEMPLATE 1 -#endif - -// Certain function definitions that are meant to be overridable from -// user code are decorated with this macro. For some targets, this -// macro causes these definitions to be weak. -#ifndef _GLIBCXX_WEAK_DEFINITION -# define _GLIBCXX_WEAK_DEFINITION -#endif +// Pick up any CPU-specific definitions. +#include // Debug mode support. Debug mode basic_string is not allowed to be // associated with std, because of locale and exception link @@ -70,6 +49,7 @@ namespace __gnu_debug #ifdef _GLIBCXX_DEBUG # define _GLIBCXX_STD __gnu_norm +# define _GLIBCXX_EXTERN_TEMPLATE 0 namespace __gnu_norm { using namespace std; @@ -78,10 +58,33 @@ namespace std { using namespace __gnu_debug_def __attribute__ ((strong)); } +# if __NO_INLINE__ && !__GXX_WEAK__ +# warning debug mode without inlining may fail due to lack of weak symbols +# endif #else # define _GLIBCXX_STD std #endif +// Allow use of "export template." This is currently not a feature +// that g++ supports. +// #define _GLIBCXX_EXPORT_TEMPLATE 1 + +// Allow use of the GNU syntax extension, "extern template." This +// extension is fully documented in the g++ manual, but in a nutshell, +// it inhibits all implicit instantiations and is used throughout the +// library to avoid multiple weak definitions for required types that +// are already explicitly instantiated in the library binary. This +// substantially reduces the binary size of resulting executables. +#ifndef _GLIBCXX_EXTERN_TEMPLATE +# define _GLIBCXX_EXTERN_TEMPLATE 1 +#endif + +// Certain function definitions that are meant to be overridable from +// user code are decorated with this macro. For some targets, this +// macro causes these definitions to be weak. +#ifndef _GLIBCXX_WEAK_DEFINITION +# define _GLIBCXX_WEAK_DEFINITION +#endif // The remainder of the prewritten config is automatic; all the // user hooks are listed above.