z/OS MVS Program Management: User's Guide and Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


COMPAT: Binder level option

z/OS MVS Program Management: User's Guide and Reference
SA23-1393-00

The COMPAT option allows you to specify the compatibility level of the binder. For instance, when binding a module you can specify LKED which will partially alter the binder's behavior and its ultimate output as if you had invoked the linkage editor. PM2 or PM3 would allow you to take advantage of the functions supported by the newer version of program modules.

Awareness of the function provided by each option value allows you to anticipate the behavior of your bound programs as you share them across systems that might not support the same functionality. The functional differences are broadly discussed below for each option value.

If the output is directed to a PDS, the output module is saved as a load module regardless of the value of COMPAT. COMPAT(LKED) will alter some of the processing.

If SYSLMOD is allocated to a PDSE or a z/OS UNIX file, the output is saved as a program object in the format specified by the COMPAT option. If the user specified a COMPAT value that does not support the contents of the module, binder will issue a level 12 message and fail the bind.

    


COMPAT={MIN  | LKED | {CURRENT | CURR} | PM1 | PM2
         | {PM3 | OSV2R8 | OSV2R9 | OSV2R10 | ZOSV1R1 | ZOSV1R2}
         | {PM4 | ZOSV1R3 | ZOSV1R4} | {ZOSV1R5 | ZOSV1R6}
| {ZOSV1R7}
         | {PM5 | ZOSV1R8 | ZOSV1R9} | {ZOSV1R10 | ZOSV1R11 | ZOSV1R12}
         | {ZOSV1R13| ZOSV2R1}

CURRENT or CURR
Specifies that the output is to be as defined for the current level of the binder. For the level of Program Management support described in this version of the manual, CURRENT is the same as ZOSV2R1.
ZOSV2R1
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
COMPAT=ZOSV1R13 is the minimum level that supports conditional sequential RLDs.
ZOSV1R10 | ZOSV1R11| ZOSV1R12
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.
PM5 | ZOSV1R8 | ZOSV1R9
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 MVS™ version prior to z/OS® 1.8.

ZOSV1R7
COMPAT=ZOSV1R7 is the minimum level that supports relative/immediate instructions across compile units or compression of non-program data.
ZOSV1R5 | ZOSVIR6
COMPAT=ZOSV1R5 is the minimum level that can be specified if RMODE 64 has been specified by a compiler for deferred load data segments.
PM4 | ZOSV1R3 | ZOSV1R4
COMPAT=PM4 is the minimum level that can be specified if any of the following features are used:
  • Input modules contain 8-byte adcons
  • Any ESD record is AMODE 64
  • Input contains symbol names longer than 1024, unless EDIT=NO
  • A value of 64 is specified on the AMODE option or control statement

If COMPAT=PM4 and OVLY are both specified, COMPAT=PM4 is changed to PM1. PM4 supports all PM3, PM2 and PM1 features.

PM3 | OSV2R8 | OSV2R9 | OSV2R10 | ZOSV1R1 | ZOSV1R2
In general, COMPAT=PM3 is the minimum level that can be specified if any of the following features are used:
  • Binding modules compiled using the XPLINK attribute
  • DYNAM=DLL
  • XOBJ format input to the binder without going through the Language Environment® prelinker, or rebinding modules containing input from such sources
  • Hidden aliases (from ALIASES control statement)
  • Support for both deferred load classes and merge classes with initial text (from GOFF format input modules or data buffers passed via the binder API.)
  • Language Environment-enabled programs

If COMPAT=PM3 and OVLY are both specified, COMPAT=PM3 is changed to PM1.

PM3 supports all PM2 and PM1 features.

PM2
In general, COMPAT=PM2 is the minimum level that can be specified if any of the following are used:
  • User-defined classes passed in GOFF format input as well as certain other information supported only in GOFF format
  • Names (from input modules or created by control statements which cause renaming) that are longer than 8 bytes.
  • Use of RMODE=SPLIT

If OVLY is specified, COMPAT=PM2 is changed to PM1.

PM2 supports all PM1 features.

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:
  • Device-independent record format
  • Text length greater than 16 megabytes
  • More than 32,767 external names

OVLY is supported, and will force PM1 to be used.

MIN
This is the default, and indicates that the binder should select the minimum PM level that supports the features actually in use for the current bind.
LKED
Specifies that certain binder processing options are to work in a manner compatible with the linkage editor. Specific processing affected by this specification includes:
  • AMODE/RMODE—Where conflicts exist between the AMODE or RMODE of individual entry points or sections and the value specified in the AMODE or RMODE option, the option specification will prevail. No warning message will be issued and the return code remains unchanged.
  • REUS—If a section is encountered in a module with a lower reusability than that specified on the REUS option, the reusability of the module is automatically downgraded. An information message is issued and the return code remains unchanged.

This should not be thought of as a level below PM1. Since LKED does not tell the binder what format to use when saving a program object, the binder will behave according to MIN.

If COMPAT is not specified, the output format used by the binder will be the same as if you had specified COMPAT=MIN.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014