libtool/TODO

132 lines
5.7 KiB
Plaintext
Raw Normal View History

In the near future:
********************
* check whether the version of libtool.m4 is compatible
with ltconfig/ltmain.sh
* We could have an option to hardcode paths into libraries, as well as
binaries: `... -Wl,-soname -Wl,/tmp/libtest.so.0 ...'. This is not
possible on all platforms, and is in part obviated by the ability of
linking libtool libraries specified with -lname, but it might still
be desirable.
1998-01-26 03:35:11 +08:00
* Lists of exported symbols should be stored in the pseudo library
so that the size of lt_preloaded_symbols can be reduced.
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.
1998-03-09 13:34:02 +08:00
1999-05-10 19:26:12 +08:00
* Pavel Roskin writes about --enable-pic-static:
Is it true that the objects which are suitable for building shared
libraries are always suitable for building static libraries? If yes,
would it be a good idea to have an option which would enable building
shared and static libraries from the same object files. 50% speedup is
worth considering IMHO.
* Support -dlopen/dlpreopen for libraries.
This requires adding two new variables (dlopen/dlpreopen) to
the pseudo-library and later dlopening them when a program is linked
against such a library.
1999-01-20 21:45:21 +08:00
* Fix */demo on win32.
* merged my inter-library dependencies code from the ILD branch: * NEWS: inter-library dependencies are now supported * configure.in: add the depdemo subdirectory * depdemo/*: new demo to demonstrate inter-library dependencies * tests/depdemo*: new tests for depdemo * ltconfig.in: added hardcode_into_libs (whether library paths should be hardcoded into the libraries), it currently defaults to 'no' * ltmain.in: new internal 'relink' mode to relink libraries on platforms with hardcode_into_libs=yes, save command line arguments in libtool_args, accept relative -L directories, ignore -lm on BeOS and Cygwin, always ignore -lc, handle -l, -L and .la arguments later, always make the library installation directory (-rpath) absolute, in relink mode don't delete the not-relinked library and exit immediately after relinking, try to find already-installed libtool libraries that were specified using -l, support hardcoding of library paths into libraries too, export shlibpath before linking libraries, and a lot of other big changes that I don't want to describe here... please read the source. * merged Gary's Win32 code from the ILD branch: * NEWS: Win32 DLLs are now supported * TODO: removed .a library namespace clash for win32. It is now resolved. * ltconfig.in (cygwin, library_names_spec): removed $libname.a. Creating a dll with libtool no longer creates an import library. * ltconfig.in (extract_expsyms_cmds): Create $objdir if it does not exist -- i.e. we need to generate import an import library in a directory which has no libs of its own. * doc/libtool.texi (old_archive_from_expsyms_cmds, extract_expsyms_cmds): documented these new variables. * ltconfig.in (extract_expsyms_cmds): New variable. Commands to extract the exported symbol list from a dll. (old_archive_from_expsyms_cmds): New variable. Commands to build an old archive from the extracted expsyms list. * ltmain.in: run the cmds in extract_expsyms_cmds and old_archive_from_expsyms_cmds as necessary. * ltconfig.in (cygwin, old_archive_from_new_cmds): no longer required. * ltconfig.in (cygwin, shlibpath_overrides_runpath): I'm not even sure whether win32 honours the runpath at all when searching for a dll to load! Anyway, when set to yes this prevents a gratuitous warning. * ltmain.in (deplib): The cygwin environment doesn't actually have -lm, and although the linker fakes having one, specifiying it to libtool will break ILD, so we ignore it when generating dependencies.
1999-03-19 05:57:08 +08:00
This may simply require resolving the item below.
1998-12-24 01:30:12 +08:00
* 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.
* jeffdb@goodnet.com writes
all you need to do for mutually dependant
.dll's is to create an implib from a .def file
so it appears that we might need to detect and handle mutual dependencies
specially on win32 =(O|
1998-03-09 13:34:02 +08:00
* If not cross-compiling, have the static flag test run the resulting
binary to make sure everything works.
1997-11-28 00:57:00 +08:00
1997-08-12 23:19:11 +08:00
* 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.
1997-09-15 20:31:09 +08:00
People who need it:
Jean Daniel Fekete <Jean-Daniel.Fekete@emn.fr>
Thomas Hiller <hiller@tu-harburg.d400.de>
1999-04-25 16:32:28 +08:00
* We need some mechanism to allow users to pass flags to the linker
and/or to the compiler, when creating libtool archives. We could
recognize linker flags such as `-Wl,flag' and `-Xlinker flag' in
libtool's command line, and passing them down to the linker, if "$wl"
is `-Wl,', or stripping the `-Wl,' part if we're calling `ld'
directly. We could also introduce `-Wc,flag' and `-Xcompiler flag' to
allow unrecognized flags to be passed to the compiler, after stripping
by libtool.
1997-06-30 20:20:49 +08:00
* Another form of convenience library, suggested by Alexandre Oliva,
is to have undocumented utility libraries, where only the shared
version is installed.
1997-07-22 01:31:05 +08:00
* We could use libtool object convenience libraries that resolve
1998-01-26 03:35:11 +08:00
symbols to be included in a libtool archive. This would require some
sort of -whole-archive option, as well.
1997-07-22 01:31:05 +08:00
* 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.
* Try to find a work-around for -[all-]static and libltdl on platforms
that will fail to find dlopening functions in this case, such as AIX
4.3.2.0. Maybe creating an alternate libltdl that provides only for
dlpreopening, or creating an additional static library to provide
dummy implementations of the functions that can't be linked
statically. This could hardly be made completely transparent, though.
1997-07-09 01:08:33 +08:00
* 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.
* Filenames containing shell meta-characters are not properly handled
by libtool. Compiling a file named "a;b.c", for example, fails.
1997-05-25 06:50:52 +08:00
Things to think about:
**********************
1997-04-02 03:04:40 +08:00
1997-05-25 06:50:52 +08:00
* 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.
1998-02-12 13:45:15 +08:00
* Maybe implement full support for other orthogonal library types
(libhello_g, libhello_p, 64 vs 32-bit ABI's, etc). Make these types
configurable.