z/OS Language Environment Programming Guide for 64-bit Virtual Addressing Mode
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Downward compatibility considerations

z/OS Language Environment Programming Guide for 64-bit Virtual Addressing Mode
SA38-0689-00

Language Environment-conforming AMODE 64 applications cannot run on any release prior to z/OS® Version 1 Release 6. As of z/OS Version 1 Release 7, Language Environment provides downward compatibility support for Language Environment-conforming AMODE 64 applications. Assuming that required programming guidelines and restrictions are observed, this support enables programmers to develop applications on higher release levels of the operating system, for deployment on execution platforms that are running lower release levels of the operating system. For example, you may use z/OS V1R7 (and Language Environment) on a development system where applications are coded, link edited, and tested, while using z/OS V1R6 (and Language Environment) on their production systems where the finished application modules are deployed.

Downward compatibility support is not the roll-back of new function to prior releases of the operating system. Applications developed exploiting the downward compatibility support must not use Language Environment function that is unavailable on the lower release of the operating system where the application will be deployed. The downward compatibility support includes toleration PTFs for lower releases of the operating system (specific PTF numbers can be found in the PSP buckets), to assist in diagnosis of applications that violate the programming requirements for this support.

The downward compatibility support provided by z/OS V1R7 and later, and by the toleration PTFs, does not change Language Environment's upward compatibility. That is, applications coded and link-edited with one release of Language Environment will continue to execute on later releases of Language Environment, without a need to recompile or relink-edit the application, independent of the downward compatibility support.

The application requirements and programming guidelines for downward compatibility are:
  • The application must only use Language Environment function that is available on the release level of the operating system used on the target deployment system.
  • The application must only use Language Environment function that is available on the release level of the operating system used for developing and link-editing the application, by using the appropriate Language Environment object libraries, header files, and macros.
  • The release level of the operating system used for application development and link-editing must be at least the level that is the prerequisite of the compiler products (XL C/C++) that are used to develop the application.
  • The release level of the operating system used on the target deployment system must be at least the level that is the prerequisite of the compiler products that are used to develop the application.
  • The release level of the operating system used for application development and link-editing must be at least z/OS V1R6 for Language Environment-conforming AMODE 64 applications.
  • The program object format of the application must be no greater than the highest level supported on the target deployment system.
The term "Language Environment function" used in the discussion of downward compatibility support refers to:
  • Language Environment callable services (see z/OS Language Environment Programming Reference).
  • Language Environment runtime options
  • C/C++ library functions
  • UNIX branding functions
  • Other new language functionality that has an explicit operating system release prerequisite that is documented in the user publications. For example, with z/OS V1R6 Language Environment, new support was added for Language Environment-conforming AMODE 64 applications. This support is available on z/OS V1R6 Language Environment® or later, but is not available on prior releases.

The compiler products that support development of downward compatible applications are listed in the following table, along with their prerequisite minimum release level of the operating system. (Prior releases of the compilers beyond those listed in the following table are still supported by Language Environment, but do not provide downward compatibility for Language Environment-conforming AMODE 64 applications. They only support upward compatibility.)

Table 1. Prerequisite z/OS release level for compilers that support downward compatibility
Compiler product z/OS release level prerequisite
z/OS XL C/C++ compiler z/OS V1R6
The diagnosis assistance that will be provided by the toleration PTFs includes:
  • Options processing: Whenever an application exploits Language Environment runtime options that are unavailable on the release of the operating system the application is executed on, a message will be issued. In order to issue this message, toleration PTFs are available down to OS/390® V2R6, and you must apply them on the target system. The use of environment variables, even specific Language Environment ones, is not covered by this support.
  • Detection of unsupported function: In many cases where a programmer disregards the requirements and programming guidelines and exploits a Language Environment function that is unavailable on the release of the operating system the application is executed on, Language Environment will raise a new condition. With an unhandled condition, the application is terminated. In order to raise this new condition, toleration PTFs are available down to OS/390 V2R6, and you must apply them on the target system.
  • C/C++ headers: As of OS/390 V2R10, support has been added to the C/C++ headers shipped with Language Environment to allow application developers to "target" a specific release, in order to ensure that the application has not taken advantage of any new C/C++ library function. See z/OS XL C/C++ User's Guide for details of how the TARGET compiler option can be used to create downward-compatible applications and prevent application developers from using new C/C++ library functions in applications.
  • Detection of unsupported program object format: If the program object format is at a level which is not supported by the target deployment system, then the deployment system will produce an abend when trying to load the application program. The abend will indicate that DFSMS/MVS was unable to find or load the application program. Correcting this problem does not require the installation of any toleration PTFs. Rather the application developer will need to re-create the program object which is compatible with older deployment system. For information about using the Program Management binder COMPAT option, see z/OS MVS Program Management: User's Guide and Reference.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014