Program object formats
The program object formats can be specified by the COMPAT option. The main purpose of the COMPAT option is to notify the binder to generate a program object (PO) at a particular program-management (PM) level.
| z/OS system release | Program management level and sub-level | Summary of features added |
|---|---|---|
ZOSV2R5, ZOSV2R4, ZOSV2R3, ZOSV2R2, ZOSV2R1 |
PM5SUB4 | COMPAT=ZOSV2R1 is the minimum level that supports preserving all boundary alignments specifications coming from ESD records. ALIGNT can be used to specify boundary alignments for both load modules and program objects without requiring the use of COMPAT(ZOSV2R1). |
| ZOSV1R13 | PM5SUB3 | COMPAT=ZOSV1R13 is the minimum level that supports conditional sequential RLDs. |
| ZOSV1R12, ZOSV1R11, ZOSV1R10 | PM5SUB2 | COMPAT=ZOSV1R10 is the minimum level that supports saving the timestamp from compiler IDRL records in program objects. It also supports the RLD type corresponding to the assembler QY-con. The QY-con is a special form of QCON representing the displacement in RXY type instructions. |
| ZOSV1R9, ZOSV1R8 | PM5 | COMPAT=PM5 is the minimum level that supports cross-segment references in relative immediate
instructions in program objects. CAUTION: Programs bound with this option cannot be
loaded, inspected, or reprocessed on any version prior to z/OS® 1.8.
|
| ZOSV1R7 | PM4SUB3 | COMPAT=ZOSV1R7 is the minimum level that supports relative/immediate instructions across compile units or compression of non-program data. |
| ZOSV1R6, ZOSV1R5 | PM4SUB2 | COMPAT=ZOSV1R5 is the minimum level that can be specified if RMODE 64 has been specified by a compiler for deferred load data segments. |
| ZOSV1R4, z/OSV1R3 | PM4 | COMPAT=PM4 is the minimum level that can be specified if any of the following features are
used:
|
| ZOSV1R2, ZOSV1R1, OSV2R10, OSV2R9, OSV2R8 | PM3 | COMPAT=PM3 is the minimum level that can be specified if any of the following features are
used:
|
| Not applicable | PM2 | COMPAT=PM2 is the minimum level that can be specified if any of the following are used:
|
| Not applicable | PM1 | This is the minimum level which supports binder program objects. In addition to old linkage
editor load module features, program object features supported here include the following:
|
Clarifying sub-levels
In a case where the program management levels are identical and only the program management sub-levels differ, this indicates that there is new binder functionality; however, none of the program object information that the loader uses is incompatible (only information that the binder uses for rebinding, diagnostics, and so forth is different). Therefore, when considering a COMPAT level, use just the program management level without regard for the sub-level to determine the earliest release on which to use it.
For example, if z/OS V1R7 is targetted with COMPAT=ZOSV1R7, create a PM4SUB3 format program object. Then, in addition to z/OS V1R7, that program object can be run on releases all the way down to z/OS V1R3, because that was the first release to introduce program management level PM4 format (effectively, this is level 4, sub-level 1, or COMPAT level PM4SUB1 format — but the binder does not use the SUB1 designation).
Be aware of the consequences of the program management sub-level when it indicates that there is new binder function, because this means that the only thing that can be done is to run the program.
- IEBCOPY
- SMP/E
- SPZAP
- Any programs that use the binder APIs (such as the AMBLIST, IEBCOPY, and UNIX utilities cp, mv, c89, and nm)
- The fast data APIs
- The binder C/C++ API interfaces introduced in z/OS V1R9.
IEW2509S 3602 MODULE *NULL* IDENTIFIED BY DDNAME /0000001 IS AN UNSUPPORTED VERSION
AND CANNOT BE PROCESSED.
ZOSV2R5,