Chapter 7 261
Position-Independent Code
What is Absolute Object Code?
What is Absolute Object Code?
Absolute object code is machine code that contains references to
actual addresses within the program's address space. When the linker
combines relocatable object files to build a program file, or a.out file, it
writes absolute object code into the file. Thus, when the program is
executed, its routines and data must reside at the addresses determined
by the linker.
Note that absolute object code does not contain physical addresses.
Physical addresses refer to exact locations in physical memory. Instead,
absolute object code contains virtual addresses within a process's
address space. These virtual addresses are mapped to physical addresses
by the HP-UX virtual memory management system.
Because program files contain absolute virtual addresses, the HP-UX
program loader, exec, must always load the code and data into the same
location within a process's address space. Because this code always
resides at the same location within the address space, and because it
contains virtual addresses, it is not suitable for shared libraries,
although it can be shared by several processes running the same
program.