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

A linkage table that stores the addresses of procedures and functions.

table

 

process ID

An integer that uniquely identifies a process. Sometimes referred to as PID.

profile-based

A kind of optimization in which the compiler and linker work together to optimize an application

optimization

based on profile data obtained from running the application on a typical input data set.

relocatable object

Machine code that is generated by compilers and assemblers. It is relocatable in the sense that

code

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