Ne.app NeANT
The Ne.app NeANT User module of the NeANT distribution.
_config-xlc.h
Go to the documentation of this file.
1
32// _THREAD_SAFE defined by the xlC_r compiler driver
33
34#ifndef _RWSTD_NO_PURE_C_HEADERS
35# define _RWSTD_NO_PURE_C_HEADERS
36#endif // _RWSTD_NO_PURE_C_HEADERS
37
38#if defined _RWSTD_NO_NEW_HEADER
39# undef _RWSTD_NO_NEW_HEADER
40#endif // _RWSTD_NO_NEW_HEADER
41
42// our <cxxx> libc headers put the libc functions in namespace std
43#ifdef _RWSTD_NO_LIBC_IN_STD
44# undef _RWSTD_NO_LIBC_IN_STD
45#endif // _RWSTD_NO_LIBC_IN_STD
46
47#ifndef _RWSTD_NO_DEPRECATED_C_HEADERS
48# define _RWSTD_NO_DEPRECATED_C_HEADERS
49#endif
50
51// static data members of cass templates aren't properly collapsed
52// (compiler emits one copy per each translation unit that contains
53// the definition of the template member)
54#define _RWSTD_NO_COLLAPSE_TEMPLATE_STATICS
55
56// the above prevents correct static mutex initialization
57// (but the alternative approach is also unreliable)
58#define _RWSTD_NO_STATIC_MUTEX_INIT
59
60// VisualAge for C++ version >= 5.0.2.0, when the tempinc model
61// (which makes use of implicit inclusion) is in effect (i.e.,
62 // when neither of -qtemplateregistry or -qnotempinc is specified
63// on the command line) the compiler defines the macro __TEMPINC__
64#if __IBMCPP__ < 502 || !defined (__TEMPINC__)
65 // override the autodetected setting of the macro
66# undef _RWSTD_NO_IMPLICIT_INCLUSION
67# define _RWSTD_NO_IMPLICIT_INCLUSION
68#endif
69
70#if __IBMCPP__ >= 502 && defined (__TEMPINC__)
71 // override the autodetected setting of the macro
72# undef _RWSTD_NO_IMPLICIT_INCLUSION
73#endif // VAC++ >= 5.0.2 && __TEMPINC__
74
75#if !defined (_RWSTD_WCTRANS_T)
76# undef _RWSTD_NO_WCTRANS_T
77# define _RWSTD_WCTRANS_T win_t(*wctrans_t)(wint_t)
78#endif // _RWSTD_WCTRANS_T
79
80#ifdef _RWSTD_OS_AIX
81 // operator new and delete is not reliably replaceable across
82 // shared library boundaries, which includes the shared library
83 // version of the language support library
84# define _RWSTD_NO_REPLACEABLE_NEW_DELETE
85
86# if (8 == _RWSTD_LONG_SIZE)
87 // avoid using strtof() in LP64 due to bug #379 (PMR 02164)
88# ifndef _RWSTD_NO_STRTOF
89# define _RWSTD_NO_STRTOF
90# endif // _RWSTD_NO_STRTOF
91# ifndef _RWSTD_NO_STRTOF_IN_LIBC
92# define _RWSTD_NO_STRTOF_IN_LIBC
93# endif // _RWSTD_NO_STRTOF_IN_LIBC
94# endif // REENTRANT && LP64
95#endif // AIX
96
97#if __IBMCPP__ <= 800
98# ifndef _RWSTD_NO_EXTERN_TEMPLATE
99 // disable extern template to work around an XLC++ 8.0 bug
100 // (see STDCXX-379)
101# define _RWSTD_NO_EXTERN_TEMPLATE
102# endif // _RWSTD_NO_EXTERN_TEMPLATE
103#endif // XLC++ 8.0 or prior
104
105#if __IBMCPP__ == 800
106
107# if !defined (__TEMPINC__) && defined (_RWSTD_NO_INSTANTIATE_DEFAULT_ARGS)
108 // disable explicit instantiation directives occuring prior
109 // the definition of out-of-line member functions of class
110 // templates in .cc files (i.e., prior their explicit
111 // #inclusion at the bottom of each header)
112# ifndef _RWSTD_NO_EXPLICIT_INSTANTIATION_BEFORE_DEFINITION
113# define _RWSTD_NO_EXPLICIT_INSTANTIATION_BEFORE_DEFINITION
114# endif
115# ifndef _RWSTD_NO_EXTERN_TEMPLATE_BEFORE_DEFINITION
116# define _RWSTD_NO_EXTERN_TEMPLATE_BEFORE_DEFINITION
117# endif
118# endif // !__TEMPINC__ && _RWSTD_NO_INSTANTIATE_DEFAULT_ARGS
119
120# ifndef _RWSTDDEBUG
121 // work around an XLC++ 8.0 ICE (STDCXX-159)
122# if defined (_RWSTD_NO_EXTERN_TEMPLATE)
123# define _RWSTD_NO_EXPLICIT_INSTANTIATION
124# endif // _RWSTD_NO_EXTERN_TEMPLATE
125# endif // without debugging
126
127#endif // XLC++ 8.0
128
129
130#ifndef __TEMPINC__
131 // avoid VAC++ 7.0 diagnostic 1540-2910 (I) The template uses
132 // a file organization for tempinc, but tempinc is not being
133 // used. See bug #450
134
135 // prevent warnings about VAC++ being unable to find
136 // source for (intentionally undefined) member functions
137 // of class templates
138# define _RWSTD_NO_UNDEFINED_TEMPLATES
139#endif // __TEMPINC__
140
141#if (__IBMCPP__ >= 700) && !defined(__EXCEPTIONS)
142 // disable exceptions when the macro __EXCEPTIONS
143 // is not #defined by the compiler, e.g., when
144 // the -qnoeh option is used
145# ifndef _RWSTD_NO_EXCEPTIONS
146# define _RWSTD_NO_EXCEPTIONS
147# endif // _RWSTD_NO_EXCEPTIONS
148#endif // __EXCEPTIONS
149
150
151 // avoid using autodetected libc headers
152#undef _RWSTD_ANSI_C_ASSERT_H
153#undef _RWSTD_ANSI_C_CTYPE_H
154#undef _RWSTD_ANSI_C_ERRNO_H
155#undef _RWSTD_ANSI_C_FLOAT_H
156#undef _RWSTD_ANSI_C_ISO646_H
157#undef _RWSTD_ANSI_C_LIMITS_H
158#undef _RWSTD_ANSI_C_LOCALE_H
159#undef _RWSTD_ANSI_C_MATH_H
160#undef _RWSTD_ANSI_C_SETJMP_H
161#undef _RWSTD_ANSI_C_SIGNAL_H
162#undef _RWSTD_ANSI_C_STDARG_H
163#undef _RWSTD_ANSI_C_STDDEF_H
164#undef _RWSTD_ANSI_C_STDIO_H
165#undef _RWSTD_ANSI_C_STDLIB_H
166#undef _RWSTD_ANSI_C_STRING_H
167#undef _RWSTD_ANSI_C_TIME_H
168#undef _RWSTD_ANSI_C_WCHAR_H
169#undef _RWSTD_ANSI_C_WCTYPE_H