Creating side files using IPVLANGX

Use the IPVLANGX program to create a side file from a compiler listing.

The sample JCL in Sample JCL to compile a COBOL program and store the side file is provided as member IPVSCMPS in the IPV.SIPVSAM1 data set. It performs the following steps:
  • Compiles a COBOL program.
    Note: You can only compile one program per compile step in order to name the compiler listing PDS(E) member (if using a partitioned data set), and to ensure that only one compiler listing is written to the output file. Nested COBOL programs are not supported.
  • Executes IPVLANGX to process the listing and store it as a side file where the ADFz products can access it. (For return codes issued by IPVLANGX, see IPVLANGX return codes.)
  • Writes the listing as part of the job output.
Figure 1. Sample JCL to compile a COBOL program and store the side file
//IPVSCMPS JOB (GSF),'GENERATE.SIDE.FILE',NOTIFY=&SYSUID.,
//         MSGCLASS=X,CLASS=A,MSGLEVEL=(1,1)
//         JCLLIB ORDER=(IGY.V2R1M0.SIGYPROC) <== INSTALLATION
//*                                                  IGYWCLG PROC
//*
//************************************************************/
//* THIS JOB RUNS A COBOL COMPILE PLUS PRODUCES A SIDE FILE  */
//* FROM A PROGRAM LISTING THAT THE ADFz PRODUCTS CAN        */
//* USE FOR OBTAINING SOURCE INFORMATION.                    */
//* THE COMPILE OUTPUT IS THEN WRITTEN TO SYSUT2 IN THE      */
//* IEBGENER STEP.                                           */
//************************************************************/
//*
//CBLRUN   EXEC IGYWC,PARM.COBOL='LIST,MAP,Source,XREF'
//COBOL.SYSIN DD DATA,DLM='##'
⋮
(Program source not shown)
⋮
##
//COBOL.SYSPRINT DD DSN=&&COBLIST(IPVSCBL1),
//         DISP=(,PASS),SPACE=(TRK,(10,5,5),RLSE),
//         DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0)
//*
//IPVLANGX EXEC PGM=IPVLANGX,REGION=4096K,
// PARM='IDISCBL1 (COBOL ERROR'
//LISTING  DD  DISP=(OLD,PASS),DSN=&&COBLIST ❶
//IDILANGX DD  DISP=SHR,DSN=IPV.IPVLANGX     ❷
//SYSUDUMP DD  SYSOUT=*
//*
//IEBGENER EXEC PGM=IEBGENER,REGION=4096K
//SYSUT1   DD  DISP=OLD,DSN=&&COBLIST(IPVSCBL1)
//SYSUT2   DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//SYSIN    DD  *
/*

After you have created and stored a side file, there is no benefit to ADFz products in retaining the listing.

If you already have listings, you can turn them into side files. Here is sample JCL to do this conversion (it is provided as member IPVSFILE in the IPV.SIPVSAM1 data set):
Figure 2. Sample JCL to create a side file from a COBOL listing
//IPVLANGX JOB (C97),'IPVLANGX',MSGCLASS=X,
//         CLASS=A,NOTIFY=&SYSUID
//*************************************************************
//* This job produces a side file from a program listing that
//* the ADFz products can use for obtaining source information.
//* This particular example is set up for a COBOL extraction
//* from IPV.LISTING.COBOL(COBOLA) to IPV.IPVLANGX
//*************************************************************
//IPVLANGX EXEC PGM=IPVLANGX,REGION=4096K,
// PARM='COBOLA (COBOL ERROR'
//LISTING  DD  DISP=SHR,DSN=IDI.LISTING.COBOL ❶
//IDILANGX DD  DISP=SHR,DSN=IDI.IPVLANGX      ❷
//SYSUDUMP DD  SYSOUT=*
Notes:
DDname must be LISTING for all types of compiler listings, or SYSADATA for an assembler ADATA file.
DDname must be IDILANGX for the output LANGX side file. The data set must be sequential or PDS(E), RECFM=VB, LRECL≥1562.

Refer to the documentation for the individual ADFz products for information about how to provide the LANGX side file for processing.

A compiler listing is the only data format that IPVLANGX accepts as input, with the exception of SYSADATA for assembler.