[Predef-contribute] Stratus VOS C Compiler Macro Definitions
Brought to you by:
breese,
tahonermann
From: Green, P. <Pau...@st...> - 2011-08-23 21:06:42
|
Hello, Here is some information about the Stratus VOS operating system, C/C++ compilers, and hardware platforms that can be added to your web pages. Contact me for clarifications. Compilers: Stratus VOS C Identification: __VOSC__ Format: V = Version Description: 0 Example: c __VOSC__ 0 /* The name of this compiler is "c"; this is a K+R compiler that should no longer be used! */ Stratus VOS Standard C Identification: __VOSC__ Format: V = Version Description: 1 Example: cc __VOSC__ 1 /* The name of this compiler is "cc"; this is an ANSI-C compiler. */ Stratus VOS GNU C/C++ Identification: __GNUC__ Format: V = Version Description: The major version number Example: 2.95.2 __GNUC__ 2 /* The name of this compiler is gcc or g++ */ 3.4.6 __GNUC__ 3 Libraries: Not applicable (Stratus has its own C/POSIX libraries; we don't use GLIBC). We do use the standard template libraries for g++. Operating Systems: Stratus VOS or OpenVOS Type: Identification Macro: __VOS__ Description: V = Major Release Example: The value is an integer that identifies the major release number. However, the value is unreliable, as multiple versions of the compiler can co-exist on the same release. Just test to see if the macro is defined. Architectures: All VOS compilers (cc / gcc / g++) define one or more of these macros, as appropriate, for HPPA. Note that our port of gcc / g++ only implements the PA7100 / HPPA11 architecture. __HPPA__ __HPPA11__ __HPPA20__ __PA7100__ __PA8000__ _PA_RISC1_1 _PA_RISC2_0 All VOS compilers (cc / gcc / g++) define all of these macros for IA32. GNU C/C++ defines some additional macros for IA32, as usual. __i386 __IA32__ Note well: The Stratus VOS operating system and compilers are normally BIG ENDIAN on the IA32. Code that assumes that if the __i386 or __IA32__ macros are defined then the system is LITTLE ENDIAN ***will fail***. Code must independently test for endianness; the usual tests for endianness will work fine. (Our compilers do have secret options that can be used to build Little Endian code for certain system programming purposes, so you can't assume that we are only big endian, either). Thanks PG -- Sr. Technical Consultant, Stratus Technologies Inc. Work: +1-978-461-7557; FAX: +1-978-461-3610; Twitter: stratuspaulg |