Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Linking runtime systems

Many runtime systems have shareable parts. Together with BLS, this means that load times can be reduced and performance increased. Depending on the runtime system, you can:

  • Load shareable parts as a subsystem. This is the best option, but is not possible for all runtime systems.

  • Statically link shareable parts and load them in a common memory pool.

  • Link the necessary parts of the runtime system to an LLM and then load them dynamically.

  • Link the runtime system statically to the start LLM.

When linking a UTM application with SYSLNK.CRTE.PARTIAL-BIND, ensure that the CRTE version on the system on which the application is linked is not later than the CRTE version on the system(s) on which the application will run.

When linking the start LLM, the C and SPL runtime system and the ILCS must be incorporated for UTM (ILCS is available in the CRTE libraries). This is achieved by specifying the two following binder statements in this sequence:

//RESOLVE-BY-AUTOLINK LIB=$userid.SYSLNK.CRTE[.PARTIAL-BIND]

//RESOLVE-BY-AUTOLINK LIB=$userid.SYSLNK.UTM.070.SPLRTS

If you want to link your runtime systems statically, these two statements for C, COBOL, and SPL objects are sufficient. If you require additional runtime systems you must – unless otherwise specified in the respective manual – insert the RESOLVE-BY-AUTOLINK statements for the necessary runtime systems between the RESOLVE statements for CRTE and UTM.

It is better to use the partial bind linking technique when linking the runtime systems. The advantage of linking with SYSLNK.CRTE.PARTIAL-BIND is that the link and load times are reduced and the linked program occupies less disk space. If linking is carried out using the partial bind library, references to the runtime system are satisfied by means of connection modules. The modules from the runtime system required at runtime are dynamically loaded when the application is run.

If you require SYSLNK.CRTE or SYSLNK.CRTE.PARTIAL-BIND a second time - in addition to linking the start LLM - you must use the respective CRTE library again. An example of this would be linking the local task part of the COBOL runtime system; see example on "Linking the start LLM".

The possibilities for shareable loading are explained in the following sections. Information on which runtime routines are shareable and which are non-shareable can be found in the description of the respective runtime system.

Please note that a load module containing runtime system modules must never be exchanged while the application program is executing, as this may result in errors that are difficult to diagnose.