HP-UX Reference (11i v3 07/02) - 5 Miscellaneous Topics (vol 9)

s
stdsyms(5) stdsyms(5)
_XOPEN_SOURCE_EXTENDED
As documented in the XPG, the programmer is required to define the
_XOPEN_SOURCE_EXTENDED
feature test macro to obtain
XPG4 v2
namespace and functionality. This feature test macro can be defined either by
using compiler option (-D_XOPEN_SOURCE_EXTENDED
) or by using
#define directives in the source files before any
#include directives.
_AES_SOURCE As documented in the "OSF AES/OS" standard, the programmer is required to
define the _AES_SOURCE feature test macro to obtain OSF functionality. This
feature test macro can be defined, either by using compiler options
(-D_AES_SOURCE ) or by using
#define directives in the source files before
any
#include directives. Although the AES does not specify any namespace
pollution rules, the other standards have instituted such rules. Therefore HP-
UX provides a clean namespace whenever _AES_SOURCE is defined. Use of
_AES_SOURCE is strongly discouraged as this functionality will be removed in a
future release of HP-UX.
_HPUX_SOURCE The programmer can define the
_HPUX_SOURCE feature test macro to obtain
the HP-UX namespace and complete HP-UX functionality. Note that the HP-UX
namespace is currently a superset of all of the above mentioned namespaces.
When using the compiler with default options (
cc) or the compiler with
compatibility-mode options (
cc command without the -Aa option), the HP-UX
namespace is provided by default (see cc(1)). The programmer must request one
of the other namespaces as described above to obtain the appropriate subset of
the HP-UX namespace. When using the strict ANSI-C-mode compiler (
cc
-Aa
), the programmer must specifically request a broader namespace.
The _HPUX_SOURCE feature test macro can be defined, either by using com-
piler options (-D_HPUX_SOURCE
) or by using #define directives in the
source files before any
#include directives.
The following is a list of miscellaneous feature test macros that provide various additional features.
__cplusplus This symbol is automatically defined by the HP C++ compiler. Defining this
macro enables the C++ function prototypes in system header files.
The default namespace for HP C++ is the ANSI-C namespace. To obtain another
namespace define the appropriate feature test macro.
HP C++ uses the ANSI-C preprocessor by default. To get the compatibility mode
preprocessor, use the
-Ac option of the cc command (see cc(1)). The compati-
bility mode preprocessor uses the HP-UX namespace (_HPUX_SOURCE ).
_POSIX1_1988 This feature test macro should be defined when the POSIX.1-1988
namespace is required. It should be used in conjunction with the
_POSIX_SOURCE macro if the default POSIX.1-1990 namespace is not
desired.
This macro is defined automatically whenever
_AES_SOURCE or _XPG3 is
requested.
_XPG3 The _XPG3 feature test macro is provided so that the programmer can obtain
the XPG3 namespace, since it differs slightly from the _XPG4 namespace. In
order to obtain the XPG3 namespace, the programmer must define both the
_XOPEN_SOURCE and _XPG3 feature test macros. The _XOPEN_SOURCE
and _XPG3 feature test macros can be defined, either by using compiler options
(-D_XOPEN_SOURCE -D_XPG3) or by using #define directives in the
source files before any #include directives. Use of this macro is strongly
discouraged as this functionality will be removed in a future release of HP-UX.
_XPG4 The _XPG4 feature test macro is defined automatically if the programmer has
requested the XPG4 namespace (that is, defined _XOPEN_SOURCE, but not
some other conflicting namespace such as _XPG3).
_SVID2 The _SVID2 macro can be defined when using the compatibility mode compiler
to obtain SVID2 function return types in the HP-UX namespace. The default
return types of many functions have since been changed in the HP-UX operating
system to align with the ANSI-C, POSIX, X/Open, and OSF standards. Use of
HP-UX 11i Version 3: February 2007 2 Hewlett-Packard Company 495