There are those times when it is beneficial to invoke the linkage editor to make executable programs from compiled object code.
The following clist (command list) for MVS fill the bill exactly.
[codesyntax lang=”text”]
PROC 2 MEM LE CONTROL LIST FREE FI(SYSPRINT, SYSLIB, SYSLIN, SYSLMOD, SYSUT1) ALLOC FI(SYSPRINT) DA(PDS.LPRT(&MEM)) SHR ALLOC FI(SYSLIN) DA(PDS.OBJ(&MEM)) SHR ALLOC FI(SYSLMOD) DA(PDS.LOAD(&MEM)) SHR ALLOC FI(SYSUT1) UNIT(SYSDA) TRACKS SPACE(10,10) NEW ALLOC FI(SYSLIB) DA('CEE.SCEELKED') SHR IF &LE = 0 THEN + CALL 'SYS1.LINKLIB(HEWL)' 'XREF,LIST,LET,NCAL' ELSE + CALL 'SYS1.LINKLIB(HEWL)' 'XREF,LIST,LET' WRITE RETURN CODE IS &LASTCC FREE FI(SYSPRINT, SYSLIB, SYSLIN, SYSLMOD, SYSUT1)
[/codesyntax]
The first parameter MEM identifies the member to be linked while the second parameter LE indicates whether the module to be linked edited is stand alone executable or a sub program. Of course thee are different link edit options for stand alone executables and sub programs.
The following shows printed output for the linked sub program.
[codesyntax lang=”text”]
1z/OS V1 R10 BINDER 17:48:52 TUESDAY SEPTEMBER 16, 2014 BATCH EMULATOR JOB(AMBMVS ) STEP(ISPFLITE) PGM= HEWL PROCEDURE(ISPFPROC) IEW2278I B352 INVOCATION PARAMETERS - XREF,LIST,LET,NCAL IEW2454W 9203 SYMBOL IGZCBSO UNRESOLVED. NO AUTOCALL (NCAL) SPECIFIED. IEW2454W 9203 SYMBOL CEESTART UNRESOLVED. NO AUTOCALL (NCAL) SPECIFIED. IEW2454W 9203 SYMBOL CEEBETBL UNRESOLVED. NO AUTOCALL (NCAL) SPECIFIED. IEW2454W 9203 SYMBOL ISPEXEC UNRESOLVED. NO AUTOCALL (NCAL) SPECIFIED. IEW2454W 9203 SYMBOL CEESG005 UNRESOLVED. NO AUTOCALL (NCAL) SPECIFIED. 1 C R O S S - R E F E R E N C E T A B L E _________________________________________ TEXT CLASS = B_TEXT --------------- R E F E R E N C E -------------------------- T A R G E T ------------------------------------------- CLASS ELEMENT | ELEMENT | OFFSET SECT/PART(ABBREV) OFFSET TYPE | SYMBOL(ABBREV) SECTION (ABBREV) OFFSET CLASS NAME | | | 50 ABS00001 50 V-CON | IGZCBSO $UNRESOLVED | BA ABS00001 BA V-CON | CEESTART $UNRESOLVED | DA ABS00001 DA V-CON | CEESTART $UNRESOLVED | DE ABS00001 DE V-CON | CEEBETBL $UNRESOLVED | 128 ABS00001 128 V-CON | ISPEXEC $UNRESOLVED | *** E N D O F C R O S S R E F E R E N C E *** 1PROCESSING OPTIONS: ALIASES NO ALIGN2 NO AMODE UNSPECIFIED CALL NO CASE UPPER COMPAT UNSPECIFIED COMPRESS AUTO DCBS NO DYNAM NO EXTATTR UNSPECIFIED EXITS: NONE FILL NONE GID UNSPECIFIED HOBSET NO INFO NO LET 08 LINECT 060 LIST SUMMARY LISTPRIV NO MAP NO MAXBLK 032760 MODMAP NO MSGLEVEL 00 OVLY NO PRINT YES RES NO REUSABILITY UNSPECIFIED RMODE UNSPECIFIED STORENX NOREPLACE STRIPCL NO STRIPSEC NO TERM NO TRAP ON UID UNSPECIFIED UPCASE NO WKSPACE 000000K,000000K XCAL NO XREF YES ***END OF OPTIONS*** 1SAVE OPERATION SUMMARY: MEMBER NAME ABS00001 LOAD LIBRARY AMBMVS.PDS.LOAD PROGRAM TYPE LOAD MODULE VOLUME SERIAL USR005 MAX BLOCK 6144 DISPOSITION REPLACED TIME OF SAVE 17.48.53 SEP 16, 2014 1SAVE MODULE ATTRIBUTES: AC 000 AMODE 31 COMPRESSION NONE DC NO EDITABLE YES EXCEEDS 16MB NO EXECUTABLE YES MIGRATABLE YES OL NO OVLY NO PACK,PRIME NO,NO PAGE ALIGN NO REFR NO RENT NO REUS NO RMODE ANY SCTR NO SSI SYM GENERATED NO TEST NO XPLINK NO MODULE SIZE (HEX) 000006D0 1 ENTRY POINT AND ALIAS SUMMARY: NAME: ENTRY TYPE AMODE C_OFFSET CLASS NAME STATUS ABS00001 MAIN_EP 31 00000000 B_TEXT ***** E N D O F R E P O R T ***** 1z/OS V1 R10 BINDER 17:48:52 TUESDAY SEPTEMBER 16, 2014 BATCH EMULATOR JOB(AMBMVS ) STEP(ISPFLITE) PGM= HEWL PROCEDURE(ISPFPROC) IEW2008I 0F03 PROCESSING COMPLETED. RETURN CODE = 4. 1---------------------- MESSAGE SUMMARY REPORT ---------------------- TERMINAL MESSAGES (SEVERITY = 16) NONE SEVERE MESSAGES (SEVERITY = 12) NONE ERROR MESSAGES (SEVERITY = 08) NONE WARNING MESSAGES (SEVERITY = 04) 2454 INFORMATIONAL MESSAGES (SEVERITY = 00) 2008 2278 **** END OF MESSAGE SUMMARY REPORT ****
[/codesyntax]
The linkage editor listing shows the results of the invoked clist.
Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.