1999-03-30 20:40:22 +08:00
|
|
|
In the near future:
|
|
|
|
********************
|
1999-03-07 23:27:23 +08:00
|
|
|
|
1999-02-25 14:46:55 +08:00
|
|
|
* check whether the version of libtool.m4 is compatible
|
|
|
|
with ltconfig/ltmain.sh
|
|
|
|
|
1999-03-30 20:40:22 +08:00
|
|
|
* 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
|
|
|
|
1999-02-25 14:46:55 +08:00
|
|
|
* Lists of exported symbols should be stored in the pseudo library
|
|
|
|
so that the size of lt_preloaded_symbols can be reduced.
|
|
|
|
|
1999-03-07 23:27:23 +08:00
|
|
|
In the future:
|
|
|
|
**************
|
|
|
|
|
1999-02-25 14:46:55 +08:00
|
|
|
* 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.
|
|
|
|
|
1999-03-25 06:42:59 +08:00
|
|
|
* 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.
|
|
|
|
|
1999-03-23 18:40:00 +08:00
|
|
|
* 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
|
|
|
|
1999-01-20 18:21:01 +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.
|
|
|
|
|
1999-04-29 17:58:41 +08:00
|
|
|
* 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.
|
|
|
|
|
1999-03-30 20:40:22 +08:00
|
|
|
* 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.
|