By default, the header files enable APIs in the C RTL provided by the version of the operating system on which the compilation occurs. This is accomplished by the predefined setting of the __VMS_VER macro, as described in the VSI C User's Guide for OpenVMS Systems. For example, compiling on OpenVMS Version 6.2 causes only C RTL APIs from Version 6.2 and earlier to be made available. Another example of the use of the __VMS_VER macro is support for the 64-bit versions of C RTL functions available with OpenVMS Alpha Version 7.0 and higher. In all header files, functions that provide 64-bit support are conditionalized so that they are visible only if __VMS_VER indicates a version of OpenVMS that is greater than or equal to 7.0. To target an older version of the operating system, do the following: 1. Define a logical DECC$SHR to point to the old version of DECC$SHR. The compiler uses a table from DECC$SHR to perform routine name prefixing. 2. Define __VMS_VER appropriately, either with the /DEFINE qualifier or with a combination of the #undef and #define preprocessor directives. With /DEFINE, you may need to disable the warning regarding redefinition of a predefined macro. Targeting a newer version of the operating system might not always be possible. For some versions, you can expect that the new DECC$SHR.EXE will require new features of the operating system that are not present. For such versions, the defining if the logical DECC$SHR in Step 1 would cause the compilation to fail. To override the value of __VMS_VER, define __VMS_VER_OVERRIDE on the compiler command line. Defining __VMS_VER_OVERRIDE without a value sets __VMS_VER to the maximum value.