c++config revision 107606
197403Sobrien// Predefined symbols and macros -*- C++ -*-
297403Sobrien
3169691Skan// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
4169691Skan//
5117397Skan// This file is part of the GNU ISO C++ Library.  This library is free
697403Sobrien// software; you can redistribute it and/or modify it under the
797403Sobrien// terms of the GNU General Public License as published by the
897403Sobrien// Free Software Foundation; either version 2, or (at your option)
997403Sobrien// any later version.
1097403Sobrien
1197403Sobrien// This library is distributed in the hope that it will be useful,
1297403Sobrien// but WITHOUT ANY WARRANTY; without even the implied warranty of
1397403Sobrien// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1497403Sobrien// GNU General Public License for more details.
1597403Sobrien
1697403Sobrien// You should have received a copy of the GNU General Public License along
1797403Sobrien// with this library; see the file COPYING.  If not, write to the Free
1897403Sobrien// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
1997403Sobrien// USA.
20169691Skan
2197403Sobrien// As a special exception, you may use this file as part of a free software
2297403Sobrien// library without restriction.  Specifically, if other files instantiate
2397403Sobrien// templates or use macros or inline functions from this file, or you compile
2497403Sobrien// this file and link it with other files to produce an executable, this
2597403Sobrien// file does not by itself cause the resulting executable to be covered by
2697403Sobrien// the GNU General Public License.  This exception does not however
2797403Sobrien// invalidate any other reasons why the executable file might be covered by
2897403Sobrien// the GNU General Public License.
2997403Sobrien
3097403Sobrien#ifndef _CPP_CPPCONFIG
3197403Sobrien#define _CPP_CPPCONFIG 1
32169691Skan
33169691Skan// Pick up any OS-specific definitions.
34169691Skan#include <bits/os_defines.h>
35169691Skan
36169691Skan// The current version of the C++ library in compressed ISO date format.
37132720Skan#define __GLIBCPP__ 20021119
38132720Skan
3997403Sobrien// This is necessary until GCC supports separate template
4097403Sobrien// compilation.  
4197403Sobrien#define _GLIBCPP_NO_TEMPLATE_EXPORT 1
4297403Sobrien
43169691Skan// This is a hack around not having either pre-compiled headers or
44169691Skan// export compilation. If defined, the io, string, and valarray
45169691Skan// headers will include all the necessary bits. If not defined, the
4697403Sobrien// implementation optimizes the headers for the most commonly-used
47169691Skan// types. For the io library, this means that larger, out-of-line
4897403Sobrien// member functions are only declared, and definitions are not parsed
49169691Skan// by the compiler, but instead instantiated into the library binary.
50169691Skan#define _GLIBCPP_FULLY_COMPLIANT_HEADERS 1
51169691Skan
52169691Skan// To enable older, ARM-style iostreams and other anachronisms use this.
53169691Skan//#define _GLIBCPP_DEPRECATED 1
54169691Skan
55169691Skan// Use corrected code from the committee library group's issues list.
56169691Skan#define _GLIBCPP_RESOLVE_LIB_DEFECTS 1
57169691Skan
58169691Skan// Hopefully temporary workaround to autoconf/m4 issue with quoting '@'.
59169691Skan#define _GLIBCPP_AT_AT "@@"
60169691Skan
61169691Skan// In those parts of the standard C++ library that use a mutex instead
62169691Skan// of a spin-lock, we now unconditionally use GCC's gthr.h mutex
63169691Skan// abstraction layer.  All support to directly map to various
64169691Skan// threading models has been removed.  Note: gthr.h may well map to
65169691Skan// gthr-single.h which is a correct way to express no threads support
66169691Skan// in gcc.  Support for the undocumented _NOTHREADS has been removed.
67169691Skan
68169691Skan// Default to the typically high-speed, pool-based allocator (as
69169691Skan// libstdc++-v2) instead of the malloc-based allocator (libstdc++-v3
70169691Skan// snapshots).  See libstdc++-v3/docs/html/17_intro/howto.html for
71169691Skan// details on why you don't want to override this setting.  Ensure
72169691Skan// that threads are properly configured on your platform before
73169691Skan// assigning blame to the STL container-memory allocator.  After doing
74169691Skan// so, please report any possible issues to libstdc++@gcc.gnu.org .
75169691Skan// Do not define __USE_MALLOC on the command line.  Enforce it here:
76169691Skan#ifdef __USE_MALLOC
77169691Skan#error __USE_MALLOC should only be defined within \
78169691Skanlibstdc++-v3/include/bits/c++config before full recompilation of the library.
79169691Skan#endif
80169691Skan// Define __USE_MALLOC after this point in the file in order to aid debugging
81169691Skan// or globally change allocation policy.  This breaks the ABI, thus
82169691Skan// completely recompile the library.  A patch to better support
83169691Skan// changing the global allocator policy would be probably be accepted.
84169691Skan
85169691Skan// The remainder of the prewritten config is mostly automatic; all the
86169691Skan// user hooks are listed above.
87169691Skan
88169691Skan// End of prewritten config; the discovered settings follow.
89169691Skan