Input to the prelinker

Input to the prelinker can be:
  • One or more object modules (not previously prelinked)
  • Prelinker control statements (INCLUDE, LIBRARY ...)
  • Object module libraries

The process of resolving or including input from these sources depends on the type of the source and the current input and prelink options.

Unresolved references or undefined writable static objects often result if you give the prelinker input object modules produced with a mixture of inconsistent compiler options (for example, RENT | NORENT, LONGNAME | NOLONGNAME, or DLL options). These options may expose symbol names in different ways in your object file, so that the prelinker may be unable to find the matching definition of a referenced symbol if the definition and the reference are exposed differently.

Primary input

Primary input to the prelinker consists of a sequential data set (file) that contains one or more separately compiled object modules, possibly with prelinker control statements. Specify the primary input data set through the SYSIN ddname.

Secondary input

Secondary input to the prelinker consists of object modules that are not part of the primary input data set but are to be included as a result of processing of primary input. Object modules that are brought in because of INCLUDE control statements are secondary input. Object modules brought in as a result of automatic call library (library search) processing of currently unresolved symbols through a LIBRARY control statement or through SYSLIB are also secondary input.

An automatic call library may be in the form of:
  • PDS Libraries that contain object modules
  • PDSE Libraries that contain object modules
  • Archive Libraries that contain object modules (if you used OMVS prelinker option)