The prelinker performs the following functions:
- Collects information for runtime initialization, including data
initialization for C/C++, constructor/destructor calls for static
objects in C++, and DLL initialization information.
- For C object modules compiled with RENT, C++ programs, Enterprise PL/I for z/OS programs,
or COBOL programs with OO extensions, the prelinker:
- Combines writable static initialization information
- Assigns relative offsets to objects in writable static storage
- Removes writable static name and relocation information
- For programs containing longnames, such as C programs compiled
with LONGNAME, C++ programs, Enterprise PL/I for z/OS programs, and COBOL programs
compiled with PGMNAME(LONGMIXED) or PGMNAME(LONGUPPER), the prelinker
maps LONGNAME option to SHORTNAME option on output.
- For programs that use DLLs, the prelinker:
- Generates a function descriptor in writable static for each DLL
referenced function
- Generates a variable descriptor for each DLL referenced variable
- Generates an IMPORT control statement for each exported function
and variable
- Generates internal information for the load module that describes
symbols that are exported to and imported from other load modules
- Combines static DLL initialization information
- Uses longnames to resolve exported and imported symbols