HP-UX Reference (11i v2 07/12) - 5 Miscellaneous (vol 9)

s
stdsyms(5) stdsyms(5)
_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 provideds a clean namespace whenever
_AES_SOURCE is
defined.
_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
compatibility-mode compiler (cc(1) without the
-Aa option), the HP-UX namespace is pro-
vided by default. 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 compiler 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 prepro-
cessor, use the
-Ac option of cc(1). The compatibility 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.
_XPG2 The _XPG2 macro can be defined when using the compatibility-mode compiler to obtain
XPG2 functionality. This provides XPG2 specified function declarations and macros in the
HP-UX namespace. Note that the values obtained from most of the macros available when
using this option are now available at run-time via the
pathconf() , fpathconf() ,
and sysconf() system calls (see pathconf(2) and sysconf(2)). Use of the _XPG2 macro
is strongly discouraged because it gives access to obsolete functionality. Note that no func-
tion prototypes are provided when using this feature test macro.
_XPG3 The _XPG3 feature test macro is defined automatically if the programmer has requested
the XPG3 namespace (i.e., defined _XOPEN_SOURCE, but not some other conflicting
namespace such as _XPG2 or _XPG4).
_XPG4 The _XPG4 feature test macro is provided so that the programmer can obtain the XPG4
namespace, since it differs slightly from the _XPG3 namespace. In order to obtain the
XPG4 namespace, the programmer must define both the _XOPEN_SOURCE and _XPG4
feature test macros. The _XOPEN_SOURCE and _XPG4 feature test macros can be
defined, either by using compiler options (-D_XOPEN_SOURCE -D_XPG4) or by using
#define directives in the source files before any #include directives.
_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.
_SVID3 The SVID3 macro can be defined to obtain SVID3 function prototypes. The compiler flag,
-D_SVID3, needs to be defined to indicate that an application is written to meet SVID3
450 Hewlett-Packard Company 2 HP-UX 11i Version 2: December 2007 Update