HP-UX Reference (11i v1 05/09) - 5 Miscellaneous Topics (vol 9)

d
dld.sl(5) dld.sl(5)
/opt/java1.3/jre/lib/PA_RISC2.0/server # java 1.3 PA32
/opt/java1.3/jre/lib/PA_RISC2.0W/
# java 1.4
/opt/java1.4/jre/lib/PA_RISC2.0/:/opt/java1.4/jre/lib/PA_RISC2.0/server
/opt/java1.4/jre/lib/PA_RISC2.0W/:/opt/java1.4/jre/lib/PA_RISC2.0W/server
DIAGNOSTICS
If the dynamic loader is not present, or cannot be invoked by the process for any reason, an error message
is printed to standard error and the process terminates with a non-zero exit code.
These errors fall into two basic categories: errors in attaching a shared library, and errors in binding sym-
bols. The former can occur only at process startup time but the latter can occur at any time during process
execution unless the -B immediate option is used with
ld. Possible errors that can occur while attach-
ing a shared library include library not present, library not executable, library corrupt, high water mark too
low, or insufficient room in the address space for the library. Possible errors that can occur while binding
symbols include symbol not found (unresolved external), or library corrupt.
When using the explicit load facilities of the dynamic loader, these types of errors are not considered fatal.
Consult shl_load(3X), dlclose(3C), dlget(3C), dlgetname(3C), dlmodinfo(3C), dlopen(3C), and dlsym(3C) for
more information. On PA-RISC 64-bit systems, to see error messages, use the
dlerror() routine. This
routine will print the last error message recorded by the dynamic loader.
WARNINGS
The startup cost of the dynamic loader is significant, even with deferred binding, and can cause severe per-
formance degradation in processes dominated by startup costs (such as simple ‘‘hello world’’ programs). In
addition, position-independent code is usually slower than normal code, so performance of a program may
be adversely affected by the presence of PIC in shared libraries. However, the advantages of decreased
disk space usage and decreased memory requirements for executables should outweigh these concerns in
most cases.
There are rare cases where the behavior of a program differs when using shared libraries as opposed to
archive libraries. This happens primarily when relying on undocumented and unsupported features of the
compilers, assembler, and linker. See the
+help option to ld(1) or the HP-UX Linker and Libraries User’s
Guide manual for more details.
The library developer is entirely responsible for version control and must be thorough in identifying incom-
patible changes to library interfaces. Otherwise, programs may malfunction unexpectedly with later ver-
sions of the library. There is little an application user can do if version control is not handled properly by
the library developer. The application developer can usually resolve problems by modifying the source code
to use the new interfaces then recompiling and relinking against the new libraries.
By default, most warnings are not reported by the dynamic loader.
On PA-RISC 32-bit systems, if you wish to see all of the messages, set the environment variable
_HP_DLDOPTS to contain one or more options. The following options are supported:
-warnings Display additional dynamic loader warning messages. Some of these include:
Symbols of the same name but different types, such as CODE and DATA. See the
WARNINGS section in ld(1) for more details on this warning.
Using certain flags or routines described in shl_load(3X).
-fbverbose See fastbind(1).
-nofastbind See fastbind(1).
On PA-RISC 64-bit systems, if you wish to see all error messages, set the environment variable
DLD_VERBOSE_ERR to true.
AUTHOR
The /usr/lib/dld.sl and /usr/lib/pa20_64/dld.sl
shared libraries were developed by HP.
FILES
/etc/dld.sl.conf
list of shared libraries for lookup with setuid programs
HP-UX 11i Version 1: September 2005 7 Hewlett-Packard Company Section 547