SLAC Modifications to the OS/VS Linkage Editor

Although not obtained directly from the CBT tape archive, this program came from the SHARE library tapes archive hosted at the CBT site.

The SLAC modifications to the OS/VS linkage editor are of two types: (1) changes and additions to printed output and (2) various internal changes to help the user in program debugging. 

The changes and additions to the printed output include the suppression of useless page ejects; modifications in the module map and cross reference table headings to show that either a module map or module map and cross reference table are being printed; and a change in the main heading to reflect the fact that this is the SLAC modified version of the linkage editor. 

The internal changes to help the user include printing a message telling the user where the system has put the output data set (SYSLMOD); clearing the input text buffer to HEX 81's so uninitialized areas of the program may be found more easily; flagging, in the module map, all names called from the SYSLIB data set (via AUTOCALL), and the listing of these names in a concatenation number dictionary with the data set name and volume from which they were linked. The data derived from the creation of the SYSLMOD message and the concatenation number dictionary is also written out to the SMF data set using a special SVC routine. This data can be used to monitor program usage, load module library access patterns, distribute costs of subroutine libraries, etc. 

In addition, the renumbering table is cleared more efficiently to improve speed. 
User and systems documentation is included on the distribution tape. 


I have extracted the 14 relevant datasets from the much larger conglomerate tape image contained in the original archive and placed them on a HET tape image with standard labels.  That tape image and two jobstreams are available for download in lked37.tgz [MD5: 320203EA615625282AB9522FEFF9CA62].  The tape contains the complete source, a jobstream to assemble and link-edit the source, a jobstream to reload the datasets from tape to disk, etc.  But the two jobstreams included in the archive (PRINTDOCS.JCL and RELOAD.JCL) will print the six documentation datasets from the tape and reload the load modules so that the modified link editor can be used with minimal effort.

As contained on the tape, the link editor will call a custom SVC to record information in the SMF dataset.  The source for the SVC is included on the tape, along with instructions for its use.  Without this SVC installed, the link editor will abend.  The reload jobstream performs three functions:  it reloads the load module to a temporary dataset, it ZAPs the SVC instructions so that the linkage editor will execute without the installation of the SVC, and it then re-links the load module into the desired target load library.  The third step of this job utilizes the ZZRELINK program available from the CBT page on this site.  As currently coded in the RELOAD jobstream, the target load library is SYS2.LINKLIB.  If you place the output into SYS1.LINKLIB, it will replace the original Linkage Editor program installed when MVS was generated, so you should choose a different target.

In order to use this version of the Linkage Editor instead of the regular Linkage Editor, insert a STEPLIB DD card in the LKED step of your compile or link jobstreams.  

I hope that you have found my instructions useful.  If you have questions that I can answer to help expand upon my explanations and examples shown here, please don't hesitate to send them to me:

Return to Site Home Page 

This page was last updated on January 17, 2015 .