BCS MVS Clist To Invoke Linkage Editor


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.

Leave a Reply

Your email address will not be published. Required fields are marked *