IBM Support

PI67026: CHANGE COBOL V5/V6 TO HAVE THE SAME AMODE SETTINGS IN THE ESD RECORDS (COMPILER OUTPUT OBJECT PROGRAM) AS IN COBOL V3/V4

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • change COBOL V5/V6 to have the same AMODE settings in the ESD
    records (compiler output object program) to be that same as in
    COBOL v3/V4. When RMODE(24) is in effect, the compiler will set
    AMODE(ANY) as in COBOL V4.2 and before.
    
    Scenario:
    When an AMODE24 assembler program does LINK (or LOAD & BSM) to
    COBOL program, V3.4 COBOL program runs as AMODE24 while V6
    COBOL program runs as AMODE31. If the assembler program passes
    the parameter address with 'dirty' highorder bits, such as
    'FF123456' which should be '00123456', the AMODE24 (V3.4)
    program works without problem but AMODE31 (V6) program gets
    S0C4 abend.
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL V6.1 compiling     *
    *                 and running programs that are 'dynamically'  *
    *                 called by AMODE 24 assembler programs.       *
    *                 (Dynamically means LOAD and BRANCH or SVC    *
    *                 LINK.)  'Static' calls where the programs    *
    *                 are linked together by the Program           *
    *                 Management Binder (linkage editor) do not    *
    *                 have a problem.                              *
    *                                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: ABEND 0C4 at runtime if AMODE 24        *
    *                      parameters are passed with 'dirty'      *
    *                      addresses (IE: not clean AMODE 31       *
    *                      addresses) This happens whether the     *
    *                      COBOL program was compiled with         *
    *                      RMODE(24) or RMODE(ANY).                *
    *                                                              *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    *                                                              *
    ****************************************************************
    In COBOL V4 and earlier, the Object Program output from the
    compiler was marked as AMODE ANY, so a separate COBOL program
    would get AMODE ANY from the Binder.  In COBOL V5 and V6, as
    shipped, the compiler marked the object programs as AMODE MIN,
    which resulted in the Binder giving the executable AMODE 31.
    This in turn caused the program to get control in AMODE 31
    which caused an ABEND 0C4 when the program tried to use the
    dirty addresses.  In older COBOL, with AMODE ANY, the program
    got control in AMODE 24, the AMODE of the calling program, and
    the addresses of the parameters were interpreted correctly.
    

Problem conclusion

  • The compiler is changed to mark the Object Program as AMODE ANY
    when RMODE(24) is in effect.  For RMODE(ANY), the Object
    Program is still marked with AMODE MIN.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI67026

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    610

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-08-04

  • Closed date

    2016-09-08

  • Last modified date

    2016-10-06

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    PI67325 PI70268

Modules/Macros

  •    IGYCRCTL
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R610 PSY UI40709

       UP16/09/24 P F609

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.1","Edition":"","Line of Business":{"code":"LOB70","label":"Z TPS"}}]

Document Information

Modified date:
05 September 2024