Linker Terms

Dynamic Overlay :

Allows a module’s code to be divided into pages to be brought into and out of memory on a least recently used basis.

Freeformat :

The suggested command interface for .RTLink, allowing you to specify linker commands in any order on the command line. It is easier to create, examine and change FREEFORMAT command lines. It is compatible with the Plink86-Plus syntax.

Group :

An Intel 8086 addressing classification defining a collection of segments to be addressed using the same segment register. Note that a group is not a section but rather a logical concept used only for addressing.

Incremental Linking :

The ability to link only the modules of an application that have been changed, greatly increasing the speed in which the link occurs.

See Also: Linking, Module

Library :

A file containing one or more object modules. Modules are extracted by linker and combined with object files to form an executable (.EXE) file or a prelink library (.PLL) file.

Linking :

The process in which object files and libraries are combined and references are resolved to produce a relocatable memory image (generally, an executable).

Map File (.MAP) :

The map file (.MAP) contains information about symbol and segment addresses within the memory image created by .RTLink. It is generated when requested through the use of the appropriate command line switch. A map file generated during a link will have much more information than one produced during the creation of a prelinked library. During the .PLL creation, only symbols, names, and some relative addresses are known. During a link, the final memory layout is known, and a more detailed map can be created.

Module :

A portion of the object code that is a discrete unit. If any part of a module is linked, the entire module must be linked.

Overlay :

A section of an executable program that shares memory with other sections of the same program. An overlay is read into memory when the code residing in it is requested by the root (nonoverlayed) section or another overlay.

See Also: Dynamic Overlay

Positional :

The POSITIONAL command interface requires that certain items appear on the input line in a specific order. This syntax is similar to Microsoft LINK interface. Because this syntax limits the use of .RTLink overlays to one overlay area, it is recommended that the FREEFORMAT syntax be used.

Prelinked Library :

Part of the executable program that is stored external to the .EXE file. Prelinked libraries are created before producing an executable in a multistep link. This allows you to create a runtime library with code that you access from different programs, considerably speeding up the linking process.

Root :

A special section of the program that has the lowest address of all sections. This is the first section of the program loaded into memory by DOS or the RTLINKST.COM startup code. Other sections are loaded by the overlay manager.

Section :

Load module portion of an .EXE or .OVL file loaded into memory as a single unit. In a program with overlays, the root section containing the main program module loads when the program is executed. Other sections are loaded as overlays when modules within them are invoked.

See Also: Dynamic Overlay, Linking

Segment :

Code or data handled by the linker as a indivisible unit.

Static Overlay :

A section of the program that is not always resident in RAM, and shares memory with other sections. The section that is currently in use is loaded into memory, allowing a larger program to execute in less available RAM.

Swapfile :

Also known as the workfile, used by .RTLink to swap data and code in and out of memory during the linking process.

Symbol :

An assigned name for a value representing a constant or the address of code or data. There are four types of symbols used by the linker defined as follows:

. Absolute symbol: a constant

. Relative symbol: address of code or data

. Public symbol: accessed by modules other than the module in which they are defined. Public symbols are used to share procedures and variables between modules. As such, the relative address of a public symbol is assigned by the compiler during compilation.

. External symbol: a public symbol not defined in the current module. Generally, these are references into CLIPPER.LIB or EXTEND.LIB, but the compiler generates them whenever there is a procedure or user-defined function referenced but not compiled into the current module.

Undefined Symbol :

An unresolved symbol) that was never declared public by a module, but which is referenced by another module. After the public symbol definition is encountered, the symbol becomes defined (resolved). When a symbol is referenced, but not defined, it is said to be undefined.

Workfile :

See : Swapfile