| The HP-UX Linker, Loader, and Tools enable you to create, control and manage the executables, shared libraries, or object files. The compiler invokes the linker with the appropriate options when building an executable or a shared library.
The HP-UX Linker features include:
- Symbol aliasing
- Incremental linking
- Function level versioning
- Faster program startup and better runtime performance with options, such as fastbind(1) and global symbol table
- Linker optimizations, such as elimination of unreferenced data or code
- Configurable security for setuid programs
- POSIX compliant dl* API routines along with HP-UX additions
- Support for industry standard Executable and Linking File format on Integrity and PA64 architectures
- Support for multiple page sizes and shared library segment merging for improved Translation Lookaside Buffer (TLB) performance
- Support for other tools, such as HP WDB and HP Caliper
- Support for filtered shared libraries, lazy loading, and direct binding
Loader performs the following tasks:
- Loading the shared libraries from disk to main memory for execution
- Resolving the symbols of a program made up of multiple shared libraries
In addition to the HP-UX Linker and Loader, a toolset is provided to help you find symbols, display and modify object files, and determine link order.
The following table lists the linker toolset:
| Tool |
Description |
| ld |
Takes one or more object files or libraries as input and combines them to produce a single (usually executable) file. |
| chatr |
Displays or modifies the internal attributes of an object file. |
| odump |
Takes one or more 32-bit native code files (object files, shared and archive libraries, executables) and dumps information about them. |
| elfdump |
Takes one or more object files or libraries and dumps information about them. Displays the contents of an ELF object file. |
| fastbind |
Improves start-up time of programs that use shared libraries. |
| ldd |
Lists dynamic dependencies of executable files and shared libraries. |
| lorder |
Finds ordering relationship for an object library. |
| nm |
Displays the symbol table of an object file. |
| pldd |
Lists the dynamic libraries linked into each process, including shared objects explicitly attached using dlopen/shl_load. |
| pstack |
Prints a stack trace (hex+symbolic) for each lwp (light weight process) in each process and core file. |
| size |
Prints sizes of object file elements. |
| strip |
Strips symbol and debugging information from an object file, executable, or archive library. |
| Dynamic Loader (dld.so/dld.sl) |
Responsible for setting up the runtime environment for:
- Using shared libraries
- Loading and unloading shared libraries
- Processing runtime symbol resolutions, etc.
|
| Programmatic interface to the dynamic loader (libdl/libdld)
Note: The libdl API is POSIX compliant. |
Using these files, a program can:
- Load or unload shared libraries
- Obtain runtime information about the shared libraries loaded
For example: symbol-to-address or address-to-symbol lookup, etc. |
|