For next public release: ************************ * check whether the version of libtool.m4 is compatible with ltconfig/ltmain.sh * Inter-library dependencies should be fully tracked by libtool and need to work for ltlibraries too. This requires looking up installed libtool libraries for transparent support. Thomas Tanner has a patch for this. * Alexandre Oliva suggests that we should have an option to hardcode paths into libraries, as well as binaries: `... -Wl,-soname -Wl,/tmp/libtest.so.0 ...'. Tim Mooney wants the same thing. * Lists of exported symbols should be stored in the pseudo library so that the size of lt_preloaded_symbols can be reduced. * Documentation: - AC_PROG_LIBTOOL, AC_ENABLE/DISABLE_SHARED/STATIC/FAST_INSTALL, AC_LIBTOOL_DLOPEN, AC_LIBLTDL_CONVENIENCE/INSTALLABLE are not documented - Purpose and usage of convenience libraries must be better documented - some new internal variables are not documented yet. In the future: ************** * Godmar Back writes: libltdl uses such stdio functions as fopen, fgets, feof, fclose, and others. These functions are not async-signal-safe. While this does not make libltdl unusable, it restricts its usefulness and puts an unnecessary burden on the user. As a remedy, I'd recommend to replace those functions with functions that POSIX says are async-signal-safe, such as open, read, close. This will require you to handle interrupted system calls and implement fgets, but the former isn't hard and there's plenty of implementations out from which you can steal the latter. I believe relying on async-signal-safe functions to the greatest extent possible would greatly improve libltdl's ability to be embedded in and used by other systems. * Fix */demo on win32. This may require resolving some of the items below. * Figure out how to use data items in dlls with win32. The difficult part is compiling each object which will be linked with an import lib differently than if it will be linked with a static lib. This will almost definitely require that automake pass some hints about linkage in to each object compilation line. * Resolve the name clash between import libs and static libs on win32. Probably the best way to do this is to create lib$name-dll.a for the import library, and continue to use lib$name.a for the static lib. libtool --mode=link can then favour -dll.a over .a if there is a choice. No point in doing this until we can export data items (above). * If not cross-compiling, have the static flag test run the resulting binary to make sure everything works. * Implement full multi-language support. Currently, this is only for C++, but there are beginnings of this in the manual (Other Languages). This includes writing libtool not to be so dependent on the compiler used to configure it. We especially need this for C++ linking, for which libtool currently does not handle static constructors properly, even on operating systems that support them. ``Don't use static constructors'' is no longer a satisfactory answer. People who need it: Jean Daniel Fekete Thomas Hiller * Another form of convenience library, suggested by Alexandre Oliva, is to have undocumented utility libraries, where only the shared version is installed. * We could use libtool object convenience libraries that resolve symbols to be included in a libtool archive. This would require some sort of -whole-archive option, as well. * Currently, convenience libraries (.al) are built from .lo objects, except when --disable-shared. When we can build both shared and static libraries, we should probably create a .al out of .lo objects and also a .a out of .o objects. The .al would only be used to create shared libraries, whereas the .a would be used for creating static libraries and programs. * Need to finalize the documentation, and give a specification of `.la' files so that people can depend on their format. This also needs to be done so that DLD uses a public interface to libtool archives. This would be a good thing to put before the maintainance notes. Things to think about: ********************** * Talk with RMS about his so-called `automatic package generation tool.' This is probably what Thomas has been murmuring about for the Hurd. We'll need to integrate package-supplied programs such as libtool into that scheme, since it manages some of the preinstall and postinstall commands, but isn't installed itself. Probably, things like libtool should be distributed as part of such a binary package. * Maybe implement full support for other orthogonal library types (libhello_g, libhello_p, 64 vs 32-bit ABI's, etc). Make these types configurable.