The libraries SYSLNK.CRTE.PARTIAL-BIND and SYSLNK.CRTE.COMPL make it possible to link C programs, C/COBOL merges and COBOL programs in a way that satisfies the following conditions:
The C programs, C/COBOL merges or COBOL programs contain no further open external references.
The C/COBOL runtime system or the common internal routines are not dynamically loaded until runtime.
To this end, the SYSLNK.CRTE.PARTIAL-BIND and SYSLNK.CRTE.COMPL libraries contain linkage modules which are linked in place of the C and COBOL runtime modules or common internal runtime routines and resolve all the open external references in the program to preloadable components of the C / COBOL runtime system or the common internal runtime routines.
The libraries contain the modules which are needed in order to link C and COBOL programs which contain no open external references to CRTE. These include:
non-preloadable modules of the C runtime system, name adapter modules, ILCS modules, and
non-preloadable COBOL85/COBOL2000 runtime modules.
The C / COBOL runtime system itself or the actual internal runtime routines are available as dynamically loadable main modules in the libraries SYSLNK.CRTE and as part of the subsystems CRTEPART/COBPART or CRTESIS.
If you have installed CRTE privately and have modified the linkage modules with the ICXPPART procedure, the required modules are loaded dynamically from the “private” library regardless of preloaded subsystems and IMON accesses. This also applies when the programs linked with these linkage modules are used on a different system.
If you are using the official CRTE installation, an initial attempt is made at runtime to dynamically load the main modules from class 4 memory.
If the subsystem CRTEPART / COBPART or CRTESIS has not been started, the get-path-name
functionality of IMON is used to determine where the library
SYSLNK.CRTE has been stored and the subsystem is subsequently loaded dynamically from this library.
If neither the subsystem nor IMON is available, the library is searched for under the standard user ID $ or under the user ID specified when ICXPART was called.
As neither the entire C / COBOL runtime system nor the common internal runtime routines are linked but only the linkage module (and certain modules that do not belong to the preloadable runtime system), the fully linked program or module needs considerably less disk space than when the C / COBOL runtime modules and the common internal runtime routines are statically linked from the SYSLNK.CRTE library. In addition, the link times and, if the required subsystem or subsystems are preloaded, the load times are also reduced.