features.h
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020: #ifndef _FEATURES_H
021: #define _FEATURES_H 1
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
057:
058:
059:
060:
061:
062:
063:
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078:
079:
080:
081:
082:
083:
084:
085:
086:
087:
088:
089:
090:
091:
092:
093:
094:
095:
096:
097:
098: #undef __USE_ISOC99
099: #undef __USE_ISOC95
100: #undef __USE_POSIX
101: #undef __USE_POSIX2
102: #undef __USE_POSIX199309
103: #undef __USE_POSIX199506
104: #undef __USE_XOPEN
105: #undef __USE_XOPEN_EXTENDED
106: #undef __USE_UNIX98
107: #undef __USE_XOPEN2K
108: #undef __USE_XOPEN2KXSI
109: #undef __USE_XOPEN2K8
110: #undef __USE_XOPEN2K8XSI
111: #undef __USE_LARGEFILE
112: #undef __USE_LARGEFILE64
113: #undef __USE_FILE_OFFSET64
114: #undef __USE_BSD
115: #undef __USE_SVID
116: #undef __USE_MISC
117: #undef __USE_ATFILE
118: #undef __USE_GNU
119: #undef __USE_REENTRANT
120: #undef __USE_FORTIFY_LEVEL
121: #undef __FAVOR_BSD
122: #undef __KERNEL_STRICT_NAMES
123:
124:
125:
126: #ifndef _LOOSE_KERNEL_NAMES
127: # define __KERNEL_STRICT_NAMES
128: #endif
129:
130:
131: #define __USE_ANSI 1
132:
133:
134:
135:
136:
137:
138:
139:
140: #if defined __GNUC__ && defined __GNUC_MINOR__
141: # define __GNUC_PREREQ(maj, min) \
142: ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
143: #else
144: # define __GNUC_PREREQ(maj, min) 0
145: #endif
146:
147:
148:
149: #if defined _BSD_SOURCE && \
150: !(defined _POSIX_SOURCE || defined _POSIX_C_SOURCE || \
151: defined _XOPEN_SOURCE || defined _GNU_SOURCE || defined _SVID_SOURCE)
152: # define __FAVOR_BSD 1
153: #endif
154:
155:
156: #ifdef _GNU_SOURCE
157: # undef _ISOC95_SOURCE
158: # define _ISOC95_SOURCE 1
159: # undef _ISOC99_SOURCE
160: # define _ISOC99_SOURCE 1
161: # undef _POSIX_SOURCE
162: # define _POSIX_SOURCE 1
163: # undef _POSIX_C_SOURCE
164: # define _POSIX_C_SOURCE 200809L
165: # undef _XOPEN_SOURCE
166: # define _XOPEN_SOURCE 700
167: # undef _XOPEN_SOURCE_EXTENDED
168: # define _XOPEN_SOURCE_EXTENDED 1
169: # undef _LARGEFILE64_SOURCE
170: # define _LARGEFILE64_SOURCE 1
171: # undef _BSD_SOURCE
172: # define _BSD_SOURCE 1
173: # undef _SVID_SOURCE
174: # define _SVID_SOURCE 1
175: # undef _ATFILE_SOURCE
176: # define _ATFILE_SOURCE 1
177: #endif
178:
179:
180:
181: #if (!defined __STRICT_ANSI__ && !defined _ISOC99_SOURCE && \
182: !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE && \
183: !defined _XOPEN_SOURCE && !defined _BSD_SOURCE && !defined _SVID_SOURCE)
184: # define _BSD_SOURCE 1
185: # define _SVID_SOURCE 1
186: #endif
187:
188:
189:
190:
191:
192: #if (defined _ISOC99_SOURCE || defined _ISOC9X_SOURCE \
193: || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
194: # define __USE_ISOC99 1
195: #endif
196:
197:
198: #if (defined _ISOC99_SOURCE || defined _ISOC9X_SOURCE \
199: || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199409L))
200: # define __USE_ISOC95 1
201: #endif
202:
203:
204:
205: #if ((!defined __STRICT_ANSI__ || (_XOPEN_SOURCE - 0) >= 500) && \
206: !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE)
207: # define _POSIX_SOURCE 1
208: # if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500
209: # define _POSIX_C_SOURCE 2
210: # elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 600
211: # define _POSIX_C_SOURCE 199506L
212: # elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 700
213: # define _POSIX_C_SOURCE 200112L
214: # else
215: # define _POSIX_C_SOURCE 200809L
216: # endif
217: # define __USE_POSIX_IMPLICITLY 1
218: #endif
219:
220: #if defined _POSIX_SOURCE || _POSIX_C_SOURCE >= 1 || defined _XOPEN_SOURCE
221: # define __USE_POSIX 1
222: #endif
223:
224: #if defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 2 || defined _XOPEN_SOURCE
225: # define __USE_POSIX2 1
226: #endif
227:
228: #if (_POSIX_C_SOURCE - 0) >= 199309L
229: # define __USE_POSIX199309 1
230: #endif
231:
232: #if (_POSIX_C_SOURCE - 0) >= 199506L
233: # define __USE_POSIX199506 1
234: #endif
235:
236: #if (_POSIX_C_SOURCE - 0) >= 200112L
237: # define __USE_XOPEN2K 1
238: # undef __USE_ISOC95
239: # define __USE_ISOC95 1
240: # undef __USE_ISOC99
241: # define __USE_ISOC99 1
242: #endif
243:
244: #if (_POSIX_C_SOURCE - 0) >= 200809L
245: # define __USE_XOPEN2K8 1
246: # undef _ATFILE_SOURCE
247: # define _ATFILE_SOURCE 1
248: #endif
249:
250: #ifdef _XOPEN_SOURCE
251: # define __USE_XOPEN 1
252: # if (_XOPEN_SOURCE - 0) >= 500
253: # define __USE_XOPEN_EXTENDED 1
254: # define __USE_UNIX98 1
255: # undef _LARGEFILE_SOURCE
256: # define _LARGEFILE_SOURCE 1
257: # if (_XOPEN_SOURCE - 0) >= 600
258: # if (_XOPEN_SOURCE - 0) >= 700
259: # define __USE_XOPEN2K8 1
260: # define __USE_XOPEN2K8XSI 1
261: # endif
262: # define __USE_XOPEN2K 1
263: # define __USE_XOPEN2KXSI 1
264: # undef __USE_ISOC95
265: # define __USE_ISOC95 1
266: # undef __USE_ISOC99
267: # define __USE_ISOC99 1
268: # endif
269: # else
270: # ifdef _XOPEN_SOURCE_EXTENDED
271: # define __USE_XOPEN_EXTENDED 1
272: # endif
273: # endif
274: #endif
275:
276: #ifdef _LARGEFILE_SOURCE
277: # define __USE_LARGEFILE 1
278: #endif
279:
280: #ifdef _LARGEFILE64_SOURCE
281: # define __USE_LARGEFILE64 1
282: #endif
283:
284: #if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64
285: # define __USE_FILE_OFFSET64 1
286: #endif
287:
288: #if defined _BSD_SOURCE || defined _SVID_SOURCE
289: # define __USE_MISC 1
290: #endif
291:
292: #ifdef _BSD_SOURCE
293: # define __USE_BSD 1
294: #endif
295:
296: #ifdef _SVID_SOURCE
297: # define __USE_SVID 1
298: #endif
299:
300: #ifdef _ATFILE_SOURCE
301: # define __USE_ATFILE 1
302: #endif
303:
304: #ifdef _GNU_SOURCE
305: # define __USE_GNU 1
306: #endif
307:
308: #if defined _REENTRANT || defined _THREAD_SAFE
309: # define __USE_REENTRANT 1
310: #endif
311:
312: #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
313: && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
314: # if _FORTIFY_SOURCE > 1
315: # define __USE_FORTIFY_LEVEL 2
316: # else
317: # define __USE_FORTIFY_LEVEL 1
318: # endif
319: #else
320: # define __USE_FORTIFY_LEVEL 0
321: #endif
322:
323:
324: #include <bits/predefs.h>
325:
326:
327: #define __STDC_ISO_10646__ 200009L
328:
329:
330:
331:
332:
333:
334:
335: #undef __GNU_LIBRARY__
336: #define __GNU_LIBRARY__ 6
337:
338:
339:
340: #define __GLIBC__ 2
341: #define __GLIBC_MINOR__ 15
342:
343: #define __GLIBC_PREREQ(maj, min) \
344: ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
345:
346:
347: #if defined __GNUC__ \
348: || (defined __PGI && defined __i386__ ) \
349: || (defined __INTEL_COMPILER && (defined __i386__ || defined __ia64__)) \
350: || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
351: # define __GLIBC_HAVE_LONG_LONG 1
352: #endif
353:
354:
355: #ifndef __ASSEMBLER__
356: # ifndef _SYS_CDEFS_H
357: # include <sys/cdefs.h>
358: # endif
359:
360:
361:
362: # if defined __USE_FILE_OFFSET64 && !defined __REDIRECT
363: # define __USE_LARGEFILE 1
364: # define __USE_LARGEFILE64 1
365: # endif
366:
367: #endif
368:
369:
370: #if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
371: && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__ \
372: && defined __extern_inline
373: # define __USE_EXTERN_INLINES 1
374: #endif
375:
376:
377:
378: #if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
379: && (defined _LIBC || !defined __OPTIMIZE_SIZE__) && !defined __NO_INLINE__ \
380: && defined __extern_inline
381: # define __USE_EXTERN_INLINES_IN_LIBC 1
382: #endif
383:
384:
385:
386:
387:
388:
389: #include <gnu/stubs.h>
390:
391:
392: #endif
393:
© Andrew Scott 2006 -
2024,
All Rights Reserved