Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Module libraries

&pagelevel(4)&pagelevel

The SYSLNK.CRTE library

This library contains:

  • Individual modules of the C runtime system (object modules of type R)

    These modules can be linked statically or dynamically. The C runtime system can also be linked dynamically, provided the SYSLNK.CRTE.PARTIAL-BIND library (for the standard partial bind linking method) or the SYSLNK.CRTE.COMPL library (for the complete partial bind linking method) is specified instead of the SYSLNK.CRTE library when linking with BINDER.

    The C runtime system is always required in order to run C/C++ programs. Among other things, it contains the code for all the C library functions, the central I/O routines for the implementation of C++ I/O functions, and additional routines for the implementation of operating system interfaces.

    Many entry names of the C runtime system begin with “IC@”, “ICS” or “ICX”.

  • Name adapter modules for new C library functions (object modules of type R and LLMs of type L)

    Adapter modules belong to the non-preloadable components of the C runtime system and must consequently be linked into the application program. They are contained both in the SYSLNK.CRTE library and in the SYSLNK.CRTE.PARTIAL-BIND library.

    Detailed technical information on these adapter modules can be found in the section“Concept of a name adapter module in the C runtime system”.

  • The C runtime system as a dynamically loadable prelinked module (LLM, type L).

    This prelinked module is dynamically loaded into the user address space at runtime if the library SYSLNK.CRTE.PARTIAL-BIND is specified instead of the SYSLNK.CRTE library and if the dynamically loadable C runtime system has not been preloaded.

The SYSLNK.CRTE.PARTIAL-BIND and SYSLNK.CRTE.COMPL libraries

These libraries allow C programs to be linked without unresolved external references and enable the C runtime system to be loaded dynamically only at the time of execution. Connection modules, which are linked instead of the C runtime module and satisfy all unresolved external references of a C program to the C runtime system, are included in the libraries for this purpose. These libraries also contain all the other modules that are required in order to link a C program without any unresolved external references to the CRTE (e.g. ILCS modules and name adapter modules).

SYSLNK.CRTE.PARTIAL-BIND is needed for the standard partial bind linking method while SYSLNK.CRTE.COMPL is used for the complete partial bind linking method. For details concerning the partial bind linking method as well as for differences between standard partial bind and complete partial bind see the CRTE user guide [4].

The C runtime system itself is available in the form of a dynamically loadable prelinkedmodule in the library SYSLNK.CRT and is dynamically loaded into the user address space at runtime if the program cannot be connected to the preloaded C runtime system.

Since only the connection modules are linked and not the entire C runtime system, the finished (i.e. fully-linked) program or module is significantly smaller in size and requires much less disk storage space than when statically linking C runtime modules from the library SYSLNK.CRTE. Furthermore, this also results in faster load times if the C runtime system is preloaded.

See also the CRTE user guide [4] for more technical information.

The SYSLNK.CRTE.CPP and SYSLNK.CRTE.CFCPP libraries

These libraries contain the modules of the Cfront-compatible C++ runtime system (LLMs, type L).

SYSLNK.CRTE.CPP contains the modules of all C++ library functions for complex math and standard I/O that are available in the Cfront C++ mode of the compiler. The entry names begin with “ICP”.

SYSLNK.CRTE.CFCPP contains the modules for the internal runtime routines that are needed in the Cfront C++ mode of the compiler to implement initialization, storage management, etc. The entry names begin with “IPP”.

The modules can be linked statically or dynamically with BINDER or DBL, respectively. Note that modules from the SYSLNK.CRTE.CFCPP library must be linked with precedence before the modules from the SYSLNK.CRTE.CPP library.

See also section "The C++ library for the Cfront C++ language mode C++ V2".

The SYSLNK.CRTE.POSIX library

This library contains a “linkage option” module, which must be linked whenever the POSIX functions of the C runtime system are to be used. This module must always be linked with precedence before the modules in the library SYSLNK.CRTE,
SYSLNK.CRTE.PARTIAL-BIND or SYSLNK.CRTE.COMPL When linking with BINDER, this library should preferably be linked by means of an INCLUDE statement (without specifying the module name), since the use of RESOLVE statements, by contrast, would require the linkage order to be strictly observed. This also applies when linking with the BIND statement of the compiler, which means that the INCLUDE option should be used in the MODIFY-BIND-PROPERTIES statement.

The SYSLNK.CRTE.STDCPP and SYSLNK.CRTE.RTSCPP libraries

These libraries contain the modules of the C++ V3 runtime system (LLMs, type L).

SYSLNK.CRTE.STDCPP contains the modules for the standard C++ library, which can be used in the C++ V3 mode of the compiler.

SYSLNK.CRTE.RTSCPP contains the modules for the internal runtime routines that are needed in the C++ V3 mode of the compiler to implement, among other things,
the C++ exception handling and the C++ runtime type information (RTTI).

The modules can be linked statically with the BIND statement of the compiler or dynamically with DBL.

See also section “The C++ library for the language mode C++ V3”.

The SYSLNK.CRTE.TOOLS library

This library contains the modules (LLMs, type L) for the C++ V3 library Tools.h++, which can be used in the C++ V3 mode of the compiler.

The modules can be linked statically with the BIND statement of the compiler or dynamically with DBL.

See also section “The C++ V3 library Tools.h++”.

The SYSLNK.CRTE.CPP-COMPL library

This library contains adapters for the SYSLNK.CRTE.STDCPP, SYSLNK.CRTE.RTSCPP and SYSLNK.CRTE.TOOLS libraries.

The SYSLNK.CRTE.CXX01 library

This library contains the modules of the C++ 2017 and C++ 2020 runtime system (LLMs, type L). This library will be used when library version 1 is selected.

See also section "The modern C++ library in version 1“.

The SYSLNK.CRTE.CXX02 library

This library contains the modules of the C++ 2017 and C++ 2020 runtime system (LLMs, type L). This library will be used when library version 2 is selected.

See also section "The modern C++ library in version 2“.