Compiler | Runtime system | PROGRAM ..., COMP= |
COBOL85 V2.3A | CRTE1 | ILCS / COB12 |
COBOL2000 V1.5A or later | CRTE1 V10.0A on BS2000 OSD/BC V10.0 | ILCS / COB1 2 |
Comments on the table
1We also strongly recommend that you always use the latest corrections version for
compilers and runtime systems.
2The objects generated by COBOL85 or COBOL2000 are equally suitable for ILCS
linking and non-ILCS linking; there is no compiler option for specifically creating ILCS or non-ILCS objects.
COMP=ILCS means that ILCS linking is used. COMP=COB1 means non-ILCS linking (= old-style linking).
The value of COMP= can be set on the basis of the following criteria:
COMP=ILCS is specified if all activated subroutines also have ILCS capability.
COMP=COB1 must always be specified if the Cobol module calls subroutines that do not have ILCS capability.
Compiler options
The table below provides an overview of which COMOPT parameters must be set in accordance with the compiler used, and what must be noted in the process.
COMOPT parameter | Compiler | Comment |
CHECK-CALLING-HIERARCHY=NO | COBOL85 | Only if COMP=COB1, i.e. with non- |
MARK-LAST-PARAMETER=YES | COBOL2000 | Recommended |
Mixing Cobol programs
If a program unit is generated with COMP=COB1, it may comprise modules compiled with the COB1, COBOL85, or COBOL2000 compiler. If the program unit is generated with COMP=ILCS, it can only comprise modules compiled with the COBOL85 or COBOL2000 compiler.
Within an application, program units generated with COMP=ILCS can coexist with program units generated with COMP=COB1.