To: | krb5-bugs@MIT.EDU |
From: | Ken Raeburn <raeburn@MIT.EDU> |
Date: | Fri, 04 Feb 2005 16:58:43 -0500 |
Subject: | dynamic library init/fini breakage in 1.4 |
In the 1.4 code as shipped, most of our libraries won't have
unload-time cleanup code called if the configuration is such that we
have to implement them through linker options and not compiler
options.
This only matters a lot if dlclose is called on loaded libraries, a
case that hasn't been at the top of our priority list for testing; the
other time these functions would be invoked would be at process exit
time, when freeing up resources incrementally versus all at once
doesn't matter.
If the (not very well documented, implemented for testing, not
recommended) configuration option --disable-delayed-initialization is
used, then library initialization will fail for the same libraries.
Most library-building makefiles didn't get LIBINITFUNC/LIBFINIFUNC
specified yet. And for the krb5 library, for UNIX builds, I think two
symbols need to go in each, to deal with the profile library, which
may require rewriting some of the code going into the makefiles.
Ken
unload-time cleanup code called if the configuration is such that we
have to implement them through linker options and not compiler
options.
This only matters a lot if dlclose is called on loaded libraries, a
case that hasn't been at the top of our priority list for testing; the
other time these functions would be invoked would be at process exit
time, when freeing up resources incrementally versus all at once
doesn't matter.
If the (not very well documented, implemented for testing, not
recommended) configuration option --disable-delayed-initialization is
used, then library initialization will fail for the same libraries.
Most library-building makefiles didn't get LIBINITFUNC/LIBFINIFUNC
specified yet. And for the krb5 library, for UNIX builds, I think two
symbols need to go in each, to deal with the profile library, which
may require rewriting some of the code going into the makefiles.
Ken