Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, Programming Guide

Compile, prelink, and link-edit (IBMZCPL)

The IBMZCPL cataloged procedure, shown in Figure 11, includes three procedure steps: PLI, which is identical to cataloged procedure IBMZC; PLKED, which invokes the Language Environment prelinker; and LKED, which invokes the linkage editor (symbolic name IEWL) to link-edit the object module produced in the first procedure step.

Input data for the compilation procedure step requires the qualified ddname PLI.SYSIN. The COND parameter in the EXEC statement LKED specifies that this procedure step should be bypassed if the return code produced by the compiler is greater than 8 (that is, if a severe or unrecoverable error occurs during compilation).

Figure 11. Cataloged Procedure IBMZCPL
//IBMZCPL PROC LNGPRFX='IBMZ.V3R8M0',LIBPRFX='CEE',
//             SYSLBLK=3200,PLANG=EDCPMSGE,GOPGM=GO
//*
//********************************************************************
//*                                                                  *
//* LICENSED MATERIALS - PROPERTY OF IBM                             *
//*                                                                  *
//* 5655-H31 (C) COPYRIGHT IBM CORP. 1999, 2008                      *
//* ALL RIGHTS RESERVED.                                             *
//*                                                                  *
//* US GOVERNMENT USERS RESTRICTED RIGHTS - USE,                     *
//* DUPLICATION OR DISCLOSURE RESTRICTED BY GSA                      *
//* ADP SCHEDULE CONTRACT WITH IBM CORP.                             *
//*                                                                  *
//********************************************************************
//*
//* IBM ENTERPRISE PL/I FOR Z/OS
//* VERSION 3 RELEASE 8 MODIFICATION 0
//*
//*  COMPILE, PRELINK, LINK-EDIT A PL/I PROGRAM
//*
//*  PARAMETER  DEFAULT VALUE    USAGE
//*   LNGPRFX   IBMZ.V3R8M0      PREFIX FOR LANGUAGE DATA SET NAMES
//*   LIBPRFX   CEE              PREFIX FOR LIBRARY DATA SET NAMES
//*   SYSLBLK   3200             BLKSIZE FOR OBJECT DATA SET
//*   PLANG     EDCPMSGE         PRELINKER MESSAGES MEMBER NAME
//*   GOPGM     GO               MEMBER NAME FOR LOAD MODULE
//*
//*********************************************************************
//* COMPILE STEP
//*********************************************************************
//PLI      EXEC PGM=IBMZPLI,PARM='OBJECT,OPTIONS'
//STEPLIB  DD  DSN=&LNGPRFX;.SIBMZCMP,DISP=SHR
//         DD  DSN=&LIBPRFX;.SCEERUN,DISP=SHR
//SYSPRINT DD  SYSOUT=*
//SYSOUT   DD  SYSOUT=*
//SYSLIN   DD  DSN=&&LOADSET,DISP=(MOD,PASS),UNIT=SYSALLDA,
//             SPACE=(CYL,(1,1)),DCB=(LRECL=80,BLKSIZE=&SYSLBLK)
//SYSUT1   DD  DSN=&&SYSUT1,UNIT=SYSALLDA,
//             SPACE=(1024,(200,50),,CONTIG,ROUND),DCB=BLKSIZE=1024
//*********************************************************************
//* PRE-LINK-EDIT STEP
//*********************************************************************
//PLKED    EXEC PGM=EDCPRLK,COND=(8,LT,PLI)
//STEPLIB  DD  DSN=&LIBPRFX;.SCEERUN,DISP=SHR
//SYSMSGS  DD  DSN=&LIBPRFX..SCEEMSGP(&PLANG),DISP=SHR
//SYSLIB   DD  DUMMY
//SYSMOD   DD  DSN=&&PLNK,DISP=(,PASS),
//             UNIT=SYSALLDA,SPACE=(CYL,(1,1)),
//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=&SYSLBLK)
//SYSIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)
//SYSPRINT DD  SYSOUT=*
//SYSOUT   DD  SYSOUT=*
//*********************************************************************
//* LINK-EDIT STEP
//*********************************************************************
//LKED     EXEC PGM=IEWL,PARM='XREF',COND=((8,LT,PLI),(8,LE,PLKED))
//SYSLIB   DD  DSN=&LIBPRFX..SCEELKED,DISP=SHR
//SYSPRINT DD  SYSOUT=*
//SYSLIN   DD  DSN=*.PLKED.SYSMOD,DISP=(OLD,DELETE)
//         DD  DDNAME=SYSIN
//SYSLMOD  DD  DSN=&&GOSET(&GOPGM),DISP=(MOD,PASS),UNIT=SYSALLDA,
//             SPACE=(1024,(50,20,1))
//SYSUT1   DD  DSN=&&SYSUT1,UNIT=SYSALLDA,SPACE=(1024,(200,20)),
//             DCB=BLKSIZE=1024
//SYSIN    DD  DUMMY

The linkage editor always places the load modules it creates in the standard data set defined by the DD statement with the name SYSLMOD. This statement in the cataloged procedure specifies a new temporary library &&GOSET, in which the load module will be placed and given the member name GO. In specifying a temporary library, the cataloged procedure assumes that you will run the load module in the same job; if you want to retain the module, you must substitute your own statement for the DD statement with the name SYSLMOD.

The SYSLIN DD statement in Figure 11 shows how to concatenate a data set defined by a DD statement named SYSIN with the primary input (SYSLIN) to the linkage editor. You could place linkage editor control statements in the input stream by this means, as described in the z/OS Language Environment Programming Guide.


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)