rld Manual
RLD Overview
RLD Manual—528857-006
1-4
How rld Operates
If that “unresolved” symbol is needed and cannot be found, rld reports an
error to the operating system and aborts the load.
If the operating system informed rld that the rebind is shared, rld reports
back the final LIC to the operating system (which can cache or update the
bindings in the loadfile).
rld rebinds the special C++ globalized symbols, if any, using the
globalized search rules. The search differs between TNS/R and TNS/E.
On TNS/R, rld first searches for the globalized symbols in the SRLs
residing on the loadList, then searches the remaining loadfiles containing
globalized symbols residing on the loadList. For SRLs, duplicate
globalized symbols will result in an error.
On TNS/E, rld searches for globalized symbols in those loadfiles on the
loadList containing globalized symbols.
5. rld indicates completion of the load
If the load is successful:
rld indicates the existence of any unresolved procedure symbols in any
loadfile.
rld provides the IniTerm count information. (See notes below for a discussion
of IniTerm Functions).
rld also provides a call-back function to the operating system to retrieve the
IniTerm lists in the loadfiles. The callback function returns a relocated address
for each IniTerm list. The function pointers within each of the IniTerm lists are
also relocated.
In the case where the loader library is required by some loadfile, rld de-
allocates all the keys and informs the operating system that the loader library
cannot be unloaded.
In the case where there are no references to loader library, rld informs the
operating system to unload the loader library, along with its data. rld
deallocates all the keys except the loader library key, which is deallocated by
the operating system after it processes the IniTerm lists.
If the load is unsuccessful, rld passes back an error code to the operating system.
Notes on Dynamic Loading and Linking
The runtime dynamic linking functions dlopen(), dlclose(), dlsym(),
dlresultcode()and dlerror() give the user direct access to the dynamic linking
facilities.