Input to the linkage editor

Input to the linkage editor can be:
  • One or more object modules (created through theOBJECT compiler option)
  • Linkage editor control statements (NAME and ALIAS) that are generated by the ALIAS compiler option
  • Previously link-edited load modules that you want to combine into one load module
  • Language Environment® library stub routines (SYSLIB)
  • Other libraries
Note: You can avoid using the prelinker by using PDSEs, which can contain a different format of executable called a program object. Unlike the prelink/link case, program objects preserve full mixed case external names, allowing you to combine previously built program objects. That preservation can also make debugging easier.

Primary input

Primary input to the linkage editor consists of a sequential data set that contains one or more separately compiled object modules, possibly with linkage editor control statements.

Specify the primary input data set with the SYSLIN statement. For more information on the data sets that are used with z/OS® XL C/C++, refer to Description of data sets used.

Secondary input

Secondary input to the linkage editor consists of object modules or load modules that are not part of the primary input data set but are to be included in the load module as the automatic call library.

The automatic call library contains object modules to be used as secondary input to the linkage editor to resolve external symbols left undefined after all primary input has been processed.

The automatic call library may be in the form of:
  • Libraries that contain object modules, with or without linkage editor control statements
  • Libraries that contain load modules
  • The Language Environment Library, if any of the library functions are needed to resolve external references.

Secondary input is either all object modules or all load modules, but it cannot contain both types.

Specify the secondary input data sets with a SYSLIB statement and, if the data sets are object modules, add the linkage editor LIBRARY and INCLUDE control statements.

Additional object modules as input

You can use the INCLUDE and LIBRARY linkage editor control statements to do the following:

  1. Specify additional object modules that you want included in the output load module (INCLUDE statement).
  2. Specify additional libraries to be searched for object modules to be included in the load module (LIBRARY statement). This statement has the effect of concatenating any specified member names with the automatic call library.

Linkage editor control statements in the primary input must specify any linkage editor processing beyond the basic processing.