Can I compile my DYLs to a 31 bit load module or does DYL only support 24 bit? If only 24 bit, is there a way to call a 31 bit Cobol program from within the 24 bit DYL?
z/OS 2.1 and above
Cobol/LE and level
Cobol II
Vision Results 6.0 and above
Cobol/LE programs in 31bit or 24bit may fail if the correct options are not utilized with Vision Results
Broadcom recommends the following when converting from COBOL 2 to Enterprise COBOL:
1. Determine what VISION:Results programs with calls to COBOL programs are going to remain COBOL 2 modules.
If these VISION:Results programs are the FREEZE/RESTORE variety, do not run the OPTION FREEZE program.
The OPTION RESTORE will continue to use DYLINSTL installation parameters, COBENV=Y and LE=N, to successfully call COBOL 2 modules.
If these VISION:Results programs are the standard compile and go variety, then add NOLE AND COB2NR to a new OPTION statement or to an existing OPTION statement.
2. Modify your existing DYLINSTL installation parameters to run Enterprise COBOL modules by removing the COBENV and LE parameters.
The default settings will be used, COBENV=N and LE=Y. The DYLINSTL installation parameters are in the CUSTMJCL member in the VISION:Result source library.
The changes must be submitted as a job to take effect. VISION:Results programs of the FREEZE/RESTORE variety must run the FREEZE JCL again in order for the RESTORE to run
Enterprise COBOL modules.
Documentation for review: Vision Reference Guide Chapter 4 would be good to review to understand all the options available
(Page 83 Environment Specific Options)
COBOL II Environment
OPTION [COB2NR | NOCOB2NR]
Specifying NOCOB2NR overrides the DYLINSTL parameter setting, COB2NR=Y,
which allows proper execution when calling COBOL II subroutines compiled with
the NORES option. Conversely, indicating COB2NR reinstates this feature.
IBM Language Environment (LE) Support
OPTION [LE | NOLE]
The LE keyword can be used to override the DYLINSTL LE setting, which
initializes the IBM Language Environment (LE). This allows your program to CALL
subroutines written in any LE-compliant language, including COBOL, C, PL/I,
FORTRAN, and Assembler as well as the IBM LE Service Routines such as
CEEDATE and CEEDAYS.
If LE is specified and DYLINSTL parameter COBENV=Y, a warning message will
be issued, stating the COBENV option will be ignored.
LE can be specified with OPTION FREEZE and OPTION RESTORE to override
DYLINSTL LE=N. Note that the RESTORE with LE works only if LE was enabled
when the program was frozen either via DYLINSTL LE=Y or OPTION LE. If LE was
not enabled on the FREEZE, then a S0C7 abend can occur if LE is encountered
on the RESTORE.