mirror of
git://git.savannah.gnu.org/libtool.git
synced 2025-01-18 14:16:00 +08:00
* TODO: added items for next alpha release, ILD etc.
* libltdl/ltdl.c: removed unnecessary check from presym_sym, fixed bug in lt_dlclose, allow lt_dlopenext(NULL), set deplibs for lt_dlopen(NULL)
This commit is contained in:
parent
a3ea7d4616
commit
11cb604bc9
@ -1,3 +1,10 @@
|
||||
1999-02-25 Thomas Tanner <tanner@gmx.de>
|
||||
|
||||
* TODO: added items for next alpha release, ILD etc.
|
||||
* libltdl/ltdl.c: removed unnecessary check from presym_sym,
|
||||
fixed bug in lt_dlclose, allow lt_dlopenext(NULL),
|
||||
set deplibs for lt_dlopen(NULL)
|
||||
|
||||
1999-02-24 Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
* ltmain.in (file_magic_regex): sed `10q' is faster than `11,$d'
|
||||
|
51
TODO
51
TODO
@ -1,15 +1,54 @@
|
||||
For next public release:
|
||||
************************
|
||||
For next alpha release:
|
||||
***********************
|
||||
|
||||
* 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.
|
||||
* Fast installation (linking on demand in the build tree)
|
||||
must be optional.
|
||||
|
||||
* check whether the version of libtool.m4 is compatible
|
||||
with ltconfig/ltmain.sh
|
||||
|
||||
* libltdl is broken when configured with --enable-ltdl-install
|
||||
|
||||
* check whether the "file" command is available
|
||||
|
||||
* update the NEWS file
|
||||
|
||||
* Tom Lane adds that HP-UX's linker, at least (I've also found this on
|
||||
AIX 4), distinguishes between global function and global variable
|
||||
references. This means that we cannot declare every symbol as `extern
|
||||
char'. Find a workaround.
|
||||
|
||||
For next public release:
|
||||
************************
|
||||
|
||||
* 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.
|
||||
|
||||
* 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.
|
||||
|
||||
* Documentation:
|
||||
|
||||
- libltdl documentation needs to be completed.
|
||||
@ -19,6 +58,8 @@ char'. Find a workaround.
|
||||
|
||||
- Purpose and usage of convenience libraries must be better documented
|
||||
|
||||
- some new internal variables are not documented yet.
|
||||
|
||||
In the future:
|
||||
**************
|
||||
|
||||
|
@ -658,7 +658,7 @@ presym_sym (handle, symbol)
|
||||
|
||||
syms++;
|
||||
while (syms->address) {
|
||||
if (syms->address && strcmp(syms->name, symbol) == 0)
|
||||
if (strcmp(syms->name, symbol) == 0)
|
||||
return syms->address;
|
||||
syms++;
|
||||
}
|
||||
@ -1051,6 +1051,8 @@ lt_dlopen (filename)
|
||||
return 0;
|
||||
}
|
||||
handle->usage = 0;
|
||||
handle->depcount = 0;
|
||||
handle->deplibs = 0;
|
||||
newhandle = handle;
|
||||
if (tryall_dlopen(&newhandle, 0) != 0) {
|
||||
lt_dlfree(handle);
|
||||
@ -1244,10 +1246,8 @@ lt_dlopenext (filename)
|
||||
int len;
|
||||
const char *saved_error = last_error;
|
||||
|
||||
if (!filename) {
|
||||
last_error = file_not_found_error;
|
||||
return 0;
|
||||
}
|
||||
if (!filename)
|
||||
return lt_dlopen(filename);
|
||||
len = strlen(filename);
|
||||
if (!len) {
|
||||
last_error = file_not_found_error;
|
||||
@ -1322,7 +1322,8 @@ lt_dlclose (handle)
|
||||
handles = handle->next;
|
||||
error = handle->type->lib_close(handle);
|
||||
error += unload_deplibs(handle);
|
||||
lt_dlfree(handle->filename);
|
||||
if (handle->filename)
|
||||
lt_dlfree(handle->filename);
|
||||
if (handle->name)
|
||||
lt_dlfree(handle->name);
|
||||
lt_dlfree(handle);
|
||||
|
Loading…
Reference in New Issue
Block a user