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 compatibilityCompiler 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.