Chapter 6 221
Shared Library Management Routines
The shl_load Shared Library Management Routines
BIND_FIRST is typically used when you want to make the symbols in a
particular library more visible than the symbols of the same name in
other libraries. Compare this with the default behavior, which is to
append loaded libraries to the link order.
DYNAMIC_PATH Modifier
The flag DYNAMIC_PATH can also be ORed with the flags parameter,
causing the dynamic loader to search for the library using a path list
specified by the +b option at link time or the SHLIB_PATH environment
variable at run time.
BIND_NOSTART Modifier
The flag BIND_NOSTART inhibits execution of initializers for the library.
BIND_RESTRICTED Modifier
This flag is most useful with the BIND_DEFERRED flag; it has no effect
with BIND_IMMEDIATE. It is also useful with the BIND_NONFATAL flag.
When used with only the BIND_DEFERRED flag, it has this behavior:
When a symbol is referenced and needs to be bound, this flag causes the
search for the symbol definition to be restricted to those symbols that
were visible when the library was loaded. If a symbol definition cannot
be found within this restricted set, it results in a run-time
symbol-binding error.
When used with BIND_DEFERRED and the BIND_NONFATAL modifier, it
has the same behavior, except that when a symbol definition cannot be
found, the dynamic loader will then look in the global symbol set. If a
definition still cannot be found within the global set, a run-time
symbol-binding error occurs.
BIND_TOGETHER Modifier
BIND_TOGETHER modifies the behavior of BIND_FIRST. When the
library being loaded has dependencies, BIND_FIRST causes each
dependent library to be loaded and bound separately. If the libraries
have interdependencies, the load may fail because the needed symbols
are not available when needed.