NEWS - list of user-visible changes between releases of GNU Libtool
-New in 2.1b: 2005-??-??; CVS version 2.1a, Libtool team:
+New in 1.9h: 2005-??-??; CVS version 2.1a, Libtool team:
* New tests for support of Automake subdir-objects.
-* Support for Portland Group compiler on GNU/Linux.
* Fix libltdl on static platforms.
+* New lt_dlinterface_register, lt_dlinterface_set_data and
+ lt_dlinterface_get_data libltdl API calls to maintain separation of
+ concerns between modules loaded by different libraries.
+* Removed deprecated APIs from libltdl: lt_dlcaller_register,
+ lt_dlcaller_get_data, lt_dlcaller_set_data, lt_dlmutex_register,
+ lt_dlmutex_lock, lt_dlmutex_unlock, lt_dlmutex_seterror,
+ lt_dlmutex_geterror, lt_dlmalloc, lt_dlrealloc, lt_dlfree.
+* Support for Portland Group compiler on GNU/Linux.
* Support for linux-dietlibc (`diet' as well as `diet-dyn', separately).
* Shell optimizations which break use of the stdin file descriptor in libtool.
* `libtoolize --install' now also installs `install-sh'.
* Detection of compiler wrappers like distcc/ccache and $host_alias prefix.
* Initial Support for FC (modern Fortran).
* Fixed a regression that prevented use of libltdl without autotools.
-\f
-New in 1.9h: 2004-??-??; CVS version 1.9g, Libtool team:
* Bug fixes.
\f
New in 1.9f: 2004-10-23; CVS version 1.9e, Libtool team:
@noindent
The following types are defined in @file{ltdl.h}:
-@deftp {Type} lt_ptr
-@code{lt_ptr} is a generic pointer.
-@end deftp
-
@deftp {Type} lt_dlhandle
@code{lt_dlhandle} is a module ``handle''.
Every lt_dlopened module has a handle associated with it.
Return 0 on success.
@end deftypefun
-@deftypefun lt_ptr lt_dlsym (lt_dlhandle @var{handle}, const char *@var{name})
+@deftypefun {void *} lt_dlsym (lt_dlhandle @var{handle}, const char *@var{name})
Return the address in the module @var{handle}, where the symbol given
by the null-terminated string @var{name} is loaded.
If the symbol cannot be found, @code{NULL} is returned.
Return the current user-defined library search path.
@end deftypefun
-@deftypefun int lt_dlforeachfile (@w{const char *@var{search_path}}, @w{int (*@var{func}) (const char *@var{filename}, lt_ptr @var{data})}, @w{lt_ptr @var{data}})
+@deftypefun int lt_dlforeachfile (@w{const char *@var{search_path}}, @w{int (*@var{func}) (const char *@var{filename}, void * @var{data})}, @w{void * @var{data}})
In some applications you may not want to load individual modules with
known names, but rather find all of the modules in a set of
directories and load them all during initialisation. With this function
must mutex lock around libltdl calls, since they may in turn be calling
non-thread-safe system calls on some target hosts.
-Some old releases of libtool provided a mutex locking API that was
-unusable with POSIX threads, so callers were forced to lock around all
-libltdl API calls anyway. That mutex locking API was next to useless,
-and is not present in current releases.
+Some old releases of libtool provided a mutex locking @sc{api} that
+was unusable with POSIX threads, so callers were forced to lock around
+all libltdl @sc{api} calls anyway. That mutex locking @sc{api} was
+next to useless, and is not present in current releases.
Some future release of libtool may provide a new POSIX thread
-compliant mutex locking API.
+compliant mutex locking @sc{api}.
@node User defined module data
@section Data associated with loaded modules
handles of all the modules you have loaded, these functions allow you to
iterate over libltdl's list of loaded modules:
-@deftypefun int lt_dlforeach (@w{int (*@var{func}) (lt_dlhandle @var{handle}, lt_ptr @var{data})}, @w{lt_ptr @var{data}})
+@deftypefun int lt_dlforeach (@w{int (*@var{func}) (lt_dlhandle @var{handle}, void * @var{data})}, @w{void * @var{data}})
For each loaded module call the function @var{func}. The argument
@var{handle} is the handle of one of the loaded modules, @var{data} is
the @var{data} argument passed to @code{lt_dlforeach}.
returned by @samp{lt_dlhandle_next}.
@end deftypefun
-@deftypefun lt_ptr lt_dlcaller_set_data (@w{lt_dlinterface_id @var{key}}, @w{lt_dlhandle @var{handle}}, @w{lt_ptr @var{data}})
+@deftypefun {void *} lt_dlcaller_set_data (@w{lt_dlinterface_id @var{key}}, @w{lt_dlhandle @var{handle}}, @w{void * @var{data}})
Set @var{data} as the set of data uniquely associated with @var{key} and
@var{handle} for later retrieval. This function returns the @var{data}
previously associated with @var{key} and @var{handle} if any. A result of
For example, to correctly remove some associated data:
@example
-lt_ptr stale = lt_dlcaller_set_data (key, handle, 0);
+void *stale = lt_dlcaller_set_data (key, handle, 0);
if (stale != NULL)
@{
free (stale);
@end example
@end deftypefun
-@deftypefun lt_ptr lt_dlcaller_get_data (@w{lt_dlinterface_id @var{key}}, @w{lt_dlhandle @var{handle}})
+@deftypefun {void *} lt_dlcaller_get_data (@w{lt_dlinterface_id @var{key}}, @w{lt_dlhandle @var{handle}})
Return the address of the data associated with @var{key} and
@var{handle}, or else @code{NULL} if there is none.
@end deftypefun
message with @code{lt_dlseterror} and return non-zero.
@end deftypefn
-@deftypefn {Type} lt_ptr lt_find_sym (@w{lt_module @var{module},} @w{const char *@var{symbol}})
+@deftypefn {Type} {void *} lt_find_sym (@w{lt_module @var{module},} @w{const char *@var{symbol}})
The type of the symbol lookup function for a user defined module loader.
Implementation of such a function should return the address of the named
@var{symbol} in the module @var{module}, or else set the error message
int (*func) (lt_dlhandle handle, void *data),
void *data);
-
-\f
-/* --- BINARY COMPATIBILITY WITH OLD LIBLTDL --- */
-
-typedef void lt_dlmutex_lock (void);
-typedef void lt_dlmutex_unlock (void);
-typedef void lt_dlmutex_seterror (const char *errmsg);
-typedef const char *lt_dlmutex_geterror (void);
-
-LT_SCOPE void * (*lt_dlmalloc) (size_t size);
-LT_SCOPE void * (*lt_dlrealloc) (void *ptr, size_t size);
-LT_SCOPE void (*lt_dlfree) (void *ptr);
-
-
-LT_SCOPE int lt_dlmutex_register (lt_dlmutex_lock *lock,
- lt_dlmutex_unlock *unlock,
- lt_dlmutex_seterror *seterror,
- lt_dlmutex_geterror *geterror);
-
-# define lt_ptr void *
-
-
-\f
-/* --- SOURCE COMPATIBILITY WITH ANCIENT LIBLTDL --- */
-
-
-#if defined(LT_NON_POSIX_NAMESPACE)
-# define lt_ptr_t void *
-# define lt_module_t lt_module
-# define lt_module_open_t lt_module_open
-# define lt_module_close_t lt_module_close
-# define lt_find_sym_t lt_find_sym
-# define lt_dlloader_exit_t lt_dlloader_exit
-# define lt_dlloader_t lt_dlloader
-# define lt_dlloader_data_t lt_user_data
-#endif
+#define lt_ptr void *
LT_END_C_DECLS