HP-UX Reference (11i v1 00/12) - 5 Miscellaneous Topics, 7 Device (Special) Files, 9 General Information, Index (vol 9)

__________________________________________________________________________________________________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________
STANDARD Printed by: Nora Chuang [nchuang] STANDARD
/build/1111/BRICK/man5/!!!intro.5
________________________________________________________________
___ ___
d
dld.sl(5) dld.sl(5)
Amount of memory used by the hash table
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 PA64, 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 PA32, 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 additionaldynamic 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 PA64, 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.
SEE ALSO
System Tools:
aCC(1) invoke the HP-UX aC++ compiler
as(1) translate assembly code to machine code
CC(1) invoke the HP-UX C++ compiler
cc(1) invoke the HP-UX C compiler
chatr(1) change program’s internal attributes
f77(1) invoke the HP-UX FORTRAN compiler
f90(1) invoke the HP-UX Fortran 90 compiler
HP-UX Release 11i: December 2000 5 Section 545
___
___