* 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:
Thomas Tanner 1999-02-25 06:46:55 +00:00
parent a3ea7d4616
commit 11cb604bc9
3 changed files with 60 additions and 11 deletions

View File

@ -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
View File

@ -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:
**************

View File

@ -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);