HP-UX Linker and Libraries User's Guide
} else {
printf("text base = 0x%x\n", desc.text_base);
}
}
The shl_load Shared Library Management Routines
This section describes the shl_load family of shared library management routines.
NOTE: You can use these routines in both PA-32 and IPF/PA-64 mode. Support for these routines
may be discontinued in a future Itanium or PA-64 HP-UX release. If you use these routines in Itanium
or PA-64 mode, consider converting your programs to the dl* family of shared library management
routines.
The shl_load Routine
The shl_load routine explicitly loads a library.
Syntax
shl_t shl_load( const char * path,
int flags,
long address )
Parameters
path A null-terminated character string containing the path name of the shared library to load.
flags Specifies when the symbols in the library must be bound to addresses. It must be one of
these values, defined in <dl.h>:
DefinitionFlag
Binds the addresses of all symbols immediately upon loading the library.BIND_IMMEDIATE
Binds the addresses when they are first referenced.
Be aware that BIND_IMMEDIATE causes the binding of all symbols, and the resolution
of all imports, even from older versioned modules in the shared library. If symbols are not
BIND_DEFERRED
accessible because they come from old modules, they are unresolved and shl_load
may fail.
In addition to the above values, the flags parameter can be ORed with the following values:
DefinitionFlag
Allows binding of unresolved symbols.BIND_NONFATAL
Makes dynamic loader display verbose messages when binding symbols.BIND_VERBOSE
Inserts the loaded library before all others in the current link order.BIND_FIRST
Causes the dynamic loader to perform dynamic library searching when loading the
library. The +s and +b options to the ld command determine the directories the linker
searches. This is the default mode if +compat linker option is not specified.
DYNAMIC_PATH
Causes the dynamic loader to not call the initializer, even if one is declared for the
library, when the library is loaded or on a future call to shl_load or dlopen. This
also inhibits a call to the initializer when the library is unloaded.
BIND_NOSTART
Causes the search for a symbol definition to be restricted to those symbols that were
visible when the library was loaded.
BIND_RESTRICTED
168 Shared Library Management Routines