HP-UX Linker and Libraries User's Guide

linkage table A table containing the addresses of shared library routines and data. A process calls shared
library routines and accesses shared library data indirectly through the linkage table.
load graph A list of dependent shared libraries in the order in which the libraries are to be loaded by the
dynamic loader. Any executable program or shared library with dependencies has a load graph.
local definition A definition of a routine or data that is accessible only within the object file in which it is defined.
lock file A file used to ensure that only one process at a time can access data in a particular file.
magic number A number that identifies how an executable file should be loaded. Possible values are
SHARE_MAGIC, DEMAND_MAGIC, and EXEC_MAGIC. Refer to magic(4) for details.
manpage A page in the HP-UX Reference. Manpage references take the form title(section), where title is
the name of the page and section is the section in which the page can be found. For example,
open(2) refers to the open page in section 2 of the HP-UX Reference. Or use the man(1) command
to view manpages, for example, man open.
mapfile The file which describes the mapping of input sections to segments in an output file.
millicode Special-purpose routines written in assembly language and designed for performance.
nonfatal binding Like immediate binding, nonfatal immediate binding causes all required symbols to be bound at
program startup. The main difference from immediate binding is that program execution continues
even if the dynamic loader cannot resolve symbols.
object code See relocatable object code.
object file A file containing machine language instructions and data in a form that the linker can use to
create an executable program.
object module A file containing machine language code and data in a form that the linker can use to create an
executable program or shared library.
parent process The process that spawned a particular process. See also process ID.
PBO See profile-based optimization.
PC-relative A form of machine-code addressing in which addresses are referenced relative to the program
counter register, or PC register.
physical address A reference to an exact physical memory location (as opposed to virtual memory location).
PIC See position-independent code.
pipe An input/output channel intended for use between two processes: One process writes into the
pipe, while the other reads.
PLT See procedure linkage table.
position-independent code
Object code that contains no absolute addresses. All addresses are specified relative to the
program counter or indirectly through the linkage table. Position-independent code can be used
to create shared libraries.
pragma A C directive for controlling the compilation of source.
procedure linkage
table
A linkage table that stores the addresses of procedures and functions.
process ID An integer that uniquely identifies a process. Sometimes referred to as PID.
profile-based
optimization
A kind of optimization in which the compiler and linker work together to optimize an application
based on profile data obtained from running the application on a typical input data set.
relocatable object
code
Machine code that is generated by compilers and assemblers. It is relocatable in the sense that
it does not contain actual addresses; instead, it contains symbols corresponding to actual
addresses. The linker decides where to place these symbols in virtual memory, and changes the
symbols to absolute virtual addresses.
relocation The process of revising code and data addresses in relocatable object code. This occurs when
the linker must combine object files to create an executable program. It also occurs when the
dynamic loader loads a shared library into a process's address space.
restricted binding A type of binding in which the dynamic loader restricts its search for symbols to those that were
visible when a library was loaded.
227