freebsd-nq/libexec
John Polstra 44a028c369 Revamp the code that calls shared libraries' init and fini functions.
Formerly the init functions were called in the opposite of the
order in which libraries were loaded, and libraries were loaded
according to a breadth-first traversal of the dependency graph.
That ordering came from SVR4.0, and it was easy to implement but
not always sensible.

Now we do a depth-first walk over the dependency graph and call
the init functions in an order such that each shared object's needed
objects are initialized before the shared object itself.  At the
same time we build a list of finalization (fini) functions in the
opposite order, to guarantee correct C++ destructor ordering whenever
possible.  (It may not be possible if dlopen and dlclose are used
in strange ways, but we come as close as one can come.)

The need for this renovation has become apparent as more programs
have started using multithreading.  The multithreaded C library
libc_r requires initialization, whereas the standard libc does not.
Since virtually every other object depends on the C library, it is
important that it get initialized first.
2000-07-26 04:24:40 +00:00
..
atrun Don't uselessly set MANDEPEND (it isn't used in this Makefile, and isn't 2000-05-15 15:01:13 +00:00
bootpd Fix bootpd for Alpha. 1999-11-12 10:11:48 +00:00
comsat $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
fingerd Support logging for IPv6 remote host. 2000-02-18 07:08:03 +00:00
ftpd Don't reply "not a plain file" when the requested file doesn't exist. 2000-07-17 22:24:52 +00:00
getNAME $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getty Changed setflags() to set_flags(). This fixes world breakage due to 2000-01-28 07:12:03 +00:00
mail.local $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
makekey Revert the libcrypt/libmd stuff back to how it was. This should not have 1999-12-18 13:55:17 +00:00
mknetid $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
named-xfer $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
pppoed Add a ``-P pidfile'' option 1999-11-23 00:21:20 +00:00
rbootd $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
revnetgroup Don't call err() without a format string. 2000-07-11 23:53:22 +00:00
rexecd Man page fixups 2000-05-15 14:06:07 +00:00
rlogind Use libcrypto instead of libdes. 2000-02-24 21:18:08 +00:00
rpc.rquotad Fix various man pages to stop abusing the .Bx macro to generate the 2000-01-23 02:18:19 +00:00
rpc.rstatd $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
rpc.rusersd $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
rpc.rwalld $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
rpc.sprayd $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
rshd Plug the hole where rshd would bypass a proper .rhosts check if the 2000-07-05 17:47:17 +00:00
rtld-aout Move the man pages for the a.out dynamic linker into the 1aout 2000-01-29 03:13:49 +00:00
rtld-elf Revamp the code that calls shared libraries' init and fini functions. 2000-07-26 04:24:40 +00:00
smrsh Build sendmail-8.9.1 smrsh 1998-08-04 15:31:31 +00:00
talkd Add $FreeBSD$ lines to man pages that are missing them to make it 1999-08-28 23:10:20 +00:00
telnetd Minor mdoc cleanup. 2000-05-05 02:21:45 +00:00
tftpd Add $FreeBSD$ lines to man pages that are missing them to make it 1999-08-28 23:10:20 +00:00
uucpd IPv6 support. 2000-05-14 18:01:05 +00:00
xtend $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
ypxfr Spelling fix: transfered --> transferred 2000-06-02 21:22:09 +00:00
Makefile Wrap uucpd behind the NOUUCP knob. 2000-03-24 18:21:09 +00:00
Makefile.inc