This package contains my shared, dynamic linker (ld.so) and utilities
(ldconfig and ldd) for Linux.

For those that were not involved in the development of ld.so, its main
feature is that the user-level, shared library and dynamic linking
support has been moved to its own, special shared library.  This has
two significant advantages.  First, the startup code for all binaries,
which must be linked statically, is reduced by about 2.5k.  Second,
and probably more important, the shared library and dynamic linking
support can be upgraded for all binaries without having to relink by
simply installing a new ld.so.

In addition to ld.so, this package also includes two, related
utilities, ldconfig and ldd.  Ldconfig is used to automatically update
symbolic links to shared libraries and build the library cache used by
ld.so.  This should hopefully put an end to the common problem of
accidentally deleting a critical library link (eg. /lib/libc.so.4).
Ldd is used to list the shared libraries dependencies for a binary.

Please see the included manual pages for further details.

To install, simply run "sh instldso.sh" as root.  Ready-to-go versions
of all end-products are provided so nothing should need to be compiled
or linked.

Notable contributors to this package include Eric Youngdale, Peter
MacDonald, Hongjiu Lu, Linus Torvalds, Lars Wirzenius and Mitch
D'Souza (not necessarily in that order).

Changes in version 1.4.3:

	Fixed an obscure bug in ld.so where an index was not being
	incremented when a library was not found using the cache.

Changes in version 1.4.2:

	Changed ldconfig to issue a warning and continue instead
	of an error and exiting when a link can't be updated.  
	This is useful when some libraries are imported on read-
	only file systems, such as an NFS mounted /usr.

	Changed ld.so to be more robust in searching for libraries.
	A library is not considered found unless it can actually be
	loaded.  If a library is not found using the cache, the
	standard directories are searched as in pre-cache versions.

Changes in version 1.4.1:

	Fixed minor Makefile problems.

	Added support for linux-68k.

	Fixed a bug in ld.so where libraries with absolute paths
	were not handled correctly.

	Changed ld.so to ignore the directory in the names of
	shared libraries by default.  This allows older libraries
	with absolute paths, such as the XView libraries, to take
	advantage of the cache support.

	Added a minimal usage message to ldconfig.

Changes in version 1.4:

	Fixed bug in ld.so where minor version numbers were not
	reported correctly when a minor version incompatibility
	was found.

	Fixed bug in ldconfig where libraries with subversion
	numbers greater than 9 were not compared correctly.

	Added Mitch D'Souza's support for suppressing warning
	messages from ld.so about minor version incompatibilities.

	Added Mitch D'Souza's support for using a cache to speed
	up searching for libraries in the standard directories.

	Added Mitch D'Souza's support for a debugging version of
	ld.so.  Link with -lldso if you think you are experiencing
	dynamic linker problems.

Changes in version 1.3:

	Added support for libraries using absolute pathnames.  If I
	had known that the XView libraries used them, I would have
	added this earlier.

	Fixed a bug handling old libraries using a pathname beginning
	with '/' or '/lib/'.

Changes in version 1.2a:

	Fixed a minor bug in ldd which caused all files, specifically
	scripts, to be recognized as binaries.  Thanks to Olaf Flebbe
	for reporting it.

David Engel
david@ods.com
