Prelinking process

Input to the prelinker includes the following:
  • Primary input: those data sets and DLL definition side-decks that are allocated to SYSIN. If you are creating an application that imports symbols from DLLs, you must provide the definition side-deck for each DLL in SYSIN.
  • Secondary input: input processed from SYSLIB, which contains object module libraries used for automatic library calls.
  • Input specified in one or more INCLUDE control statements processed as primary and secondary input.

    An attempt is made to read the DD or member of the DD (whichever is specified). This request is resolved if the read is successful.

If you are exporting symbols, the prelinker creates a definition side-deck. After the prelinker processes all its input, it puts the prelinked output object module into SYSMOD. If a definition side-deck was generated, it is put into SYSDEFSD and is a sequential data set or a PDS member. The linking process then begins when the linkage editor takes its primary input from SYSLIN, which refers to the prelinked object module data set.

The IBM-supplied cataloged procedures and REXX EXECs for C/C++ use the DLL versions of the IBM-supplied class libraries by default; the IBM-supplied class libraries definition side-deck data set, SCLBSID, is included in the SYSIN concatenation.

If you are statically linking the relevant C/C++ class library object code, you must:
  • Override the PLKED.SYSLIB concatenation to include the SCLBCPP data set, and
  • Override the PLKED.SYSIN concatenation to exclude the SCLBSID data set.

Figure 1 shows an overview of the basic prelinking process.

Figure 1. Basic prelinker and linkage editor processing
During the basic prelinking process, input to the prelinker includes primary input (data sets and DLL definition side-decks allocated to SYSIN), secondary input (input processed from SYSLIB), and input specified in one or more INCLUDE control statements.