Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

コンパイル、プリリンク、およびリンク・エディット (IBMZCPL)

図 11の IBMZCPL カタログ式プロシージャーには、3 つの プロシージャー・ステップがあります。すなわち、カタログ式プロシージャー IBMZC と 同じものである PLI、言語環境プログラムのプリリンカーを呼び出す PLKED、および 最初のプロシージャー・ステップで作成されたオブジェクト・モジュールを リンク・エディットするリンケージ・エディター (シンボル名 IEWL) を呼び出す LKED です。

コンパイル・プロシージャー・ステップ用の入力データには、修飾 dd 名の PLI.SYSIN が 必要です。EXEC ステートメント LKED の COND パラメーターは、 コンパイラーが生成した戻りコードが 8 より大きい場合 (つまり、 コンパイル中に重大エラーまたは回復不能エラーが起こった場合) に、 このプロシージャー・ステップをバイパスするように指定します。

図 11. カタログ式プロシージャー 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

リンケージ・エディターは、作成したロード・モジュールを常に、SYSLMOD という名前の DD ステートメントで定義された 標準データ・セット内に入れます。 カタログ式プロシージャーの中のこのステートメントは、 新しい一時ライブラリー &&GOSET を指定します。ロード・モジュールはこの一時ライブラリーに入れられ、GO というメンバー名を与えられます。一時ライブラリーを指定する際は、カタログ式プロシージャーは 同じジョブ内でロード・モジュールが 実行されるものと想定します。このモジュールを 保持したい場合は、SYSLMOD という名前の DD ステートメントをユーザー独自 のステートメントで置き換えなければなりません。

図 11 の SYSLIN DD ステートメントは、SYSIN という 名前の DD ステートメントで定義されたデータ・セットを、リンケージ・エディター への 1 次入力 (SYSLIN) に連結する方法を示しています。 このような方法でリンケージ・エディター制御ステートメントを入力ストリーム に入れることができます。これについては、「z/OS 言語環境プログラム プログラミング・ガイド」に説明があります。


Terms of use | Feedback

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