314 #undef _POSIX_C_SOURCE
315 #define _POSIX_C_SOURCE 200112L
316 #undef _XOPEN_SOURCE
317 #define _XOPEN_SOURCE 600
318
319 /* Open Group Technical Standard, Issue 7 */
320 #elif (_XOPEN_SOURCE - 0 == 700) || (_POSIX_C_SOURCE - 0 == 200809L)
321 #define _XPG7
322 #define _XPG6
323 #define _XPG5
324 #define _XPG4_2
325 #define _XPG4
326 #define _XPG3
327 #undef _POSIX_C_SOURCE
328 #define _POSIX_C_SOURCE 200809L
329 #undef _XOPEN_SOURCE
330 #define _XOPEN_SOURCE 700
331 #endif
332
333 /*
334 * _XOPEN_VERSION is defined by the X/Open specifications and is not
335 * normally defined by the application, except in the case of an XPG4
336 * application. On the implementation side, _XOPEN_VERSION defined with
337 * the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined
338 * with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application.
339 * _XOPEN_VERSION defined with a value of 500 indicates an XPG5 (UNIX 98)
340 * application and with a value of 600 indicates an XPG6 (UNIX 03)
341 * application and with a value of 700 indicates an XPG7 (UNIX 08).
342 * The appropriate version is determined by the use of the
343 * feature test macros described earlier. The value of _XOPEN_VERSION
344 * defaults to 3 otherwise indicating support for XPG3 applications.
345 */
346 #ifndef _XOPEN_VERSION
347 #if defined(_XPG7)
348 #define _XOPEN_VERSION 700
349 #elif defined(_XPG6)
350 #define _XOPEN_VERSION 600
351 #elif defined(_XPG5)
352 #define _XOPEN_VERSION 500
353 #elif defined(_XPG4_2)
|
314 #undef _POSIX_C_SOURCE
315 #define _POSIX_C_SOURCE 200112L
316 #undef _XOPEN_SOURCE
317 #define _XOPEN_SOURCE 600
318
319 /* Open Group Technical Standard, Issue 7 */
320 #elif (_XOPEN_SOURCE - 0 == 700) || (_POSIX_C_SOURCE - 0 == 200809L)
321 #define _XPG7
322 #define _XPG6
323 #define _XPG5
324 #define _XPG4_2
325 #define _XPG4
326 #define _XPG3
327 #undef _POSIX_C_SOURCE
328 #define _POSIX_C_SOURCE 200809L
329 #undef _XOPEN_SOURCE
330 #define _XOPEN_SOURCE 700
331 #endif
332
333 /*
334 * As another simplification attempt for the rest of our headers, we
335 * define the following macros to indicate that a specific XPG standard
336 * is in force, AND symbols should be restricted. This lets us prune
337 * symbols that should not be visible under a given standard. These should
338 * not be used by applications directly.
339 */
340 #if defined(_STRICT_SYMBOLS) && defined(_XPG3)
341 #define _STRICT_XPG3
342 #endif
343 #if defined(_STRICT_SYMBOLS) && defined(_XPG4)
344 #define _STRICT_XPG4
345 #endif
346 #if defined(_STRICT_SYMBOLS) && defined(_XPG4_2)
347 #define _STRICT_XPG4_2
348 #endif
349 #if defined(_STRICT_SYMBOLS) && defined(_XPG5)
350 #define _STRICT_XPG5
351 #endif
352 #if defined(_STRICT_SYMBOLS) && defined(_XPG6)
353 #define _STRICT_XPG6
354 #endif
355 #if defined(_STRICT_SYMBOLS) && defined(_XPG7)
356 #define _STRICT_XPG7
357 #endif
358
359 /*
360 * _XOPEN_VERSION is defined by the X/Open specifications and is not
361 * normally defined by the application, except in the case of an XPG4
362 * application. On the implementation side, _XOPEN_VERSION defined with
363 * the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined
364 * with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application.
365 * _XOPEN_VERSION defined with a value of 500 indicates an XPG5 (UNIX 98)
366 * application and with a value of 600 indicates an XPG6 (UNIX 03)
367 * application and with a value of 700 indicates an XPG7 (UNIX 08).
368 * The appropriate version is determined by the use of the
369 * feature test macros described earlier. The value of _XOPEN_VERSION
370 * defaults to 3 otherwise indicating support for XPG3 applications.
371 */
372 #ifndef _XOPEN_VERSION
373 #if defined(_XPG7)
374 #define _XOPEN_VERSION 700
375 #elif defined(_XPG6)
376 #define _XOPEN_VERSION 600
377 #elif defined(_XPG5)
378 #define _XOPEN_VERSION 500
379 #elif defined(_XPG4_2)
|