Commit Graph

339 Commits

Author SHA1 Message Date
Ralf Wildenhues
c94de6d8cb * libltdl/Makefile.am: Add $(AM_LDFLAGS) to all per-target
variables *_LDFLAGS as per CVS Automake semantic change.
2005-01-23 17:10:12 +00:00
Ralf Wildenhues
c8d9340618 * libltdl/ltdl.c: Whitespace cleanup. 2005-01-13 14:48:00 +00:00
Ralf Wildenhues
f420fbd97f * libltdl/libltdl/lt__glibc.h: Move all exported slist
symbols into the lt__* namespace.
* libltdl/libltdl/lt__private.h, libltdl/libltdl/slist.h:
Adjust includes.
2005-01-10 18:49:27 +00:00
Ralf Wildenhues
70f63a304a * libltdl/lt__dirent.c: Include lt__private.h.
* libltdl/libltdl/lt__private.h: Include lt__strl.h.
2004-12-21 22:18:06 +00:00
Ralf Wildenhues
36ce7f4a14 * libltdl/lt__dirent.c [mingw] (opendir): Fix write of constant
strings past end of buffer.
(opendir, readdir): Fix read past end of buffer.
2004-12-18 21:42:08 +00:00
Ralf Wildenhues
445285d9a3 * libltdl/ltdl.c (trim): Return error rather than do bogus
null pointer arithmetic when parsing a malformed .la file.
2004-12-16 12:00:09 +00:00
Bob Friesenhahn
ced1775490 * libltdl/lt__strl.c, libltdl/libltdl/lt__strl.h: New files to
emulate strlcat and strlcpy, which support size-bounded string
copying and concatenation for improved security.
* libltdl/Makefile.am: Optionally build source files
libltdl/lt__strl.c and libltdl/libltdl/lt__strl.h.
* m4/ltdl.m4 (LTDL_INIT): Add checks for strlcat and strlcpy.
2004-12-13 21:09:19 +00:00
Ralf Wildenhues
5272d7fb5e * libltdl/ltdl.c (trim): Use memcpy instead of strncpy here, to
avoid problems with non-conforming strncpy.  This is safe here.
2004-11-29 21:06:24 +00:00
Ralf Wildenhues
60fbf440cb * m4/ltdl.m4 (LT_LIB_DLLOAD): Define HAVE_LIBDLLOADER if we
have a dlloader to preload.
* libltdl/ltdl.c (lt_dlinit): Only preload if HAVE_LIBDLLOADER, only
declare preloaded_symbols then.  Fixes libltdl on static platforms.
* NEWS: Updated.
2004-11-29 21:00:20 +00:00
Ralf Wildenhues
13cac3c5db * libltdl/loaders/loadlibrary.c: Remove unneeded
file-static variable.
2004-11-28 19:44:09 +00:00
Gary V. Vaughan
84bd17d1f9 * libltdl/ltdl.h, libltdl/libltdl/ltdl.h: Revert move of this file.
Bloody cvs {add,rm}!
2004-11-23 16:11:01 +00:00
Gary V. Vaughan
11eb79b689 The ltdl.h header is the published interface to libltdl, and
is thus not installed to $prefix/include/libltdl.  It has always
been used with `#include <ltdl.h>', so move just that one file
back to where it was before:

* libltdl/libltdl/ltdl.h: Moved from here...
* libltdl/ltdl.h: ...to here.
* libltdl/Makefile.am: Adjust.
2004-11-23 16:08:56 +00:00
Peter O'Gorman
c3f040fa18 Do not require that libtoolize --ltdl=/some/path end in libltdl. Move
most libltdl headers to libtldl/libltdl to allow
#include <libltdl/ltdl.h> to always work.

* libltdl/Makefile.am, libltdl/loaders/Makefile.am: Look for includes
in the new location.
* libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt__dirent.h,
libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h,
libltdl/libltdl/lt_dlloader.h, libltdl/libltdl/lt_error.h,
libltdl/libltdl/lt_system.h, libltdl/libltdl/ltdl.h,
libltdl/libltdl/slist.h: Added files, moved from libtdl/.
* libltdl/lt__alloc.h, libltdl/lt__dirent.h, libltdl/lt__glibc.h,
libltdl/lt__private.h, libltdl/lt_dlloader.h, libltdl/lt_error.h,
libltdl/lt_system.h, libltdl/ltdl.h, libltdl/slist.h: Removed, moved
to libltdl/libltdl.
2004-11-23 12:15:21 +00:00
Gary V. Vaughan
ef758b513c * configure.ac (APIVERSION): New substituted variable.
(pkgvdatadir): Ditto.  Versioned data directory.
(pkgvmacrodir): Ditto.  Versioned aclocal directory.
(LN): New check for LN command.
* Makefile.am (aclocal_DATA): Replaced with...
(pkgvmacro_DATA): ...this.
(install-data-local): Remove old shared resources.
(install-exec-hook): Make versioned links to executables.
(uninstall-hook): Remove versioned files.
* libltdl/Makefile.am (ltdldatadir): Redefine in terms of
pkgvdatadir.
* libltdl/loaders/Makefile.am (ltdldatadir): Ditto.
* libtoolize.m4sh: Copy macro files from versioned macro directory
instead of shared aclocal directory.
* doc/libtool.texi: Document it.
* NEWS: Updated.
2004-11-15 01:03:14 +00:00
Ralf Wildenhues
4d4230a3a6 * libtldl/ltdl.c (parse_dotla_file): Fix memleak. 2004-11-03 14:13:24 +00:00
Ralf Wildenhues
cfd90b5373 * libltdl/ltdl.c (loader_init_callback): Back out broken cast. 2004-11-01 14:04:29 +00:00
Ralf Wildenhues
d8df98d4c5 * libltdl/ltdl.c (loader_init_callback, lt_dlexit): Add casts to
target type.
2004-11-01 11:26:29 +00:00
Ralf Wildenhues
e40add4994 * TODO, libltdl/lt_error.h, libltdl/ltdl.c, libltdl/ltdl.h:
Undo accidental commit.
2004-10-22 13:07:44 +00:00
Ralf Wildenhues
ee81aed37d * Makefile.maint: Fix typo. 2004-10-22 13:02:53 +00:00
Ralf Wildenhues
567c9626d9 * libltdl/ltdl.c (lt_dlexit, lt_dlpath_insertdir): Fix memleaks,
free user_search_path on lt_dlexit.
2004-10-08 14:10:33 +00:00
Ralf Wildenhues
ba0dac4a9d * libltdl/ltdl.c (try_dlopen): Move .la file parsing
part.. (parse_dotla_file): ..here.  Adjust.
2004-10-05 12:48:55 +00:00
Ralf Wildenhues
c3d2ada3c6 * libltdl/ltdl.c (load_deplibs, try_dlopen): Revert unnecessary casts
to int from my patch from 2004-10-01.
2004-10-05 12:42:45 +00:00
Gary V. Vaughan
954cd09b64 * libltdl/lt__alloc.h (lt__alloc_die): Declare with LT_SCOPE as
per Ralf's original patch.
Reported by Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
2004-10-03 17:22:50 +00:00
Gary V. Vaughan
452cf71bac * libltdl/Makefile.am (libltdlc_la_LIBADD): Don't use
libdlloader_la_OBJECTS, an undocumented Automake internal
variable...
(libltdlc_la_SOURCES): ...use libdlloader_la_SOURCES here
instead.
Reported by Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
2004-10-03 17:12:53 +00:00
Gary V. Vaughan
aef90512b5 * libltdl/argz_.h: Forgot to spell lt_system.h with just one `_'. 2004-10-03 16:15:59 +00:00
Gary V. Vaughan
8911deab1b * libltdl/argz_.h: Forgot to include lt__system.h for LT_SCOPE
definition.
2004-10-03 15:44:36 +00:00
Ralf Wildenhues
dc5fbfd041 * libltdl/lt__alloc.h: Declare exported functions with LT_SCOPE
for mingw32.
* libltdl/lt__dirent.h: Ditto.
* libltdl/argz._h: Ditto.  Be careful about not requiring
additional libltdl files when used outside of libltdl.
* libltdl/slist.h: Ditto.
* HACKING: Add a section on libltdl implementation layering.
2004-10-03 13:50:10 +00:00
Ralf Wildenhues
9bc5390549 * libltdl/lt__alloc.c (lt__memdup): Allocation can fail, so we
need to guard against null pointer dereference here.
* libltdl/ltdl.c (lt_dlcaller_register): Ditto.
2004-10-01 10:24:18 +00:00
Ralf Wildenhues
921d06b537 * libltdl/slist.c (slist_foreach): result was declared as
inner variable, shadowing the actually returned value.
2004-10-01 10:03:11 +00:00
Ralf Wildenhues
2b104f6438 * libltdl/ltdl.c (load_deplibs, try_dlopen): Cast argument
to isspace/isalnum to the correct range.  Also, cast to int to
avoid compiler warnings.
2004-10-01 09:57:56 +00:00
Ralf Wildenhues
228e9808f8 * libltdl/ltdl.c (try_dlopen): Fix null pointer dereference in
case the name given to lt_dlopen contains no extension.
2004-10-01 02:55:50 +00:00
Ralf Wildenhues
8286085803 * libltdl/lt_dlloader.c (lt_dlloader_remove), libltdl/ltdl.c
(tryall_dlopen, lt_dlhandle_next): Show usage of function pointers.
2004-09-30 21:56:13 +00:00
Bob Friesenhahn
7955f590bb * libltdl/loaders/loadlibrary.c: Compilation fixes (originally
from Gary V. Vaughan) to compile under MinGW.
* config/mkstamp: Translate input data so that it is assured to
use the Unix line terminations. This is necessary under Windows if
the files are checked out with CR/NL line terminations. A
side-effect of this change is that input must always be from
stdin. Previously a filename argument was accepted as well.
2004-09-15 18:24:00 +00:00
Gary V. Vaughan
ab2e10f59d * libltdl/loaders/shl_load.c (get_vtable): Typo. 2004-09-06 00:51:38 +00:00
Ralf Wildenhues
10c92f19eb * libltdl/slist.c (slist_cons): Don't leak the tail of a list. 2004-09-03 01:31:58 +00:00
Ralf Wildenhues
c45d3a0d18 * libltdl/ltdl.c (try_dlopen): Fix memory leak.
* NEWS: Updated.
2004-09-02 13:27:24 +00:00
Gary V. Vaughan
cae83b341b * libltdl/slist.c, libltdl/slist.h: Merge in changes from latest
upstream.  Mostly comments, formal item boxing, a sort function,
and const madness reduction.
(slist_new): Removed.
(slist_box, slist_unbox, slist_sort): New.
(SListCompare, SListCallback): Swapped!
(slist_remove, slist_find): Change order of parameters for
orthogonality with slist_foreach.  Changed all callers.
* libltdl/lt_dlloader.c (loader_cmp): Renamed to...
(loader_callback): ...this.  Return boxed item.
(lt_dlloader_remove): Adjust to new loader_callback semantics;
unbox each removed item before returning.
Remove unused variable.
Remove const from name parameter, since the slist API cannot
guarantee userdata const-ancy for its callback functions.
(lt_dlloader_find): Adjust to new loader_callback semantics; need
to return the contents of the boxed item.
Remove const from name parameter, since the slist API cannot
guarantee userdata const-ancy for its callback functions.
* libltdl/lt_dlloader.h (lt_dlloader_find, lt_dlloader_remove):
Adjust to new constless footprint.
* libltdl/ltdl.c (ltdl_exit): The global `loaders' list is changed
variable `loader' is invalidated.  Since some loaders may be
resident modules that cannot be unloaded (though we have none
yet), we must save each `next' address before calling
`lt_dlloader_remove'.
* NEWS: Updated.
* THANKS: Added Ralf.
2004-09-02 12:55:32 +00:00
Gary V. Vaughan
1748adcc65 * libltdl/lt_dlloader.c (lt_dlloader_add): Handle malloc failure
from slist_new.
* libltdl/ltdl.c (loader_init): Trust lt_dlloader_add(), don't
overwrite its error type, and simplify.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2004-09-01 17:32:09 +00:00
Ralf Wildenhues
d1f90d0769 * libltdl/slist.c (slist_new): Handle malloc failure gracefully. 2004-09-01 15:31:34 +00:00
Gary V. Vaughan
23b9ddd8a3 * libltdl/ltdl.c (try_dlopen, lt_dlforeachfile): Use correct cpp
macro name, LT_DLSEARCH_PATH.
2004-09-01 08:51:35 +00:00
Gary V. Vaughan
5ecc2c7c3a * libltdl/ltdl.c (lt_dlexit, tryall_dlopen): Fix gcc parentheses
warning.
(foreach_dirinpath, try_dlopen, lt_dlpath_insertdir): Fix gcc
signed vs unsigned warning.
Reported by Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
2004-09-01 08:30:13 +00:00
Ralf Wildenhues
0c1f97f0f0 * libltdl/loaders/preopen.c: Initialise memory in get_vtable. 2004-09-01 01:43:18 +00:00
Gary V. Vaughan
53f09b2d98 Don't use C99 flexible array types as we want to be C89
compatible.  Instead, revert to the old way of doing things with
an array of symbol name vs. address, and adding the originator as
the first symbol but with a NULL address:

* config/ltmain.in (func_extract_dlsyms): Store originator as a
NULL address symbol.
* libltdl/ltdl.h (lt_dlsymbol): Removed.
(lt_dlsymlist): Remove originator field.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust.
* libltdl/loaders/preopen.c (vm_open, lt_dlpreload_open): Adjust
for new types.
(vm_sym): Skip the new originator symbol when scanning symbol
names.
* m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Adjust preloaded symbols
test file to match.
* NEWS: Updated.
2004-09-01 01:22:26 +00:00
Ralf Wildenhues
68750b8185 * libltdl/ltdl.c: Replace strdup with lt__strdup. 2004-08-31 10:39:35 +00:00
Gary V. Vaughan
c37ec3a1d9 * .cvsignore, config/.cvsignore, libltdl/loaders/.cvsignore,
m4/.cvsignore: update (last two are new files).
2004-08-31 10:28:07 +00:00
Gary V. Vaughan
5da74960c2 * libltdl/lt_dlloader.c (lt_dlloader_remove): Since the return
value of this function is often passed to free, don't declare it
`const'. Responsibility for this memory is given back to the
caller on return.
* libltdl/lt_dlloader.h (lt_dlloader_remove): Ditto.
* libltdl/ltdl.c (lt_dlexit): Adjust.
* NEWS: Updated.
2004-08-30 12:33:09 +00:00
Andreas Schwab
b6528220ee * libltdl/ltdl.c (lt_dlexit): Remove lvalue cast. 2004-08-30 11:46:39 +00:00
Andreas Schwab
7161656f9a * libltdl/slist.h (SListCallback): Fix missing type. 2004-08-30 11:42:21 +00:00
Gary V. Vaughan
0158428875 Add a new `-weak' flag to tell libtool when not to propogate
dependency libraries from dlpreopened modules to libraries:

* config/ltmain.in: Support new -weak link mode option.  Adjust
help message.
* libltdl/Makefile.am (libltdlc_la_LDFLAGS): Use it.
* doc/libtool.texi (Linking with dlopened modules): Document it.
(Link mode): Mention -weak.
* NEWS: Updated.
2004-08-29 16:05:34 +00:00
Gary V. Vaughan
388b7626dc The Grand Renaming. In preparation for libtool-2.0, move all of
the many and varied m4 symbols accumulated by libtool over the
years, considering also that modern autoconf can detect unexpanded
macros even without AC in the macro name:

* bootstrap: Remove libltdl/config.h from previous releases.
* m4/libtool.m4, m4/ltdl.m4, doc/libtool.texi: Basically, run a
giant sed transformation like this:
s,AC_LIB_LTDL,LTDL_INIT,g
s,AC_LIBLTDL_CONVENIENCE,LTDL_CONVENIENCE,g
s,AC_LIBLTDL_INSTALLABLE,LTDL_INSTALLABLE,g
s,AC_WITH_LTDL,LT_WITH_LTDL,g
s,AC_LTDL_ENABLE_INSTALL,_LT_ENABLE_INSTALL,g
s,AC_DEPLIBS_CHECK_METHOD,_LT_CHECK_MAGIC_METHOD,g
s,AC_LIBTOOL_OBJDIR,_LT_CHECK_OBJDIR,g
s,AC_LTDL_OBJDIR,_LT_CHECK_OBJDIR,g
s,AC_LTDL_DLPREOPEN,_LT_CHECK_DLPREOPEN,g
s,AC_LIBTOOL_SYS_MAX_CMD_LEN,LT_CMD_MAX_LEN,g
s,AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE,_LT_CMD_GLOBAL_SYMBOLS,g
s,AC_LIBTOOL_SYS_OLD_ARCHIVE,_LT_CMD_OLD_ARCHIVE,g
s,AC_PROG_LD_RELOAD_FLAG,_LT_CMD_RELOAD,g
s,AC_LIBTOOL_SYS_LIB_STRIP,_LT_CMD_STRIPLIB,g
s,AC_CHECK_LIBM,LT_LIB_M,g
s,AC_LTDL_DLLIB,LT_LIB_DLLOAD,g
s,AC_LIBTOOL_COMPILER_OPTION,_LT_COMPILER_OPTION,g
s,AC_LIBTOOL_PROG_CC_C_O,_LT_COMPILER_C_O,g
s,AC_LIBTOOL_PROG_COMPILER_NO_RTTI,_LT_COMPILER_NO_RTTI,g
s,AC_LIBTOOL_PROG_COMPILER_PIC,_LT_COMPILER_PIC,g
s,AC_LIBTOOL_SYS_HARD_LINK_LOCKS,_LT_COMPILER_FILE_LOCKS,g
s,AC_LTDL_DLSYM_USCORE,LT_FUNC_DLSYM_USCORE,g
s,AC_LIBTOOL_LINKER_OPTION,_LT_LINKER_OPTION,g
s,AC_LIBTOOL_PROG_LD_SHLIBS,_LT_LINKER_SHLIBS,g
s,AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH,_LT_LINKER_HARDCODE_LIBPATH,g
s,AC_PATH_MAGIC,_LT_PATH_MAGIC,g
s,AC_PATH_TOOL_PREFIX,_LT_PATH_TOOL_PREFIX,g
s,AC_PROG_LD,LT_PATH_LD,g
s,AC_PROG_LD_GNU,_LT_PATH_LD_GNU,g
s,AC_PROG_NM,LT_PATH_NM,g
s,AC_LTDL_SYS_DLOPEN_DEPLIBS,LT_SYS_DLOPEN_DEPLIBS,g
s,AC_LIBTOOL_DLOPEN_SELF,LT_SYS_DLOPEN_SELF,g
s,AC_LIBTOOL_POSTDEP_PREDEP,_LT_SYS_HIDDEN_LIBDEPS,g
s,AC_LTDL_SYSSEARCHPATH,LT_SYS_DLSEARCH_PATH,g
s,AC_LTDL_SHLIBEXT,LT_SYS_MODULE_EXT,g
s,AC_LTDL_SHLIBPATH,LT_SYS_MODULE_PATH,g
s,AC_LTDL_SYMBOL_USCORE,LT_SYS_SYMBOL_USCORE,g
s,AC_LIBTOOL_SYS_DYNAMIC_LINKER,_LT_SYS_DYNAMIC_LINKER,g
s,_LT_AC_TAGVAR,_LT_TAGVAR,g
s,_LT_AC_SYS_COMPILER,_LT_TAG_COMPILER,g
s,_LT_AC_PROG_ECHO_BACKSLASH,_LT_PROG_ECHO_BACKSLASH,g
s,_LT_AC_SYS_LIBPATH_AIX,_LT_SYS_MODULE_PATH_AIX,g
s,_LT_AC_SHELL_INIT,_LT_SHELL_INIT,g
s,_LT_AC_LOCK,_LT_ENABLE_LOCK,g
s,_LT_AC_CHECK_DLFCN,_LT_HEADER_DLFCN,g
s,_LT_AC_TRY_DLOPEN_SELF,_LT_TRY_DLOPEN_SELF,g
s,LT_AC_PROG_EGREP,_LT_DECL_EGREP,g
s,LT_AC_PROG_SED,_LT_DECL_SED,g
* doc/libtool.texi (Autoconf macros): Document exported macros.
* libtoolize.in: Compare ltdl.m4 serial numbers for LTDL_INIT
instead of newly obsoleted AC_LIB_LTDL.
(func_scan_files): Also set seen_ltdl for LTDL_INIT and
LT_WITH_LTDL.


* libltdl/ltdl.c (lt_dlforeachfile): LT_SYS_LIBSEARCH_PATH is not
an environment variable, it is an actual path.
Reported by Noah Mish <noah@cs.caltech.edu>
2004-08-22 22:02:07 +00:00