5a81ed9667
It addresses a number of problems that were present in earlier versions. The calls to the "init" and "fini" functions of shared libraries have been reordered, so that they are called in a strictly nested fashion, as is required for C++ constructors and destructors. In addition, the "init" functions are called in better order relative to each other. That makes the system more tolerant of C++ programs which depend on a library's being initialized before its clients. The dynamic linker is now more tolerant of shared libraries in which dependencies on other shared libraries are incompletely recorded. Cleanup in the event of errors has been improved throughout the dynamic linker. A number of memory leaks were eliminated. The warning message for a shared library whose minor version number is too old has been clarified. The code dealing with the "ld.so.hints" file has been cleaned up. A bug that caused the hints file to be unmapped incompletely has been fixed. A different bug that could potentially cause the hints file to be mapped on top of a loaded object has been fixed. The code that searches for shared libraries has been cleaned up. The searching is now more compatible with that done by SunOS and SVR4. Also, some unnecessary and useless searches of both the hints file and library directories have been eliminated. Reviewed by: nate@freebsd.org |
||
---|---|---|
.. | ||
i386 | ||
Makefile | ||
md-prologue.c | ||
rtld.1 | ||
rtld.1aout | ||
rtld.c | ||
shlib.c |