diff options
author | Keith M Wesolowski <wesolows@foobazco.org> | 2014-07-14 18:15:43 +0000 |
---|---|---|
committer | Keith M Wesolowski <wesolows@foobazco.org> | 2014-07-14 18:15:43 +0000 |
commit | bcc902ab131af782d25fde71a21d71ab2bccb677 (patch) | |
tree | 4f4eb16f84eedc791b2a7f6adb73e9e281ca1bbb /usr/src/uts/common/sys | |
parent | 1bce44cb939839753c1f6934c0da4cfe42f02e44 (diff) | |
parent | 5e74f94d8c2a16c2ef7cf2940a157ffabb379c27 (diff) | |
download | illumos-joyent-bcc902ab131af782d25fde71a21d71ab2bccb677.tar.gz |
[illumos-gate merge]
commit 5e74f94d8c2a16c2ef7cf2940a157ffabb379c27
3347 zonecfg(1M) is confused about selection
commit 5a81b4ad6a940aead6f0789e059a6f8fbc678be0
4544 sock2path(4) man page needs to be updated for configuration fragments
commit 2d08521bd15501c8370ba2153b9cca4f094979d0
2964 need POSIX 2008 locale object support
Conflicts:
usr/src/man/man3c/Makefile (copyright)
usr/src/lib/libzonecfg/common/libzonecfg.c (OS-216)
usr/src/lib/libc/sparcv9/Makefile.com (copyright)
usr/src/lib/libc/sparc/Makefile.com (copyright)
Manifests:
usr/src/pkg/manifests/system-header.mf
usr/src/pkg/manifests/system-library.man3c.inc
Diffstat (limited to 'usr/src/uts/common/sys')
-rw-r--r-- | usr/src/uts/common/sys/feature_tests.h | 47 |
1 files changed, 42 insertions, 5 deletions
diff --git a/usr/src/uts/common/sys/feature_tests.h b/usr/src/uts/common/sys/feature_tests.h index e6ababd3d4..f96760e34b 100644 --- a/usr/src/uts/common/sys/feature_tests.h +++ b/usr/src/uts/common/sys/feature_tests.h @@ -23,6 +23,9 @@ * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ +/* + * Copyright 2013 Garrett D'Amore <garrett@damore.org> + */ #ifndef _SYS_FEATURE_TESTS_H #define _SYS_FEATURE_TESTS_H @@ -43,15 +46,16 @@ extern "C" { * 199309L POSIX.1b-1993 compilation (Real Time) * 199506L POSIX.1c-1995 compilation (POSIX Threads) * 200112L POSIX.1-2001 compilation (Austin Group Revision) + * 200809L POSIX.1-2008 compilation */ #if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) #define _POSIX_C_SOURCE 1 #endif /* - * The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, and _STDC_C99 - * are Sun implementation specific macros created in order to compress - * common standards specified feature test macros for easier reading. + * The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS, + * and _STDC_C99 are Sun implementation specific macros created in order to + * compress common standards specified feature test macros for easier reading. * These macros should not be used by the application developer as * unexpected results may occur. Instead, the user should reference * standards(5) for correct usage of the standards feature test macros. @@ -77,6 +81,10 @@ extern "C" { * the C standard. A value of 199901L indicates a * compiler that complies with ISO/IEC 9899:1999, other- * wise known as the C99 standard. + * + * _STRICT_SYMBOLS Used in cases where symbol visibility is restricted + * by the standards, and the user has not explicitly + * relaxed the strictness via __EXTENSIONS__. */ #if defined(_XOPEN_SOURCE) || defined(_POSIX_C_SOURCE) @@ -144,6 +152,14 @@ extern "C" { #endif /* + * Use strict symbol visibility. + */ +#if (defined(_STRICT_STDC) || defined(__XOPEN_OR_POSIX)) && \ + !defined(__EXTENSIONS__) +#define _STRICT_SYMBOLS +#endif + +/* * Large file interfaces: * * _LARGEFILE_SOURCE @@ -222,6 +238,8 @@ extern "C" { * X/Open CAE Specification, Issue 5 (XPG5) * Open Group Technical Standard, Issue 6 (XPG6), also referred to as * IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002. + * Open Group Technical Standard, Issue 7 (XPG7), also referred to as + * IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009. * * XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1). * XPG5 is also referred to as UNIX 98 or the Single Unix Specification, @@ -229,6 +247,7 @@ extern "C" { * XPG6 is the result of a merge of the X/Open and POSIX specifications * and as such is also referred to as IEEE Std. 1003.1-2001 in * addition to UNIX 03 and SUSv3. + * XPG7 is also referred to as UNIX 08 and SUSv4. * * When writing a conforming X/Open application, as per the specification * requirements, the appropriate feature test macros must be defined at @@ -241,6 +260,7 @@ extern "C" { * _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 * _XOPEN_SOURCE = 500 XPG5 * _XOPEN_SOURCE = 600 (or POSIX_C_SOURCE=200112L) XPG6 + * _XOPEN_SOURCE = 700 (or POSIX_C_SOURCE=200809L) XPG7 * * In order to simplify the guards within the headers, the following * implementation private test macros have been created. Applications @@ -260,6 +280,7 @@ extern "C" { * _XPG4_2 X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS) * _XPG5 X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2) * _XPG6 Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3) + * _XPG7 Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4) */ /* X/Open Portability Guide, Issue 3 */ @@ -294,6 +315,19 @@ extern "C" { #define _POSIX_C_SOURCE 200112L #undef _XOPEN_SOURCE #define _XOPEN_SOURCE 600 + +/* Open Group Technical Standard, Issue 7 */ +#elif (_XOPEN_SOURCE - 0 == 700) || (_POSIX_C_SOURCE - 0 == 200809L) +#define _XPG7 +#define _XPG6 +#define _XPG5 +#define _XPG4_2 +#define _XPG4 +#define _XPG3 +#undef _POSIX_C_SOURCE +#define _POSIX_C_SOURCE 200809L +#undef _XOPEN_SOURCE +#define _XOPEN_SOURCE 700 #endif /* @@ -304,12 +338,15 @@ extern "C" { * with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application. * _XOPEN_VERSION defined with a value of 500 indicates an XPG5 (UNIX 98) * application and with a value of 600 indicates an XPG6 (UNIX 03) - * application. The appropriate version is determined by the use of the + * application and with a value of 700 indicates an XPG7 (UNIX 08). + * The appropriate version is determined by the use of the * feature test macros described earlier. The value of _XOPEN_VERSION * defaults to 3 otherwise indicating support for XPG3 applications. */ #ifndef _XOPEN_VERSION -#ifdef _XPG6 +#if defined(_XPG7) +#define _XOPEN_VERSION 700 +#elif defined(_XPG6) #define _XOPEN_VERSION 600 #elif defined(_XPG5) #define _XOPEN_VERSION 500 |