Commit Graph

434 Commits

Author SHA1 Message Date
Gary V. Vaughan
5451db06bd Split lt_dlloader management into a separate file, and factor
`loaders' list management into a new SList ADT.  In the process,
the API for writing loaders is a little cleaner, so all the
existing loaders were tweaked to take advantage of that:

* libltdl/slist.h, libltdl/slist.c: New files implementing a
generic singly linked list container ADT.  The ADT is purely
internal, and none of its API's are visible from an installed
libltdl.
* libltdl/lt_dlloader.h (lt_dlloader): Removed next field again
:-) Renamed to lt_dlvtable for API.  Changed all callers.
(lt_dlloader_get): New function to turn an lt_dlloader into its
associated lt_dlvtable.
(lt_dlloader_add): Removed unused data parameter.  The caller
data belongs to (and is set by) the loader itself, not the
loader's client.  Changed all callers.
(lt_dlloader_name, lt_dlloader_data): Removed.  Use
lt_dlloader_get instead!
* libltdl/lt__private.h: Include slist.h.
(lt__alloc_die_callback): Add missing LT_SCOPE to declaration.
(lt_dlhandle_struct): Use lt_dlvtable instead of opaque
lt_dlloader.
* libltdl/ltdl.c (lt_dlexit): Rewritten for the new loader API.
(loaders, lt_dlloader_add, lt_dlloader_remove, lt_dlloader_next,
lt_dlloader_find): Moved from here...
* libltdl/lt_dlloader.c ((loaders, lt_dlloader_add,
lt_dlloader_remove, lt_dlloader_next, lt_dlloader_find): ...to
here.  And rewritten in terms of new SList interface.
* libltdl/ltdl.c (lt_dlexit, tryall_dlopen): Rewritten in terms of
new lt_dlloader interface.
* libltdl/Makefile.am (libdlloader_la_SOURCES): Add slist.h and
slist.c.  Move lt_dlloader.h from here...
(pkginclude_HEADERS): ...to here.
(libltdl_la_SOURCES): Add lt_dlloader.c and lt_dlloader.h.
2004-07-15 12:33:20 +00:00
Gary V. Vaughan
52de761d29 Collapse two almost identical structures into one:
* libltdl/lt_dlloader.h (lt_dlloader): Add next field.
* libltdl/ltdl.c (lt_user_dlloader): Remove entirely.  Change all
callers to use lt_dlloader instead.  Add a compatibility macro.
(lt_dlloader_add): Remove copy and allocate stage, just hook
directly into the loaders list.
2004-07-15 12:26:28 +00:00
Gary V. Vaughan
0d8529860b A cleaner way to access the private fields of an lt_dlhandle
than my move of the module field into lt_dlinfo:

* libltdl/ltdl.c (lt_caller_data, lt_dlhandle_struct): Move from
here...
* libltdl/lt__private.h (lt_caller_data, lt_dlhandle_struct):
...to here.  And put the module field back here...
* libltdl/ltdl.h (lt_dlinfo): ...instead of here.
* libltdl/loaders/loadlibrary.c (vm_open): Adjust.
2004-07-15 12:22:48 +00:00
Gary V. Vaughan
4257156873 * libltdl/lt__private.h (streq, strneq): New macros to make strcmp
calls as used for simple comparison easier to read.
* libltdl/loaders/dyld.c, libltdl/loaders/preopen.c,
libltdl/ltdl.c: Use them!
2004-07-15 12:20:15 +00:00
Gary V. Vaughan
706e672811 This pervasive changeset makes two intertwined deep changes to the
operation of libtool (neither would work alone).  First, there is
a new feature that allows libraries to preopen modules.  This
entails a backwards incompatible change to the libltdl API for
separating out the preloaded symbol lists by owner.  Second, in
the tradition of "eating our own dogfood", libltdl now preloads
its own dlloaders.  The internal API for dlloaders has also had to
change in a backwards incompatible way in support of the new
library preloading feature.  If you don't use preloaded libraries,
you needn't change your project sources, though you will need to
recompile against the new libltdl.  The API changes are mostly
confined to dlloaders, so you probably needn't worry about those
(unless you have written a custom loader that you want libltdl to
use):

* configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
* libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
* libltdl/loaders: New directory for module loaders, to simplify
Makefile rules, and to give the loaders themselves names that are
unique in the first few characters.
* libtoolize.in (func_copy_all_files): Copy recursively to pick up
the loaders directory contents.
* libltdl/loaders/Makefile.am: New file.  Move module building
rules to here...
* libltdl/Makefile.am: ...from here.
(VERSION_INFO): Bumped version info to signify interface changes.
(libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
appropriately for each library.
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: Moved from here...
* libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c: ...to here.
(get_vtable): New entry function for each.
* libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
(symlist_chain): ...a new structure which maps lists of preloaded
symbols from the object that loads them.
(lt_dlpreload_open): New function to automatically open all
preloaded modules belonging to a named object (ORIGINATOR).
* libltdl/lt__alloc.c (lt__zalloc): New function to return a block
of zeroed out new memory.
* libltdl/lt__alloc.h (lt__zalloc): Prototype it.
* libltdl/lt__private.h (lt__alloc_die_callback): Add missing
prototype.
(lt__error_strings): Make this opaque to callers.
* libltdl/lt_error.c (lt__error_strings): Move the implementation
to here.
* libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
make originator focused preloading possible.  *BREAKS BACKWARDS
COMPATIBILITY*
(lt_dlloader_add): Take advantage of new fields to simplify
paramater list.
* libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
(LT_CONC): Fix it to work from within macros.
* libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
dlloader loading.
(get_vtable, preloaded_symbols): Point these at the preopen.c
symbols to bootstrap the loader chain.
(lt_dlinit): Load the preopen dlloader manually, and then use it
to load any other preloaded dlloaders.
(lt_dlloader_add): Simplify parameter list. Populate new
fields. Chain new loaders according to priority field.
* libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
(lt_dlpreload_callback_func): Type of a callback for automatic
lt_dlpreload_open loading.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
symbols from the "@PROGRAM@" originator.
* tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
* tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
* ltmain.in: Don't spew spurious warnings when dlopening and
dlpreopening modules.
(func_generate_dlsyms): Factored out from multiple copies in the
rest of the code. Generate originator keyed symbol lists.
(func_extract_archives): Also factored.  Extract the contents of
convenience archives for linking with dependent libraries when
--whole-archive is not available.
[darwin]: Don't try to link $old_library unless it exists, and
$lib is a bundle.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
loading libraries/apis rather that stopping when an acceptable one
is discovered.
(LT_DLLOADERS): New variable for holding dlloaders that can be
preloaded.
* doc/libtool.texi: Document interface changes.
* NEWS: Updated.
2004-07-15 12:14:48 +00:00
Gary V. Vaughan
8bd0890c7b * libltdl/ltdl.h (lt_dlinfo): Move private module field to here...
* libltdl/ltdl.c (lt_dlhandle_struct): ...from here.  Changed all
callers.
* libltdl/loader-loadlibrary.c (sys_wll_open): Use new inteface to
scan loaded handle->info.module fields for previously loaded
modules.
* doc/libtool.texi (User defined module data): Document changes to
the interface.
* NEWS: Updated.
Reported by Chuck Wilson <cwilson@ece.gatech.edu>
2004-07-08 09:35:51 +00:00
Brad
aa6cd3e074 libltdl uses LIBOBJS, which leak out into a parent project if both
share the same configure.ac.  Libtool itself doesn't compile any
code, so it is okay to do it during bootstrap, but other projects
need to treat libltdl as a configurable subproject to keep their
respective LIBOBJS separate:

* libltdl/configure.ac: New file, based on configure.ac.
* libltdl/Makefile.am (AC_LOCAL_AMFLAGS): Use our own m4
directory.
(ltdldata_DATA): List *all* the files that libtoolize --ltdl will
install.
2004-06-16 17:17:40 +00:00
Gary V. Vaughan
04e0cebad7 * libltdl/argz.h: Moved from here...
* libltdl/argz_.h: ...to here, so as not to shadow system
argz.h when we `#include <argz.h>' for example.
#include stdlib.h and sys/types.h to ensure we get a size_t
definition.
* libltdl/argz.c (HAVE_CONFIG_H): Set it up how ltdl likes it when
used by another client.
* m4/argz.m4: New file.
(gl_FUNC_ARGZ): Try to find an error_t definition, and a system
argz.h.
* m4/ltdl.m4: Use it.
(AC_LTDL_FUNC_ARGZ): Removed.
* libltdl/lt__glibc.h: #include <argz.h> to pick up either the
system argz.h or our libltdl/argz.h if necessary.
* libltdl/Makefile.am (libltdl_la_SOURCES): Move argz.h from
here...
(ltdldata_DATA): ...here. Along with argz.c.
(argz.h): Generate from argz_.h if the system file is missing.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2004-04-22 22:47:20 +00:00
Gary V. Vaughan
486d02709f forgot to cvs rm -f libltdl/lt_mutex.[ch] 2004-04-22 22:11:34 +00:00
Gary V. Vaughan
14ae34906f According to Howard Chu <hyc@highlandsun.com>:
Applications should assume that the native dlopen is NOT
thread-safe, and take care of locking themselves. All application
calls into libltdl should thus be protected by the caller.

* libltdl/lt_mutex.c, libltdl/lt_mutex.h: Removed.
* libltdl/Makefile.am (pkginclude_HEADERS): Removed lt_mutex.h.
(libltdl_la_SOURCES): Removed lt_mutex.c and lt_mutex.h.
* libltdl/ltdl.h: Don't include lt_mutex.h.
* libltdl/lt__private.h (LT__MUTEX_GETERROR, LT__MUTEX_SETERROR)
(LT__MUTEX_SETERRORSTR): Renamed to...
(LT__GETERROR, LT__SETERROR, LT__SETERRORSTR): ...this.  Changed
all callers.
(LT__MUTEX_LOCK, LT__MUTEX_UNLOCK, lt_dlmutex_lock)
(lt_dlmutex_unlock, lt_dlmutex_seterror, lt_dlmutex_geterror):
Removed.  Changed all callers.
* doc/libtool.texi (Thread Saftey in libltdl):
* NEWS: Updated.
2004-04-22 22:08:19 +00:00
Albert Chin-A-Young
02ed99c47b * libltdl/loader-shl_load.c: Fix typos during reorg. 2004-04-19 13:05:24 +00:00
Peter O'Gorman
b3e0d13c64 * libltdl/loader-dyld.c: Fix compilation issues. Set Original author
to me.
2004-04-17 16:07:42 +00:00
Gary V. Vaughan
b8d530159c * libltdl/lt_dlloader.h: Forgot to cvs add this file earlier. 2004-04-14 10:27:11 +00:00
Gary V. Vaughan
7caaca4a5c * libltdl/lt__pre89.h, libltdl/memcpy.c, libltdl/memmove.c,
libltdl/strchr.c, libltdl/strcmp.c, libltdl/strrchr.c: Remove
half-assed pre-c89 support entirely.
* libltdl/lt__private.h: Don't refer to lt__pre89.h.
* libltdl/Makefile.am (ltdldata_DATA): Remove references to
deleted files.
* NEWS: Mention it.
2004-04-13 21:25:34 +00:00
Gary V. Vaughan
3431a0ab96 * libltdl/lt__pre89.h, libltdl/ltdl.c, libltdl/ltdl.h, libltdl/argz.c,
libltdl/argz.h, libltdl/lt__glibc.h, libltdl/lt_dlloader.h,
libltdl/lt__dirent.c, libltdl/lt__dirent.h, libltdl/lt__private.h,
libltdl/lt__alloc.c, libltdl/lt__alloc.h, libltdl/lt_system.h,
libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c,  libltdl/loader-loadlibrary.c,
libltdl/loader-shl_load.c, libltdl/lt_error.h, libltdl/lt_mutex.h:
Autoconf either defines to 1 or undefs the discovery macros it
puts in config.h, and many (non-GNU) compilers throw a spurious
warning when testing an #undef macro with #if.  For consistency,
while we are touching all these lines, use defined(MACRO) style
throughout.
Reported by Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
2004-04-13 15:30:10 +00:00
Gary V. Vaughan
5dfb0ce7e2 Factor out the individual loaders, in preparation for preloading
them as libtool modules.  Currently loader-preopen.c is linked
unconditionally and other appropriate loaders discovered by
AC_LTDL_DLLIB are built and linked in:

* libltdl/Makefile.am (libltdl_la_SOURCES): Add loader-preopen
module.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Use AC_LIBOBJ to add appropriate
loaders to libltdl.
* libltdl/lt_system.h (LT_SCOPE): Moved to here.
* libltdl/ltdl.h (lt_dlloader, lt_user_data, lt_module)
(lt_module_open, lt_module_close, lt_find_sym, lt_dlloader_exit)
(struct lt_user_dlloader, lt_dlloader_next, lt_dlloader_find)
(lt_dlloader_name, lt_dlloader_data, lt_dlloader_add)
(lt_dlloader_remove): Moved declarations...
* libltdl/lt_loader.h: ...to here.
* libltdl/ltdl.c: Include lt_loader.h.  Move loader implementation
code from here...
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c, libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: ...to here.
* tests/cdemo/Makefile.am, tests/demo/Makefile.am,
tests/depdemo/Makefile.am, tests/f77demo/Makefile.am,
tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am,
tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (AM_CPPFLAGS):
Add -I$(top_srcdir)/../.. so that libltdl include files can be
written as #include <libltdl/lt_dlloader.h> and found correctly.
2004-04-13 14:31:05 +00:00
Gary V. Vaughan
8c775c544a Factor out the mutex handling and error handling into their own
modules.  Mutex handling is not currently useful in combination
with posix threads, and should be easier to replace if it is in a
separate module.  Additionally, we can factor out the loaders in
such a way as to depend on only the portability layer and these
new mutex and error modules now:

* libltdl/Makefile.am (pkginclude_HEADERS): Install lt_error.h and
lt_mutex.h to $includedir/libltdl.
(libltdl_la_SOURCES): Build lt_error and lt_mutex objects.
* libltdl/ltdl.h (LT_SCOPE): Moved from here...
* libltdl/lt_system.h (LT_SCOPE): ...to here.
* libltdl/ltdl.c (lt_dlerror_strings, LT_DLSTRERROR): Moved from
here...
* libltdl/lt__private.h (lt__error_strings, LT__STRERROR): ...to
here as additional internal interfaces to lt_error.  Changed all
callers.
* libltdl/ltdl.c (LT_DLMUTEX_LOCK, LT_DLMUTEX_UNLOCK)
(LT_DLMUTEX_SETERROR, LT_DLMUTEX_GETERROR, lt_dlmutex_lock_func)
(lt_dlmutex_unlock_func, lt_dlmutex_geterror_func)
(lt_dllast_error): Moved from here...
(LT__MUTEX_LOCK, LT__MUTEX_UNLOCK, LT__MUTEX_SETERRORSTR)
(LT__MUTEX_GETERROR, lt__mutex_lock_func, lt__mutex_unlock_func)
(lt__mutex_geterror_func, lt__last_error): ...to here as
additional internal interfaces to lt_mutex.  Changed all callers.
(LT_MUTEX_SETERROR): Take an errorcode rather than a string.
Changed all callers.
* libltdl/ltdl.c, libltdl/ltdl.h (lt_dlmutex_register): Moved from
here...
* libltdl/lt_mutex.c, libltdl/lt_mutex.h (lt_dlmutex_register):
...to here. New files.
* libltdl/ltdl.c, libltdl/ltdl.h (lt_dladderror, lt_dlseterror)
(lt_dlerror_table):
Moved from here...
* libltdl/lt_error.c, libltdl/lt_error.h (lt_dladderror)
(lt_dlseterror, lt_dlerror_table): ...to here. New files.
2004-04-13 14:12:00 +00:00
Gary V. Vaughan
21abc39185 * libltdl/ltdl.c (argz_append, argz_create_sep, argz_insert)
(argz_next, argz_stringify): Move from here...
* libltdl/argz.c: New file. ...to here.
* libltdl/lt__glibc.h: New file. Rename global symbols into the
lt__ namespace.
* libltdl/lt__private.h: Include lt__glibc.h.
* libltdl/Makefile.am (libltdl_la_SOURCES): Add new files.
(AM_CPPFLAGS): Add -DLTDL.
* libltdl/argz.h (argz_append, argz_create_sep, argz_insert)
(argz_next, argz_stringify): New file. Declare argz functions
here, including lt__glibc.h when LTDL is defined to rename global
symbols for libltdl.
* m4/ltdl.m4 (AC_LTDL_FUNC_ARGZ): Add argz to AC_LIBOBJ if any of
our argz_* functions are missing from the system libraries.
2004-04-08 14:13:07 +00:00
Gary V. Vaughan
bcf110d85d Added Files:
libltdl/lt__pre89.h libltdl/memcpy.c libltdl/memmove.c
	libltdl/strchr.c libltdl/strcmp.c libltdl/strrchr.c
2004-04-08 14:01:35 +00:00
Gary V. Vaughan
1cf343d573 * libltdl/ltdl.c: Move standard headers and preprocessor guards
from here...
* libltdl/lt__private.h: ...to here.  New file to declare ltdl's
internal interfaces.
* libltdl/ltdl.c: Include lt__private.h.
* m4/ltdl.m4 (AC_LIB_LTDL): Add lt_dirent to AC_LIBOBJ if all of
opendir, readdir and closedir are missing.
(AC_CHECK_HEADERS): Remove assert.h, ctype.h, errno.h, malloc.h,
stdio.h and stdlib.h; these headers are all available in standard
c89 environments and newer.
* libltdl/lt__private.h: Include them here unconditionally.
* libltdl/lt__dirent.c (opendir, readdir, closedir): New file.
Windows dirent emulation functions moved to here...
* libltdl/ltdl.c (opendir, readdir, closedir): ...from here.
* libltdl/lt__dirent.h: New file.  Rename the global symbols from
lt__dirent.c into the lt__ namespace so they don't clash with
other libraries.
2004-04-08 13:51:15 +00:00
Gary V. Vaughan
b61dada322 Keywords:
Factor out the bottom portability layer from ltdl.  Code in this
layer has global symbols renamed by lt__pre89.h, and may not
refer to any symbols except those provided by the system libraries
or other code in the portability layer:

* libltdl/lt__pre89.h: New file.  Rename all the symbols from
LTLIBOBJS into the lt__ namespace so that they don't clash with
other libraries.
* libltdl/ltdl.c (rpl_memcpy, rpl_memmove, rpl_strchr, rpl_strcmp)
(rpl_strrchr): Moved from here...
* libltdl/memcpy.c (memcpy): ...to here, and fixed void *
dereference bug...
* libltdl/memmove.c (memmove): ...to here, and fixed void *
dereference bug...
* libltdl/strchr.c (strchr): ...to here...
* libltdl/strcmp.c (strcmp): ...here...
* libltdl/strrchr.c (strrchr): ...and here.
* libltdl/Makefile.am (libltdl_la_SOURCES): Add lt__pre89.h.
(libltdl_la_LIBADD, libltdlc_la_LIBADD): Add $(LTLIBOBJS).
(ltdldata_DATA): Add replacement sources files.
* m4/ltdl.m4 (AC_LIB_LTDL): Do careful config.h and LTLIBOBJ
setting for missing pre89 functions.


$Revision: 1.1470 $ $Date: 2004/04/08 12:01:57 $
2004-04-08 13:06:16 +00:00
Gary V. Vaughan
8c4615ca38 Keywords:
* libltdl/ltdl.h (LT_PARAMS): Removed.  Changed all users to
ANSI prototypes.
(lt_ptr): Keep backwards compatibility stub.
* libtldl/ltdl.c, libltdl/ltdl.h: Use ANSI function declarations
throughout.  s/lt_ptr/void */g.
2004-04-08 12:01:58 +00:00
Gary V. Vaughan
e658105eb9 Keywords:
There was no clean separation of abstraction layers in libltdl.
The first step in fixing this is to factor out the memory
management abstraction, making a start on removing promiscuity
from the underlying portability layer:

* doc/libtool.texi (Libltdl interface): Remove lt_dlmalloc,
lt_dlrealloc and lt_dlfree references.  The memory management
layer used by libltdl is now private.
* libltdl/lt_system.h: New installed header for system portability
abstraction.
* libltdl/ltdl.h: Use it.
* libltdl/lt__alloc.c, libltdl/lt__alloc.h: New module above
system portability layer to abstract ltdl's memory management.
* libltdl/ltdl.c: Use lt__alloc.h.
(closedir): Use free.
(opendir): Use malloc/free.
(lt__xalloc_die_callback): Report memory failures through
lt_dlerror.
(lt_dlinit): Use it to initialise memory management.
(LT_DLMALLOC, LT_DLREALLOC, LT_DLFREE, LT_EMALLOC, LT_EREALLOC)
(rpl_strdup, rpl_realloc, lt_estrdup, lt_emalloc, lt_erealloc):
Removed in favour of...
(lt__strdup, lt__memdup, MALLOC, REALLOC, FREE): ...these calls
from libltdl/lt__alloc.h.  Changed all callers.
(rpl_argz_append, rpl_argz_create_sep, rpl_argz_insert): As part
of the portability layer, these functions no longer use libltdl
memory management API.
(free_vars): Factored out.
(LT_DLMEM_REASSIGN): While redoing memory handling, renamed...
* libltdl/lt__alloc.h (MEMREASSIGN): ...to this.
* libltdl/Makefile.am (AUTOMAKE_OPTIONS): Let automake track
dependencies automatically.
(pkgincludedir): Override from parent package's setting.
(pkginclude_HEADERS): Install lt_system.h.
(libltdl_la_SOURCES): Add new files.
* NEWS: Updated.
Reported by Dalibor Topic <robilad@kaffe.org>
2004-04-06 15:42:11 +00:00
Gary V. Vaughan
8a839f1fac * libltdl/Makefile.am (AM_CPPFLAGS): Also check $top_builddir for
config.h.
(ltdl.o): config.h is in $top_builddir.
2004-03-29 09:41:37 +00:00
Scott James Remnant
0a94ff3131 * libltdl/ltdl.c (sys_dl_open): Don't load libraries with global
symbol resolution.
* NEWS: Updated.
2004-03-24 04:00:46 +00:00
Scott James Remnant
71b87c57cd * libltdl/Makefile.am (libltdl_la_LDFLAGS): Increment CURRENT
and AGE of libltdl, warranted by the addition of lt_dlhandle_find()
since 1.5.2.
2004-03-21 16:06:55 +00:00
Gary V. Vaughan
3dd601f552 This fixes a bug in the libtoolize ltdl source installation rules,
which were copying Makefile.in from the libtool tree into the
package running libtoolize.  Now we explicitly list the files to
copy to force the package to generate its own Makefile.in:

* libltdl/Makefile.am (libltdl_la_SOURCES, libltdlc_la_SOURCES):
Add ltdl.h.
(ltdldatadir): New variable for installation directory of
libtoolize --ltdl files.
(ltdldata_DATA): Tell automake what files to copy there at install
time (and remove at unistall time!).
(local-install-files): Removed.  This hack is not required
anymore, the automake generated install rules are much more
advanced than this.
* Makefile.am (install-data-hook, uninstall-local): Removed.
Libltdl files for libtoolize are installed by their own Makefile
now.
2004-01-22 22:25:43 +00:00
Gary V. Vaughan
b6b8a7c3b1 * configure.ac (AC_CONFIG_HEADERS): Create config.h in
$top_srcdir.
* m4/ltdl.m4 (AC_LIB_LTDL): Run AC_CONFIG_HEADERS for the user if
necessary. Calculate filename from first argument to
AC_CONFIG_HEADERS, and substitute as CONFIG_H.
* libltdl/Makefile.am (AM_CPPFLAGS): Make sure we are searching in
$top_srcdir for headers.
(DEFS): Override the default HAVE_CONFIG_H with the config.h
filename.
(ltdl.lo): Reference config.h via $(CONFIG_H).
* libltdl/ltdl.c (HAVE_CONFIG_H): Ditto.
2004-01-16 22:03:19 +00:00
Stefan Nordhausen
a8f3df622a Roll back copyright changes. 2004-01-04 20:45:24 +00:00
Scott James Remnant
dff2249409 Updated all copyright notices to include 2004.
* NEWS: Next release will be in 2004.
2004-01-02 01:59:11 +00:00
Gary V. Vaughan
306033a153 * libltdl/configure.ac: Removed.
* configure.ac (AC_CONFIG_HEADERS): Merged from
libltdl/configure.ac.
(AC_LIB_LTDL): Ditto.
(AC_CONFIG_FILES): Add libltdl/Makefile.
(AC_CONFIG_SUBDIRS): Removed.
(AC_CONFIG_COMMANDS): Remove generation of libltdl/ltmain.sh.
* libltdl/Makefile.am (libtool): Removed references, since we now
share $(top_builddir)/libtool.
* NEWS: Updated.
2003-11-27 13:32:33 +00:00
Gary V. Vaughan
9b5a0f038d * libltdl/ltdl.c (lt_dlhandle_find): New function to find a handle
by module name.
* libltdl/ltdl.h (lt_dlhandle_find): Declare it.
* doc/libtool.texi (User defined module data): Document it.
* NEWS: Updated.
2003-11-18 22:39:39 +00:00
Gary V. Vaughan
c114abf5e4 * tests/cdemo/configure.ac, tests/demo/configure.ac,
tests/depdemo/configure.ac, tests/f77demo/configure.ac,
tests/mdemo/configure.ac, tests/mdemo2/configure.ac,
tests/pdemo/configure.ac, tests/tagdemo/configure.ac: Declare just
the tags we need using AC_LIBTOOL_TAGS, reducing the size of the
configure script by 50% in most cases.
2003-11-14 17:28:29 +00:00
Gary V. Vaughan
e15eb25258 * libltdl/ltdl.c (lt_dlinit): Save a function call for each loader
added to the list, in exchange for appending loaders to the list
with O(N) rather than O(1).  The longest the loader list can ever
get is 4 (on cygwin with dld installed) so it probably constitutes
a small speedup, in addition to making the code much more readable.
2003-11-11 16:53:31 +00:00
Gary V. Vaughan
c866b386af * m4/libtool.m4 (AC_LIBTOOL_SETUP): Don't define the value for
ltmain unconditionally.
(_LT_PROG_LTMAIN): New macro to ensure that the
shell variable `ltmain' actually points at a suitable `ltmain.sh'.
(_AC_PROG_LIBTOOL): Require it.
(AC_LIBTOOL_CONFIG, _LT_AC_TAG_CONFIG): Invoke it.
* Makefile.am (libtool): ltmain.sh is in the build tree.
* libltdl/configure.ac: Ditto.
2003-11-11 16:49:32 +00:00
Gary V. Vaughan
2512e6ad67 * tests/cdemo/configure.ac, tests/demo/configure.ac,
tests/depdemo/configure.ac, tests/f77demo/configure.ac,
tests/mdemo/configure.ac, tests/mdemo2/configure.ac,
tests/pdemo/configure.ac, tests/tagdemo/configure.ac:
s/AM_PROG_LIBTOOL/AC_PROG_LIBTOOL/. Marching boldly into the 21th
century :-$
2003-11-07 16:25:57 +00:00
Charles Wilson
09556c7c90 forgot to commit with last change 2003-11-06 13:43:15 +00:00
Gary V. Vaughan
84ba5fad62 * libltdl/ltdl.h (__WINDOWS__): Define this if _WIN32 or WIN32 are
defined, unless __CYGWIN__ or __CYGWIN32__ are defined.
(LT_SCOPE): Now set without reference to __CYGWIN__ definition,
since __WINDOWS__ now implies !__CYGWIN__ after canonicalisation.
(LT_PARAMS, lt_ptr): Use canonicalised __WINDOWS__ to determine
which values to set these macros to.
2003-11-06 12:31:00 +00:00
Gary V. Vaughan
2d38c0a17d * configure.ac, libltdl/configure.ac, tests/cdemo/configure.ac,
tests/demo/configure.ac, tests/depdemo/configure.ac,
tests/f77demo/configure.ac, tests/mdemo/configure.ac,
tests/mdemo2/configure.ac, tests/pdemo/configure.ac,
tests/tagdemo/configure.ac (AM_INIT_AUTOMAKE): Remove redundant
arguments.
* libltdl/configure.ac: Use quadrigraphs to escape macronames.
2003-10-21 10:56:24 +00:00
Scott James Remnant
1bbeb14f36 * libltdl/ltdl.c (lt_dlerror): change return value when
no error has occured to NULL to match documentation.
(Debian Bug #157229)
2003-10-07 22:29:05 +00:00
Bob Friesenhahn
abaff9e0ec * libltdl/ltdl.c: Only include malloc.h if stdlib.h can not be
found.
2003-09-29 10:57:57 +00:00
Gary V. Vaughan
27a9392fb1 * bootstrap: Rewritten to use autoreconf.
* config.guess, config.sub, mkstamp:  Moved from here...
* config/config.guess, config/config.sub, config/mkstamp: ...to
here, respectively.
* libtool.m4, ltdl.m4: Moved from here...
* m4/libtool.m4, m4/ltdl.m4: ...to here, respectively.
* configure.ac: Removed various acinclude.m4 hackery, as these
files are no longer needed with automake 1.8.
* Makefile.am: Removed various acinclude.m4 hackery, as these
files are no longer needed with automake 1.8.
(AUTOMAKE_OPTIONS): Require CVS automake.
(CONF_SUBDIRS, CFLAGS, CPPFLAGS, LDFLAGS, LIBS, FFLAGS, FLIBS):
Automake now makes a Make variable from every AC_SUBST, so these
are NOP.
(aclocal_macros): These files are now in their own m4 subdir.
Changed all clients.
(EXTRA_DIST): mkstamp has moved to the new config subdir.  Changed
all clients.
(pkgdata_SCRIPTS): Ditto wrt config.guess and config.sub.
(pkgdata_DATA): Ditto wrt ltmain.sh.
* f77demo/configure.ac, libltdl/configure.ac (AM_CONFIG_HEADER):
Is deprecated in favour of AC_CONFIG_HEADERS.  Updated to the
latter.
* Makefile.am, cdemo/Makefile.am, demo/Makefile.am,
depdemo/Makefile.am, f77demo/Makefile.am, mdemo/Makefile.am,
mdemo2/Makefile.am, pdemo/Makefile.am, tagdemo/Makefile.am
(EXTRA_DIST): Remove acinclude.m4.
(ACLOCAL_AMFLAGS): Search new `m4' macro directory.
* configure.ac, cdemo/configure.ac, demo/configure.ac,
depdemo/configure.ac, f77demo/configure.ac, mdemo/configure.ac,
mdemo2/configure.ac, pdemo/configure.ac, tagdemo/configure.ac
(AC_CONFIG_AUX_DIR): Declare that config helper	scripts are now
kept in the new config subdir.
* libltdl/configure.ac (AC_CONFIG_AUX_DIR): Removed.  Defaults to
`.' anyway.
2003-09-25 11:22:29 +00:00
Robert Millan
68bac5f496 Updated to reflect upcoming autoconf 2.58 and automake 1.8 2003-09-24 17:03:27 +00:00
Jim Pick
522aef6a38 Much as we have tried not to make it the callers' responsibility
to maintain an lt_dlrealloc function pointer, it is too difficult
to implement realloc as malloc/memcpy/free without knowing the
size of the original block.  rpl_realloc has been deprecated since
2002-10-30, but kaffe has real failures with that so it's time to
bite the bullet.  Caller gets to maintain lt_dlrealloc:

* NEWS (1.5.1): Updated.
* libltdl/ltdl.c (LT_DLREALLOC): Use lt_dlrealloc so the user can
update the function pointer to match lt_dlmalloc.
(lt_emalloc): Use lt_dlrealloc rather than hardcoding realloc.
* doc/libtool.texi (Libltdl interface): Describe lt_dlrealloc now
that it too has become part of the exported interface to libltdl.
2003-08-05 16:05:01 +00:00
Peter O'Gorman
9bfa9cf6b9 * libtool.m4 (darwin): Use "-undefined dynamic_lookup" if the
user set MACOSX_DEPLOYMENT_TARGET to 10.3 or greater.
* libltdl/ltdl.c (dyld): Save the error from the first lookup
to report in lt_dlerror(). Otherwise the error is always
"Symbol _foo not in /usr/lib/libSystem.dylib".
Thanks to Chris Zubrzycki for reporting this.
2003-08-01 19:08:14 +00:00
Robert Boehne
f6f942758d * libltdl/ltdl.h: Tweak the header to support visual studio. 2003-08-01 18:31:55 +00:00
Peter O'Gorman
90233b7fa9 * libtool.m4 (darwin): Remove checks for Apple-specific gcc.
* libltdl/ltdl.c (HAVE_MACH_O_DYLD_H): #define
__private_extern__ for fsf gcc.
* ltmain.in (darwin): Only add new paths to newlib_search_path.
2003-06-03 15:36:58 +00:00
Gary V. Vaughan
a45bccc70d * libltdl/ltdl.c (argz_insert): Corrected an off by one error when
checking that before is not out of range.
2003-05-30 15:25:10 +00:00
Gary V. Vaughan
b6dc76b844 * libltdl/ltdl.c (lt_int_dyld_lib_install_name): Removed unused
variable mh1.
(sys_dyld_close): Removed unused variable size.
2003-05-30 15:21:46 +00:00
Peter O'Gorman
eeb3d9cc7c * libltdl/ltdl.c (dyld): Remove some debug printf's, fix a bug.
* ltmain.in (darwin): Only link against shared libraries when doing
link_all_deplibs.
2003-03-29 04:09:00 +00:00
Peter O'Gorman
97ade8120f * ltmain.in: Always use $echo not echo for consistency.
Changes for darwin building. Warn if linking against libs linked
with -module. Use module_cmds if available and building a module,
move convenience double lib check,
* libltdl/ltdl.c: ltdl support for darwin (first blush)
* libltdl/README: note that darwin is supported
* ltdl.m4: Changes for darwin, and for new shrext
* libtool.m4: Changed the way darwin builds stuff (make check passes)
added module_cmds, module_expsym_cmds and hardcode_automatic and put
them in the libtool script. check for zsh's removal of escapes. Allow
libraries to be stripped on darwin.
* TODO: Remove the todo about zsh's removal of excapes. note that zsh
echo works perfectly well, eval is screwed up. Seems to be fixed in
latest zsh.
* THANKS: added self :)
* f77demo/configure.ac: Use config.h or it doesn't work.
2003-03-20 20:24:21 +00:00
Robert Boehne
65c07ebba9 * libltdl/configure.ac: Use AC_CONFIG_AUX_DIR([.]) to place
auxilary files in the libltdl directory.
* Makefile.am: Add to the ltmain.sh rule to copy it into the
libltdl subdirectory.
* bootstrap: Explicitly handle ltmain.sh in libltdl, and pass
--copy to automake.
2003-02-25 00:30:28 +00:00
Charles Wilson
6da15e03aa * libtool.m4 (AC_LIBTOOL_PROG_CC_C_O): use printf, not
echo. (AC_DEPLIBS_CHECK_METHOD): use new shell function
win32_libid on w32 platforms
* ltmain.in: add new section for shell functions. Add
win32_libid() shell function.
* f77demo/Makefile.am: add -no-undefined flag


* ltdl.c (realloc): Remove custom realloc. (#define
rpl_realloc realloc) and comment out later code for custom
realloc. You can't define your own malloc unless you know
enough about the malloc in use to be able to tell how big
the src ptr is. The disabled code incorrectly used the
*destination* ptr to decide how much to copy. This
sometimes results in out-of-bound accesses which cause
segfaults. This is a quick hack for now; we may want
something cleaner later. (tryall_dlopen_module): check to
be sure (dirname_len > 0) before testing first character
against '/'. (try_dlopen): check for feof(file) in read
loop -- otherwise infloop?
2002-10-31 00:52:39 +00:00
Andrew Suffield
6487bfdcb5 Correct sense of libltdl file not found check. 2002-10-24 21:28:34 +00:00
Robert Boehne
c2b67f1043 * libltdl/ltdl.c: Commented out access() call that checks for a
library file's existence and permissions, as it appears to fail
in every case.
2002-09-24 14:06:50 +00:00
Bob Friesenhahn
d036ca584c Port libltdl fully to native Win32 API. 2002-08-28 20:40:28 +00:00
Gary V. Vaughan
f57ca23232 * libltdl/ltdl.c (tryall_dlopen): We need to catch missing file
errors early so that file_not_found() can detect what happened.
2002-07-16 09:12:30 +00:00
Gary V. Vaughan
a6eb30bff0 * libltdl/ltdl.c (argz_insert): Actually, BEFORE can be NULL
when *PARGZ_LEN is non-NULL, so the assertion to the contrary was
bogus.
Reported by Bob Friesenhahn <bfreisen@simple.dallas.tx.us>
and Albert Chin-A-Young <china@thewrittenword.com>
2002-06-23 21:35:58 +00:00
Gary V. Vaughan
762853d3e2 * libltdl/ltdl.c (foreach_dirinpath): Ensure that filename is '0'
terminated by all code paths.
Reported by Lutz Mller <lutz@users.sourceforge.net>
2002-06-22 14:47:24 +00:00
Daniel Kobras
9fb013ff55 * libltdl/ltdl.c (try_dlopen): Don't return bogus handle to user
if tryall_dlopen() fails.
2002-06-11 16:09:22 +00:00
Charles Wilson
7cb0a065a5 * NEWS: Updated.
* libtool.m4: use $NM to create the symbol list on cygwin, not
$ltdll_cmds as on mingw.  For all tags, (and host=cygwin) set
allow_undefined_flag="" so that the --auto-import magic
works properly.  For all tags (and host=cygiwn) set
always_export_symbols=no -- it is unnecessary thanks to
binutils' auto-export magic.
* libltdl/ltdl.c: Don't force cygwin to use the LoadLibrary
wrapper; use cygwin's builtin implementatino of dl*.
* cdemo/Makefile.am: the downside of unsetting
'allow_undefined_flag' -- we must include -no-undefined
in the _la_LDFLAGS variable.
* depdemo/l1/Makefile.am: ditto.
* depdemo/l2/Makefile.am: ditto.
* depdemo/l3/Makefile.am: ditto.
* depdemo/l4/Makefile.am: ditto.
* mdemo/Makefile.am: ditto.
* tagdemo/Makefile.am: ditto.
* demo/Makefile.am: ditto.  But also, we must make special
provision to clean up the hell0 wrapper script.
* pdemo/Makefile.am: ditto -no-undefined.  ditto hell0.
And use 'hell_static' instead of 'hell.static'.
* tests/pdemo-inst.test: use 'hell_static' instead
of 'hell.static'.
* tests/pdemo-exec.test: ditto.
2002-06-01 14:09:50 +00:00
Gary V. Vaughan
1cf9d2964d * NEWS: Updated.
* THANKS: Added Rob Collins and Chuck Wilson for their cygwin
work.

From Robert Collins  <robert.collins@itdomain.com.au>:
* configure.ac (AC_EXEEXT): Needed for DOSish systems.
* libtool.m4 (shlibpath_overrides_runpath) [cygwin]: Set to yes
when compiling with gcc.
(lt_prog_compiler_pic) [cygwin]: No longer needs the -DDLL_EXPORT
hack, so we just say the pic is the default.
(AC_LIBTOOL_PROG_LD_SHLIBS) [cygwin]: Extract symbols from a
library normally.
[cygwin]: Declare C++ compiler characterisics for g++, taking into
account the new auto-import support in cygwin ld.
* ltmain.in (specialdeplibs) [cygwin]: Be careful about
eliminating duplicate -lgcc's from the link line.
[cygwin]: Be smarter about .exe suffixes.
* demo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL):  Support
DOSish systems properly.
* depdemo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL):  Ditto.
* demo/Makefile.am (deplibs-check): Allow for .exe suffix.  Use
hell_static instead of hell.static for multi-`.' inhibited OSes.
* tests/demo-exec.test: Ditto.
* tests/demo-inst.test: Ditto.
* demo/foo.h [cygwin]: Sanitize cygwin dll support.
* demo/foo.c (_LIBFOO_COMPILATION_): No longer required.
* demo/hello.c (_LIBFOO_COMPILATION_): Ditto.
* depdemo/Makefile.am (bin_PROGRAMS): Use depdemo_static instead
of depdemo.static for multi-`.' inhibited OSes.
* tests/depdemo-exec.test: Ditto.
* tests/depdemo-inst.test: Ditto.
* mdemo/Makefile.am (bin_PROGRAMS):  Ditto for mdemo.static.
* tests/dryrun.test: Ditto.
* tests/mdemo-exec.test: Ditto.
* tests/mdemo-inst.test: Ditto.
* tests/build-relink.test:  Be careful about possible .exe
suffixes.
* tests/noinst-link.test: Allow for .exe suffix.
2002-03-03 03:19:55 +00:00
Volker Christian
bc88ff43b1 * libltdl/ltdl.c (find_handle_callback): treat the result of a call
to access(2) correctly when deciding whether a library can be found
in a directory from user_search_path.
2002-01-11 00:25:19 +00:00
Albert Chin-A-Young
55770c848b * ltdl.c: change some types to size_t from int because
strlen() returns size_t. argz_len changed to size_t in
foreach_dirinpath() because argzize_path() takes 3rd
argument as size_t, not int. Based on lint run from
Bob Friesenhahn <bfriesen@simple.dallas.tx.us>.
2001-10-28 02:35:22 +00:00
Gary V. Vaughan
9c63d67ebe * configure.ac: General modernisation and cleanup.
* cdemo/configure.ac: Ditto.
* demo/configure.ac: Ditto.
* depdemo/configrue.ac: Ditto.
* ltdl/configure.ac: Ditto.
* ltdldemo/configure.ac: Ditto.
* mdemo/configure.ac: Ditto.
* pdemo/configure.ac: Ditto.
* tagdemo/configure.ac: Ditto.
2001-10-06 15:35:17 +00:00
Albert Chin-A-Young
1093bb18a8 * libltdl/ltdl.c: Match function return type with prototype
(add static initializer to file_not_found).
2001-10-04 14:53:19 +00:00
Albert Chin-A-Young
d4e4eab57e * libltdl/ltdl.c: Match function return type with prototype
(add static initializer to some functions) to prevent warnings
from HP-UX cc.
2001-09-21 17:38:39 +00:00
Gary V. Vaughan
862b3a97d5 * libltdl/ltdl.c: Added support for dmalloc, and uncovered some
memory bugs as a result.
2001-09-21 03:28:39 +00:00
Gary V. Vaughan
7eba1343df * ltdl.m4 (AC_CHECK_HEADERS): Check for assert.h.
* libltdl/ltdl.c:  If not, disable assertions manually.
2001-09-13 19:43:58 +00:00
Gary V. Vaughan
2d4c83cc36 * libltdl/configure.ac (AM_INIT_AUTOMAKE): Bump libltdl version to
1.2.
* libltdl/Makefile.am (libltdl_la_LDFLAGS):  Bump libtool library
version info to 4:0:1.
2001-09-11 01:26:44 +00:00
Gary V. Vaughan
d736ae4d0c * libltdl/ltdl.c (foreach_dirinpath): argz_len should be a size_t.
Reported by Albert Chin <china@thewrittenword.com>
2001-09-06 23:16:04 +00:00
Gary V. Vaughan
adc412c82b From Michael Pruett <mpruett@engr.sgi.com>:
* libltdl/ltdl.c (find_module): `0' valued arguments to
tryall_dlopen_module() must be explicitly cast to avoid compiler
warnings on some environments.
2001-09-06 21:23:59 +00:00
Gary V. Vaughan
cc3dcd152e From Marius Vollmer <mvo@zagadka.ping.de>:
* libltdl/ltdl.c (tryall_dlopen_module): Don't forget to propogate
errors over recurse levels.
2001-09-03 00:22:13 +00:00
Gary V. Vaughan
1a6eb03f74 Based on a patch from Marius Vollmer <mvo@zagadka.ping.de>:
* NEWS: updated.
* ltdl.m4 (AC_LIB_LTDL): Check for unistd.h.
* ltdl.c: Include unistd.h if it exists.
(LTDL_SEARCHPATH_VAR): Macro to prevent hardcoding
"LTDL_LIBRARY_PATH".
(LTDL_ARCHIVE_EXT): Macro to prevent hardcoding ".la".
(archive_ext): Have only one copy of ".la" in the readonly
segment of the compiled library.
(find_handle_callback): Don't bother trying to dlopen the file if
it doesn't exist.
(find_handle): Don't bother searching for files if no search_path
was supplied.
(file_not_found): A new function to determine whether the last
error was due to a file not found condition.
(try_dlopen): Renamed from lt_dlopen() and changed to have the
same footprint as tryall_dlopen.  This involved a minor rewrite of
much of the internals of this function.
(lt_dlopen): A new function wrapped arounf try_dlopen().
(lt_dlopenext): If a file already has a suitable extension, don't
bother adding additional extensions and trying to open those.
Tidy up the rest of the code to prevent continued searching with
an eventual FILE_NOT_FOUND when a genuine failure earlier in the
search process could be legitimately reported.
2001-09-02 17:38:55 +00:00
Gary V. Vaughan
63ad459714 * libltdl/ltdl.c (argz_create_sep): Don't forget to include the
terminating '0' when counting argz_len.
(argz_create_sep): When canonicalizing argz, don't forget to copy
the terminating '0', incase canonicalization has shortened argz.
(argz_stringify): Don't covert the final '0' to a separator.
2001-08-16 00:48:52 +00:00
Gary V. Vaughan
196a286bc6 * libltdl/ltdl.c (lt_dlhandle_next): Now we can loop through all
loaded module handles as originally intended.
2001-08-15 00:23:22 +00:00
Gary V. Vaughan
27f0f2ccee * libltdl/ltdl.c (lt_dlseterror): Oops. This never worked
either, due to a pair of typos.  Now fixed.
2001-08-15 00:01:46 +00:00
Gary V. Vaughan
a3c34e5ca2 * libltdl/ltdl.c (N_ELEMENTS): Deleted. How come nobody noticed
there was no way this could have ever worked?
(lt_dlcaller_set_data): Now that valid caller_ids must be
non-zero, allocate an addition entry in the caller_data vector and
use a zero valued key as the end marker.
(lt_dlcaller_get_data): Iterate up to the end marker in one pass.
2001-08-14 23:28:40 +00:00
Gary V. Vaughan
93a734ce9d * libltdl/ltdl.c (lt_dlcaller_register): Caller ids are allocated
starting from value `1', so that clients can use a value of zero
to indicate that libltdl has not yet initialised.
2001-08-14 22:45:21 +00:00
Gary V. Vaughan
47491fdaa1 * libltdl/ltdl.c (find_file_callback): Fix a multiple free()
bug.
(tryall_dlopen_module): Remove some unused variables.
2001-08-13 22:53:39 +00:00
Gary V. Vaughan
01d29019a5 * libltdl/ltdl.c (lt_dlinsertsearchdir): Calculate the address
of the end of user_search_path correctly.
2001-08-13 19:51:34 +00:00
Gary V. Vaughan
8fe352b363 * libltdl/ltdl.c (rpl_argz_stringify): New fallback implementation.
* ltdl.m4 (AC_LTDL_FUNC_ARGZ):  Test for argz_stringify in libc.
* libltdl/ltdl.c (lt_argz_insertinorder): Renamed from
lt_argz_insert to make room for...
(lt_argz_insert): Wraps argz_insert with libltdl error handling.
(lt_dlpath_insertdir): Insert new path elements into an
argzized path.
(lt_dlinsertsearchdir): New function to insert new search
directories anywhere into user_search_path using the above.
(lt_dladdsearchdir): Rewritten to use lt_dlpath_insertdir.
* libltdl/ltdl.h (lt_dlinsertsearchdir): Prototype for export.
* doc/libtool.texi (Libltdl interface): Document it.
* NEWS: Updated,
2001-08-13 17:25:49 +00:00
Gary V. Vaughan
3539a1bf85 * libltdl/ltdl.c (load_deplibs): Insert missing 1st argument to
LT_EMALLOC.
2001-08-05 16:01:56 +00:00
Gary V. Vaughan
9b398f1b1d * libltdl/ltdl.c: Fixed several careless mistakes in the
foreach_dirinpath support functions.
(foreach_dirinpath): Walk path elements with the argz API.
2001-08-05 10:57:03 +00:00
Gary V. Vaughan
5473bb5e38 * ltdl.m4: Bump serial number.
General reformat and tify up in line with Autoconf-2.50 support.
(AC_LTDL_FUNC_ARGZ): Test for system implementations of a
handful of argz API calls, the error_t type, and the argz.h
header.
* libltdl/configure.ac (AM_INIT_AUTOMAKE): Bump version number.
* libltdl/ltdl.c (rpl_argz_append, rpl_argz_create_sep.
rpl_argz_insert, rpl_rgz_next):  Fallback implementations of
the similarly named functions for machines that don;t use glibc.
(lt_dlrealloc):  New memory function pointer that can be set by
the client.  Defaults to rpl_realloc, which in turn uses only
lt_dlmalloc and lt_dlfree.
(LT_EMALLOC, LT_EREALLOC): Set internal out-of-memory error
inside the functions called by these new macros.  Simplified all
callers by removing explicit client error reporting.
(memmove):  Fallback implementation of overlap safe memory copy
function.
(tryall_dlopen):  Factorized common code into...
(tryall_dlopen_module): ...this new helper function.
(canonicalize_path):  Changed function signature to return success
or failure.  Updated all callers.
(foreachfile_callback):  Make use of argz API.
(LT_DLSTRLEN): Moved from here...
* libltdl/ltdl.h (LT_STRLEN): ...to here.  Updated all callers.
(lt_dlrealloc):  Declare new memory management handle.
2001-08-01 06:50:16 +00:00
Gary V. Vaughan
be59bd4ad3 From Steve Ellcey <sje@cup.hp.com>:
* libltdl/ltdl.c (foreach_dirinpath): Free unassigned pointer
fix for `canonical'.
2001-07-25 02:52:36 +00:00
Gary V. Vaughan
63a4771533 Cleanup of libltdl:
* ltdl.c (lt_dladderror): Don't use `index' as a variable name,
since it is a function on BSD based boxes.
(lt_dlseterror): Ditto.
(lt_dlexit): Remove unused errormsg declaration.
(foreach_dirinpath):  Make sure filename is initialised.
(find_handle):  Return NULL for a failed search.
(foreachfile_callback): Don't reuse data2 symbol from prototype
in func declaration to prevent symbol shadowing.
* ltdl.h (lt_dlmutex_seterror): Don't use `error' as a parameter
name, since it is a function on glibc boxes.
2001-07-02 01:21:30 +00:00
Tim Van Holder
4925d0771e General cleanup of autoconf-2.50 upgrade:
* configure.ac: Mark as needing autoconf-mode in
emacs.  Pass arguments to AC_INIT.
* cdemo/configure.ac: Ditto.
* demo/configure.ac: Ditto.
* depdemo/configure.ac: Ditto.
* libtldl/configure.ac: Ditto.
* mdemo/configure.ac: Ditto.
* pdemo/configure.ac: Ditto.
* tagdemo/configure.ac: Ditto.
* ltdl.m4: Mark as needing autoconf-mode in
emacs.
* libtool.m4: Mark as needing autoconf-mode in
emacs.  Don't add () to AS_MESSAGE_LOG_FD.
* libltdl/configure.ac: Use config-h.in as
template for config.h.
* tagdemo/configure.ac: Drop the AC_DIAGNOSTIC. Move
AC_LANG([C++]) after the OBJEXT/EXEEXT check.
2001-06-29 22:56:50 +00:00
Gary V. Vaughan
020faa25e3 From Tim Van Holder <tim.van.holder@pandora.be>
* libltdl/Makefile.am (OBJECTS):  This was an implicit variable.
instead state the list of object variables explicitly.
2001-06-29 22:25:17 +00:00
Gary V. Vaughan
9a49cbac3e From Alexander Bluhm <Alexander.Bluhm@WiredMinds.de>
* libltdl/ltdl.c (lt_dlopen): Fix bad memory initialisation
assumptions.
2001-06-29 01:00:17 +00:00
Gary V. Vaughan
cb2c3d2ed8 Libtool now builds with the help of Autoconf-2.50!
* configure.ac (AC_PREREQ):  Require Autoconf-2.50 or newer.
(AC_PROG_CPP, AC_EXEEXT, AC_OBJEXT):  Removed.  Autoconf-2.50
doesn't have the AC_REQUIRE bug that required these to be called
explicitly from here.  Autoconf-2.50 uses this file instead of...
* configure.in: ...this, which is now deleted.
* cdemo/configure.ac, cdemo/configure.in: Ditto.
* demo/configure.ac, demo/configure.in: Ditto.
* depdemo/configure.ac, depdemo/configure.in: Ditto.
* libltdl/configure.ac, libltdl/configure.in: Ditto.
* mdemo/configure.ac, mdemo/configure.in: Ditto.
* pdemo/configure.ac, pdemo/configure.in: Ditto.
* libltdl/acconfig.h:  Deleted.
* Makefile.am (libtool): libtool now depends on configure.ac.
* libtool.m4 (_LT_AC_LOCK):  Use 2.50's AC_LANG_PUSH/AC_LANG_POP
instead of 2.13's AC_LANG_SAVE/AC_LANG_RESTORE.
(AC_LIBTOOL_LANG_C_CONFIG): Ditto.
(AC_LIBTOOL_LANG_CXX_CONFIG): Ditto.
* libtoolize.in:  Use $configure_ac, instead of hardcoding
configure.in.
2001-06-28 22:02:06 +00:00
Gary V. Vaughan
2d0b02d866 * NEWS: Updated.
* libltdl/ltdl,c (LT_DLMUTEX_LOCK): Renamed from MUTEX_LOCK to
avoid potential namespace clash.
(LT_DLMUTEX_UNLOCK, LT_DLMUTEX_SETERROR, LT_DLMUTEX_GETERROR):
Ditto.
(lt_dlmutex_lock_func): Renamed from mutex_lock to avoid a
namespace clash of NCR MP-RAS.
(lt_dlmutex_unlock_func, lt_dlmutex_seterror_func,
lt_dlmutex_geterror_func): Ditto.
Reported by Edouard G. Parmelan <Edouard.Parmelan@France.NCR.COM>
2001-06-26 01:37:48 +00:00
Gary V. Vaughan
f2b86e159b * libltdl/ltdl.c (LT_DLSTRLEN): Call strlen only if the argument
is non-NULL and non-zero in length.  Changed all calls to strlen
appropriately.
2001-06-26 01:06:00 +00:00
Gary V. Vaughan
62216889fc * libltdl/ltdl.c: Prototype all static functions. 2001-06-26 00:53:37 +00:00
Gary V. Vaughan
6c7f7fe214 * ltdl.m4: Bump serial number to 3.
(AC_LIB_LTDL): Require AC_HEADER_DIRENT for ltdl.c.
* libltdl/ltdl.h (lt_dlforeachfile): Prototype for new function.
* libltdl/ltdl.c: Include an appropriate header for the
opendir/dirent api.
(foreach_dirinpath): Visit each file in a list of directories.
(find_file_callback): Factor out the core of find_file() to make
use of foreach_dirinpath().
(find_file): Use it!
(find_handle_callback, find_handle): Ditto.
(lt_dlforeachfile):  New function to find files in a searchpath.,,
(foreachfile_callback): ...using this callback.
* doc/libtool.texi (Libltdl interface): Document new
lt_dlforeachfile api call.
2001-06-26 00:50:39 +00:00
Gary V. Vaughan
7396e09d88 * libtool.m4, ltmain.in, libltdl/configure.in,
tests/quote.test:  Remove stale references to ltconfig.
2001-04-24 23:22:35 +00:00
Gary V. Vaughan
fb267cab4e * ltdl.m4 (AC_C_INLINE): No longer required.
* libltdl/ltdl.c (strdup, strcmp, strchr, strrchr, memcpy, trim,
free_vars):  Revoke inline keyword from declarations.  `static
inline' is not very portable, and in addition Unixware 7.1.1's
compiler says you can't access static variables from inline
functions.
Reported by Peter Eisentraut  <peter_e@gmx.net>
2001-04-24 22:53:48 +00:00
Peter Eisentraut
3a75446c04 * doc/PLATFORMS: With this patch, freebsd4.3 passes the test
suite.
* libltdl/ltdl.c (lt_dlexit): Quit loop if only resident modules
are left.
2001-04-23 21:16:38 +00:00
Gary V. Vaughan
3050795c98 * ltdl.m4 (AC_CHECK_HEADERS): UW7 has sys/dl.h, so we must
check for that here.
* libltdl/ltdl.c (HAVE_SYS_DL_H):  Include it if necessary for
the dlopen loader.
Reported by Matthew Schalit <mschalit@pacbell.net>
2001-04-22 22:50:54 +00:00
Alexandre Oliva
69355e247f formatting change 2001-04-16 20:39:44 +00:00
Gary V. Vaughan
c0b7dcf2f9 * libltdl/ltdl.c (sys_shl_open): Cache a handle for the `self'
module, since HPUX adds module symbols into the `self' pool if
it is opened later.  Return the cached pointer if the caller
subsequently tries to open `self'.
(sys_shl_sym): Diagnose NULL modules.
2001-04-08 10:34:45 +00:00
Gary V. Vaughan
1d08896a95 From Ahmed Masud <masud@googgun.com>
* libltdl/ltdl.c (sys_shl_open):  Return a NULL module handle
for self opening.
(sys_shl_close):  Be careful not to close a NULL module handle.
(sys_shl_sym):  Allow shl_findsym() to open NULL modules, but
discard the modified module address it returns.
2001-04-05 22:05:49 +00:00
Gary V. Vaughan
da8bfb3dee * libltdl/ltdl.c (lt_dlopen): When reading the .la file,
reallocate the line buffer size if the line overflows the
original buffer.
Reported by Nick Hudson <skrll@netbsd.org>
2001-04-05 21:32:49 +00:00
Edward M. Lee
d35d97b0af * libltdl/ltdl.c: Use windows paths while calling LoadLibrary. 2001-03-31 00:12:41 +00:00
Gary V. Vaughan
066ce19719 * NEWS: Updated.
* doc/libtool.texi (Thread Safety in libltdl): New node describing
the  application the new MT API.
* libltdl/ltdl.h: Prototypes.
* libltdl/ltdl.c: Use these functions throughout the rest of
the file to provide thread locking.
(lt_dlmutex_register): New function to set callbacks for
multi-threaded calls into libltdl.
(lt_dl_mutex_lock): Type of a locking callback function.
(lt_dl_mutex_lock): Type of an unlocking callback function.
(lt_dl_mutex_seterror): Type of a callback function to save the
last libltdl error message in thread local storage.
(lt_dl_mutex_geterror): Type of a callback function to retrieve
the last saved error message from thread local storage.
2001-02-23 22:58:20 +00:00
Gary V. Vaughan
b37d4417e5 * libltdl/ltdl.c (lt_dlcaller_register): dont set an unsigned
type to a negative number.
Reported by Guenter Millahn <Guenter.Millahn@Informatik.TU-Cottbus.DE>
2001-02-20 01:51:50 +00:00
Gary V. Vaughan
230d659fcc * libltdl/ltdl.c (load_deplibs): Make sure the depcount is reset,
even when deplibs are not used because of the patch below.
2001-02-02 20:38:53 +00:00
Gary V. Vaughan
482d62add6 * ltdl.m4 (AC_LTDL_SYS_DLOPEN_DEPLIBS): If we know that the host
architecture automatically loads deplibs, then...
* libltdl/ltdl.c (load_deplibs): ...don't manually load each one.
2001-02-02 19:02:38 +00:00
Gary V. Vaughan
2b9f5eb2b4 * libltdl/ltdl.c (load_deplibs): If loading a deplib fails,
don't sweat -- it may be a lib that is already statically linked
into the loading application.

* libltdl/ltdl.c: Clean up the shadowing of the global handles
variable.
(LT_DLRESIDENT_FLAGS): Add extra parens to satisfy -Wall.
(load_deplibs):  Cast isspace() argument to an int to satisfy
-Wall.
2001-01-31 00:07:32 +00:00
Alexandre Oliva
679fb05bf2 * libltdl/Makefile.am (CLEANFILES): Clean conditionally-built
libraries.
2001-01-29 02:01:41 +00:00
Gary V. Vaughan
61510e8475 * NEWS: Updated.
* doc/libtool.texi (User defined module data): Updated.
* libltdl/ltdl.c (lt_dlhandle_next): New function.
* libltdl/ltdl.h (lt_dlhandle_next): Prototypes.
2001-01-08 01:52:12 +00:00
Gary V. Vaughan
bd96d1928a * NEWS: Updated.
* doc/libtool.texi (User defined module data):  Document it all.
* ltdl.m4:  Check for memcpy, or else bcopy.
* ltdl.c (lt_caller_data): New type.
(lt_dl_handle_struct): Add an lt_caller_data field.
(lt_dlcaller_register, lt_dlcaller_set_data,
lt_dlcaller_get_data): New functions.
(rpl_memcpy): A minimal fallback implementation.
(rpl_realloc): A realloc implemented with lt_dlmalloc and
lt_dlfree.
(LT_DLMALLOC, LT_DLFREE, LT_DLREALLOC, LT_DLMEM_REASSIGN):
New memory handling convenience macros.  Use them
appropriately throughout the rest of this file.
* ltdl.h (lt_dlcaller_register, lt_dlcaller_set_data,
lt_dlcaller_get_data): Prototyped.
2001-01-05 09:33:39 +00:00
Gary V. Vaughan
c821715109 * libltdl/ltdl.h: formatting change. 2001-01-04 22:06:11 +00:00
Gary V. Vaughan
22218cc780 * libltdl/ltdl.c (lt_dlexit): Was checking for residency of the
wrong module.
Reported by Robert Boehne  <rboehne@ricardo-us.com>
2000-12-20 23:50:09 +00:00
Utz-Uwe Haus
6da151bd3c * libltdl/ltdl.c (lt_dlopen): Changed "dl_dependency_libs" keyword
to "dependency_libs".
2000-12-16 01:09:44 +00:00
Tod Milam
2c856a4196 * libltdl/ltdl.c (lt_dlexit): Reset the loaders value to zero when
the last module has been unloaded.
2000-12-14 21:08:03 +00:00
Gary V. Vaughan
4ae2e67203 * doc/libtool.texi (Libltdl interface): Add documentation.
* libltdl/ltdl.h (lt_dlmakeresident, lt_dlisresident):  Add
prototypes.
(LT_DLERROR_CLOSE_RESIDENT_MODULE): New error status.
* libltdl/ltdl.c (lt_dlmakeresident, lt_dlisresident):  Allow
making and testing of resident module status, which prevents a
module from being lt_dlclosed.
(lt_dlopen):  If lt_dlopen()ing self, make the module resident.
(lt_dlclose):  Return an error if the module is resident.
2000-12-02 23:50:54 +00:00
Gary V. Vaughan
c2cc89dcb2 * libltdl/ltdl.h (lt_dlhandle): Rename the wrapped structure
to prevent nameclash when used from C++.
* libltdl/ltdl.c: Fixed all references.
2000-11-29 22:59:56 +00:00
Gary V. Vaughan
ccee1e498a * libltdl/ltdl.c (lt_dlopen): Change the default search order
for modules.  If the named module has no directory component,
always start the search with the user_search_path directories,
and then fall back on the current directory only if that fails.
2000-11-29 01:33:24 +00:00
Gary V. Vaughan
99daa5464b * libltdl/Makefile.am (libltdl_la_LDFLAGS): increment the version
number to reflect the breakage of binary compatibility.
* doc/libtool.texi (Libltdl interface):  Document
LT_NON_POSIX_NAMESPACE.
* libltdl/ltdl.h (LT_POSIX_NAMESPACE):  Deleted.  The default is
now to use this namespace, so the cpp macro is no longer
necessary.
2000-11-21 08:53:34 +00:00
Gary V. Vaughan
e637d738c9 * ltdl.c: Relegate non-POSIX-compliant symbols (e.g. those
ending in ``_t'') to deprecated #define compatibility macros.
Also ease up on the namespace pollution, so that only ``lt_''
and ``LT_'' prefixes are taken from the global namespace.
* ltdl.h: ditto.
2000-11-19 01:23:17 +00:00
Gary V. Vaughan
223e9ede2f * ltdl.c: Reformatted.
* ltdl.h: ditto.
2000-11-17 18:44:28 +00:00
Alexandre Oliva
6aa6b1b1d9 * libltdl/ltdl.c (load_deplibs): Don't append shlib_ext; use
lt_dlopenext() instead.
2000-09-04 06:09:25 +00:00
Alexandre Oliva
c82ec3eb1c * libltdl/ltdl.c (lt_dlopen): Set dlname from library_names if
dlname is empty.
2000-09-04 01:52:34 +00:00
Ken Block
f523ce38f8 * libltdl/ltdl.h: Also check for __cplusplus, __STDC__ is not
by Compaq C++ compiler
2000-07-10 07:17:35 +00:00
Thomas Tanner
264e859d07 * NEWS: update
* doc/libtool.texi (libltdl): rename lt_(find|next|add|remove)_dlloader
  to lt_dlloader_*
* libltdl/ltdl.c: ditto
* libltdl/ltdl.h: ditto, add declaration of lt_dlloader_(find|remove)
2000-05-11 15:17:27 +00:00
Pavel Roskin
94022a0210 * libltdl/ltdl.c: Typo. 2000-05-06 10:46:49 +00:00
Paul Sokolovsky
c8eefcf574 * ltdl.c: support lt_dlopen(0) for win32 2000-05-05 02:31:48 +00:00
Thomas Tanner
508df1487b * NEWS: reformatting
* ltmain.in (ILD): add extra convenience library scanning pass

* ltmain.in (ILD): accept -R flags for libraries, too

* ltmain.in (ILD): correclty merge the dlpreopened libraries
  with deplibs

* ltmain.in (install mode): remove directories from filenames
  before relinking (reported by Elrond <Elrond@Wunder-Nett.org>)

* doc/libtool.texi (libltdl): rename Library -> Lesser,
  clarify exception clause
* libltdl/ltdl.c, libltdl.h (License): ditto
2000-03-26 23:01:20 +00:00
Gary V. Vaughan
e884b6d673 * libltdl/ltdl.c (lt_find_dlhandle): Deleted. This was B.S.
far cleaner to use lt_dlforeach and lt_dlgetinfo.
* libltdl/ltdl.h:  Prototype deleted.
* doc/libtool.texi: Documentation deleted.
* NEWS: annoncement deleted.
2000-02-24 02:15:35 +00:00
Gary V. Vaughan
65e997bb2c * libltdl/ltdl.c (lt_find_dlhandle): New function.
(tryall_dlopen): Use it.
* libltdl/ltdl.h:  Prototype it.
* doc/libtool.texi: Document it.
* NEWS: updated.
2000-02-21 22:27:24 +00:00
Gary V. Vaughan
b87267f513 * libltdl/ltdl.c (lt_remove_dlloader): typo, s/=/==/g. 2000-02-21 22:09:36 +00:00
Gary V. Vaughan
7b0532e642 * libltdl/ltdl.c (lt_dlinit): removed unused variable, `loader'. 2000-02-21 22:03:16 +00:00
Gary V. Vaughan
2ca76b52bd * libltdl/ltdl.h (lt_dlloader_data_t): New type for loader
instance data.
(lt_user_dlloader): New lt_dlloader_data_t field.
(lt_module_open_t): Add lt_dlloader_data_t parameter.
(lt_module_close_t): Add lt_dlloader_data_t parameter.
(lt_find_sym_t): Add lt_dlloader_data_t parameter.
(lt_dlloader_exit_t): Add lt_dlloader_data_t parameter.
* libltdl/ltdl.c:  A sprinkling of /*ARGSUSED*/ markers to
reassure lint that the unused arguments are intentional.
(lt_dlloader_t): New lt_dlloader_data_t field.
(lt_dlloader_data): New function to return the contents of the
dlloader_data field.
(sys_dl_open): Take an additional lt_dlloader_data_t argument.
(sys_dl_close): Ditto.
(sys_dl_sym): Ditto.
(sys_dl): Initialise lt_dlloader_data_t field.
(sys_shl_open, sys_shl_close, sys_shl_sym, sys_shl): As above.
(sys_wll_open, sys_wll_close, sys_wll_sym, sys_wll): As above.
(sys_bedl_open, sys_bedl_close, sys_bedl_sym, sys_bedl): As
above.
(sys_dld_open, sys_dld_close, sys_dld_sym, sys_dld): As above.
(presym_init, presym_exit, presym_open, presym_close, presym_sym,
presym): As above.
(lt_dlinit): Call presym_init with additional argument.
(lt_dlexit): Call dlloader_exit method with additional argument.
(tryall_dlopen): Call module_open method with additional argument.
(lt_dlclose): Call module_close method with additional argument.
(lt_dlsym): Call find_sym method with additional argument.
(lt_add_dlloader): Initialise dlloader_data field.
(lt_remove_dlloader): Call dlloader_exit method with additional
argument.
2000-02-07 18:17:21 +00:00
Gary V. Vaughan
9218f3bcc2 * libltdl/ltdl.c (find_file): Prevent early release of memory
in filename/*pdir.
From Jon Leichter <jon@symas.com>
2000-02-03 12:54:29 +00:00
Gary V. Vaughan
ade92ab63b (sys_wll_init): Deleted. No longer required. And this time,
with feeling!
(sys_wll_exit): Ditto.
2000-02-03 12:33:06 +00:00
Gary V. Vaughan
f802484346 * NEWS: updated.
* doc/libtool.texi (Libltdl interface): Moved user defined module
loader documentation from here...
(Module loaders for libltdl) ...to here, and updated the text and
added examples.
* ltdl.m4 (AC_CHECK_FUNCS): check strcmp for lt_find_dlloader.
* libltdl/ltdl.h: Reformatted and commented for readability.
(struct lt_user_dlloader): New data type for passing
initialisation pointers to lt_add_dlloader.
(LTDL_ERROR_INVALID_LOADER):  New error message when non loader
handles are passed to the user loader API.
(LTDL_ERROR_INIT_LOADER): New error when loader initialisation
fails.
(LTDL_ERROR_REMOVE_LOADER): New error when loader removal fails.
(lt_module_open_t): renamed from lt_lib_open_t.
(lt_module_close_t): renamed from lt_lib_close_t.
(lt_dlloader_exit_t): renamed from lt_dlloader_exit_t.
* libltdl/ltdl.c: Reordered builtin loaders so that the "dld"
loader no longer occurs before "dlopen" on some platforms and
after it on others.
(lt_dlloader_t): Moved here from ltdl.h, added a field,
"loader_name", for identifying the loader, and renamed from
lt_dltype_t.  Renamed type variables to loader IFF of type
lt_dlloader_t.
(lt_module_t): Renamed from lt_syshandle. Renamed handle variables
to module IFF of type lt_module_t.
(LTDL_TYPE_TOP): Deleted.  No longer required.
(sys_dl): Initialised as a struct lt_user_dlloader.
(sys_dl_init): Deleted.  No longer required.
(sys_dl_exit): Ditto.
(sys_shl): Initialised as a struct lt_user_dlloader.
(sys_shl_init): Deleted.  No longer required.
(sys_shl_exit): Ditto.
(sys_wll): Initialised as a struct lt_user_dlloader.
(sys_wll_init): Deleted.  No longer required.
(sys_wll_exit): Ditto.
(sys_bedl): Initialised as a struct lt_user_dlloader.
(sys_bedl_init): Deleted.  No longer required.
(sys_bedl_exit): Ditto.
(sys_dld): Initialised as a struct lt_user_dlloader.
(sys_dld_init): Deleted.  No longer required.
(sys_dld_exit): Ditto.
(sys_presym): Initialised as a struct lt_user_dlloader.
(lt_mod_init_t): Moved to here from ltdl.h.
(lt_dlinit): Add builtin loaders using the user loader API.
(lt_dlexit): Unregister and free all loaders.
(lt_add_dlloader): New function to add a new module loader after the
loader specified in the argument.
(lt_remove_dlloader): New function to remove a module loader.
(lt_next_dlloader): New function for iterating over module loaders.
(lt_dlloader_name): Accessor function for name of dlloader.
(lt_find_dlloader): New function to get a reference to a registered
module loader.
(strcmp): static implementation incase the host has none.
(lt_dlgettypes, lt_dlsettypes): Removed.
2000-02-02 22:43:14 +00:00
Thomas Tanner
112b7cb29f * libltdl/ltdl.c: replace NULL with 0, remove unused system
and app_private pointers from lt_dlhandle_t
* libltdl/ltdl.c (presym_add_list): new preloaded symbols
  don't need to be added to the end

* libltdl/ltdl.c (lt_dlgetdata, lt_dlsetdata): removed
* libltdl/ltdl.h: ditto
* doc/libtool.texi (libltdl interface): ditto
2000-02-02 10:05:42 +00:00
Gary V. Vaughan
4d1f56497a * libltdl/ltdl.h (lt_dlrealloc): removed declaration.
* libltdl/ltdl.c (lt_dlrealloc): removed definition.
(lt_dladderror): Instead of calling lt_dlrealloc, use lt_dlmalloc,
and lt_dlfree.
2000-01-31 10:40:12 +00:00
Gary V. Vaughan
e9898ee435 * libltdl/ltdl.h (lt_dlrealloc): Added declaration.
* libltdl/ltdl.c (lt_dlrealloc): Added default definition.
2000-01-28 14:26:40 +00:00
Gary V. Vaughan
fb77bf4dd6 * libltdl/ltdl.c (lt_dlseterror): Catch errorcodes below 0 as
invalid.
* libltdl/ltdl.h (LTDL_ERROR): Added missing '_' in K&R
definition.
2000-01-28 01:39:00 +00:00
Gary V. Vaughan
e5fbd005ca * libltdl/ltdl.h (ltdl_error_table): Added missing error code, and
fixed typo in another code.
* doc/libtool.texi (Libltdl interface): Added missing @end
clause.
2000-01-28 01:33:33 +00:00
Gary V. Vaughan
c1f19d38df * NEWS: Updated.
* doc/libtool.texi (Libltdl interface): Document new entry
points.
* libltdl/ltdl.c (lt_dladderror): New function to add a user
defined error message to the tables used by lt_dlerror().
(lt_dlseterror):  New function to allow setting of last_error by
user modules.
(ltdl_error_strings): New preprocessor generated table of internal
error diagnostic strings.
(user_error_strings): New internal list of registered user error
diagnostic strings.
(throughout!): Use error messages from ltdl_error_strings.
* libltdl/ltdl.h (ltdl_error_table): New macro to tabulate
internal diagnostic error strings alongside enum keys.
2000-01-27 16:13:07 +00:00
Gary V. Vaughan
9e2159f458 * NEWS: Updated.
* doc/libtool.texi (Libltdl interface): Document new entry
points.
* libltdl/ltdl.c (lt_dltype_t):  Use new type definitions for
existing fields.
(lt_dladdtype): New function to add a new ltdl dynamic loader
type to the end of the list of valid types..
(lt_dlgettypes): New function to return the complete list of ltdl
dynamic loader types.
(lt_dlsettypes): New function to replace the list of ltdl dynamic
loader types entirely -- e.g. to prepend a new type to the
existing list.
(sys_dl_open, sys_dl_close, sys_dl_sym): Work with lt_syshandle..
(sys_shl_open, sys_shl_close, sys_shl_sym): ditto.
(sys_dld_open, sys_dld_close, sys_dld_sym): ditto.
(sys_wll_open, sys_wll_close, sys_wll_sym): ditto.
(sys_bedl_open, sys_bedl_close, sys_bedl_sym): ditto.
(presym_open, presym_close, presym_sym): ditto.
(tryall_dlopen): Call lt_lib_open_t functions lt_syshandle
compatibly.
(lt_dlclose): Call lt_lib_close_t functions lt_syshandle
compatibly.
(lt_dlsym): Call lt_find_sym_t functions lt_syshandle compatibly.
(lt_dltype_t): moved type declaration from here...
* libltdl/ltdl.h (lt_dltype_t): ...to here.
(lt_syshandle): new type for low level system handles passed by
loader functions
(lt_mod_init_t):  New type for functions implementing the
initialisation for an ltdl dynamic loader.
(lt_mod_exit_t): Type of exit functions for the same.
(lt_lib_open_t): Type of loader functions for the same.
(lt_lib_close_t): Type of unloader functions for the same.
(lt_find_sym_t): Type of symbol resolver functions for the same.
2000-01-27 15:14:34 +00:00
Gary V. Vaughan
f4993ae3b8 * libltdl/ltdl.c (sys_dl_init, sys_dl_exit, sys_dl_open,
sys_dl_close, sys_dl_sym):  Preprocess these away on cygwin to
avoid spurious error messages.
2000-01-27 15:07:49 +00:00
Thomas Tanner
8683e2f1b4 * ltmain.in: rewrite of the ILD code, merge linking code for
programs, libraries and objects, allow linking of shared libraries
  against static libraries/objects on platforms that support it
  but print a warning, fix some typos

* partially revert my previous change and
  update only copyright notices of files that were actually modified

* NEWS: update

* libltdl/Makefile.am: version number was wrong

* libltdl/ltdl.c (tryall_dlopen): revert Gary's change
  since it breaks dlpreopening
* ltdl.m4: ditto

* libltdl/ltdl.c (sys_search_path): search in the system default
  library search path, too
* ltdl.m4 (AC_LTDL_SYSSEARCHPATH): extract the path

* libltdl/ltdl.c (find_module): remove bogus file_not_found_error

* libltdl/ltdl.c (load_deplibs): implement loading of dependency
  libraries
* libltdl/ltdl.c (unload_deplibs): implement unloading of dependency
  libraries
* libltdl/ltdl.c (lt_dlexit): correctly close all modules and
  their dependencies

* libltdl/ltdl.c (lt_dlforeach): new function
* libltdl/ltdl.h: ditto
* doc/libtool.texi (using libltdl): document it

* libtool.m4: reformatting, only add -I$topsrc_dir/libltdl to
  INCLTDL

* libtoolize.in: reformatting
* ltconfig.in: reformatting
* ltmain.in: reformatting

* mdemo/configure.in: AC_SUBST INCLTDL
* mdemo/Makefile.am: use INCLTDL

* tests/Makefile.am: reexport OBJEXT and EXEEXT
* tests/dryrun.test: use them for building main.obj and mdemo.exe
2000-01-19 20:34:37 +00:00
Gary V. Vaughan
f7c496a099 * libltdl/ltdl.c (tryall_dlopen): Abort with
file_not_found_error before trying all lib_open() methods
if the file to be dlopened doesn't exist.
* ltdl.m4 (AC_HAVE_HEADERS): add unistd.h.
2000-01-17 15:21:33 +00:00
Gary V. Vaughan
8697488d34 * libltdl/ltdl.c (find_file): memory error fixed. 2000-01-16 23:20:47 +00:00
Gary V. Vaughan
d2223c3fbc * libltdl/ltdl.h (LTDL_STMT_START, LTDL_STMT_END): Macros for
wrapping other macros to make a portable compound statement from
multiple C statements in the expansion.
(LTDL_SET_PRELOADED_SYMBOLS): Use the above macros to add an
extern declaration for lt_preloaded_symbols, to remove
dependency on undefined symbol from libltdl.dll on cygwin (and
other -no-undefined architectures).
* libltdl/ltdl.c (lt_preloaded_symbols): No longer defined here.
2000-01-14 13:28:52 +00:00
Thomas Tanner
47938d46eb * update all copyright notices to 2000
* doc/libtool.texi (using libltdl): document new lt_dlinfo struct,
  replace NULL with @code{NULL}, document lt_dlsetdata(),
  lt_dlgetdata() and lt_dlgetinfo()
* libltdl/Makefile.am: increment interface version number
* libltdl/configure.in: set version number to 1.1
* libltdl/ltdl.c: make some variables public by moving them
  to the info struct, add support for application specific data
  within module handles, new lt_dlsetdata(), lt_dlgetdata() and
  lt_dlgetinfo() functions,
  fix memory leaks, minor cleanups
* libltdl/ltdl.h: ditto
* mdemo/main.c: demonstrate use of lt_dlgetinfo,
  improved handling of errors

* ltconfig.in: set hardcode_into_libs = yes for GNU/Hurd, Linux
  and Solaris, only hardcode *all* run-paths if hardcode_into_libs
  is set to 'all', otherwise hardcode only user-specified rpaths
  into libraries
* ltmain.in: minor cleanups, we don't need to add user-specified
  rpaths to compile_rpath, finalize_rpath is sufficient

* ltconfig.in: transform linux* -> *linux-gnu* _after_ host_os has
  been set! (reported by Bruno Haible <haible@ilog.fr>)

* configure.in: AC_SUBST reload_flag, deplibs_check_method
  and file_magic_cmd

* README: use 'libtool --version' instead of 'ltconfig --version'
  (suggested by Francios Pinard <pinard@iro.umontreal.ca>
2000-01-13 00:28:09 +00:00
Gary V. Vaughan
397308770c * libltdl/ltdl.h (LTDL_DIRSEP_CHAR): Leave undefined when
not compiling for a Windows target.
* libltdl/ltdl.c (canonicalize_path): New function to
ensure internal paths use '/' directory separators.
(find_file): use canonicalize_path.  Memory management
changed to cope.
(lt_dlopen): ditto.
(free_vars): Removed `dir' and `name', which are now handled
internally.
2000-01-10 23:09:12 +00:00
Gary V. Vaughan
9cd1acc5b4 * libltdl/ltdl.h (LTDL_DIRSEP_CHAR): Define to '/' or '\',
as suitable for the target host.
(LTDL_PATHSEP_CHAR): Similarly with ':' or ';'.
* libltdl/ltdl.c: Use LTDL_DIRSEP_CHAR and LTDL_PATHSEP_CHAR
instead of hardcoding throughout.
Reported by Jon Leichter <jon@symas.com>
2000-01-10 15:40:25 +00:00
Alexandre Oliva
a7a4a73302 * ltdl.m4: Renamed from...
* libltdl/ltdl.m4: that no longer exists.
* configure.in (ACINCLUDE_M4_LIST): Removed libltdl/acinclude.m4.
* Makefile.am (aclocal_macros): Added ltdl.m4.
(libltdl/acinclude.m4): Concatenate libtool.m4 and ltdl.m4.
* bootstrap: Likewise.
* libltdl/Makefile.am (ACLOCAL): Remove the definition.  Relying
upon -I may lead to duplicates.
* doc/libtool.texi: Suggest appending ltdl.m4 to acinclude.m4.
* libtoolize.in: Check AC_LIB_LTDL version number in aclocal.m4.
1999-12-16 11:40:16 +00:00
Alexandre Oliva
53ea12e82f * libltdl/configure.in (with_auxdir): Do not use it as the
argument of AC_CONFIG_AUX_DIR, automake requires a literal here.
Use AC_CONFIG_AUX_DIRS/DIR_DEFAULT instead.
1999-12-16 10:42:07 +00:00
Alexandre Oliva
f9f7b6ccf9 * libltdl/Makefile.am (ACLOCAL): Define with `-I .', as in
bootstrap.
1999-12-16 10:39:14 +00:00
Thomas Tanner
9cda34041b * libltdl/configure.in: path to auxiliary files can be specified
using --with-auxdir (idea by Howard Chu <hyc@highlandsun.com>)

* ltmain.in: don't remove multiple occurences from dependency_libs
  of a library, otherwise many dependencies would get lost

* bootstrap: use "aclocal -I ." instead of adding the contents
  of ltdl.m4 to acinclude.m4
1999-12-15 13:35:21 +00:00
Gary V. Vaughan
afe514df6a * NEWS: updated.
* libltdl/Makefile.am: Use -no-undefined for dll compliance.
* libltdl/configure.in: Use AC_LIBTOOL_WIN32_DLL for dll
compliance.
* libltdl/ltdl.c: Define and use LTDL_GLOBAL_DATA to correctly
export global data symbols from libtldl.dll.
* libltdl/ltdl.h: Define and use LTDL_SCOPE to declare data
symbols as dllexport, dllimport or plain ornary extern depending
in the context in which it is used.
1999-12-13 16:34:18 +00:00
Gary V. Vaughan
b94899573d * doc/libtool.texi (Distributing libltdl): document use of
ltdl.m4.
* libltdl/configure.in: Removed header checks, as they are
* libltdl/ltdl.m4: Added header checks from configure.in, so that
AC_LIB_LTDL is sufficient to compile ltdl.c.
Reported by Stephan Kulow <coolo@kde.org>.
1999-12-13 13:44:29 +00:00
Gary V. Vaughan
def5151000 From Stephan Kulow <coolo@kde.org>
* libltdl/ltdl.m4:  Add arg 3 to AC_DEFINE's to save the user
from having to hack acconfig.h.
1999-12-09 23:35:14 +00:00
Gary V. Vaughan
92634b43b5 * NEWS: Updated.
* TODO: Note some cleanups that are now needed.
* libltdl/configure.in: Use the new macroised tests.
* libltdl/ltdl.m4: New file, macroised tests formerly in
libltdl/configure.in.
Reported by Stephan Kulow <coolo@kde.org>.
1999-12-07 10:52:53 +00:00
Thomas Tanner
974da4c714 * NEWS: updated
* THANKS: added Olly Betts and Pavel Roskin
* doc/libtool.texi: fix typo

* fix major bugs which rendered libtool virtually
  unusable (i.e. not portable):
* ltconfig.in: don't hardcode system dependent variables in ltconfig!!
  but set sane defaults
* Makefile.am: pass variables from AC_LIBTOOL_SETUP to ltconfig
* libtool.m4: ditto, fix typo in AC_PROG_LD_RELOAD_FLAG

* ltconfig.in: use old_deplibs for archives, too
  remove second occurence of sysv5
* ltmain.in: fix typo, fix the second occurence of -DPIC, too

* libltdl/Makefile.am: increment version number, fix typo
* libltdl/ltdl.c (lt_dlsym): don't report an error if the
  libltdl-style symbol name wasn't found


* ltconfig.in: add support for Unixware (sysv4.2uw2*)
1999-11-02 12:33:05 +00:00
Alexandre Oliva
fb682e5b83 * libltdl/ltdl.c (lt_dlopen): Do not search paths when the
specified library is not just a basename.
1999-10-16 07:05:39 +00:00
Thomas Tanner
ef128a41ba * NEWS: new -no-install flag
* configure.in: fix typo
* doc/libtool.texi(Link mode): document -no-install flag,
  correct -no-fast-install docs
* libtool.m4: check for "file" command
* ltconfig.in: don't hardcode /usr/bin/file, remove second
  definition of sysv5, replace linkopts -> linker_flags
* ltmain.in: add new -no-install flag, print help for -no-install
  and -no-fast-install flags


* ltmain.in: always create output_objdir


* libltdl/Makefile.am: don't preserve file attributes when
  installing the libltdl sources
1999-10-03 16:36:32 +00:00
Alexandre Oliva
f5480b5c13 * libltdl/COPYING.LIB: Update to version 2.1.
* libltdl/ltdl.h, libltdl/ltdl.c: Update FSF address.
1999-08-07 07:40:18 +00:00
Thomas Tanner
cbc1402596 * NEWS, TODO: updated (pic flags)
* libtool.m4 (AC_PROG_LIBTOOL): added --with-pic flag
* ltconfig.in: new pic_mode variable and --prefer[-non]-pic flags,
  fixed the strip check (reported by Keith Bostic <bostic@bostic.com>)
* ltmain.in (compile mode): build only PIC/non-PIC code depending
  on pic_mode
* libltdl/README: document the supported dlopen interfaces
* doc/libtool.texi (tests): documented new tests
* tests/Makefile.am: added new tests
* tests/demo-pic.test: new test to test --with-pic
* tests/demo-nopic.test: new test to test --without-pic
* tests/build-relink2.test: variant of build-relink.test that
  uses depdemo
1999-07-17 09:00:53 +00:00
Thomas Tanner
3f8de2c2fc * NEWS: updated
* doc/PLATFORMS: updated
* changed my email address
1999-07-01 14:48:06 +00:00
Thomas Tanner
1be7f3cc98 * NEWS: updated
* README: added GNU Hurd to the supported platforms
* doc/libtool.texi: document `-dlpreopen dummy'
  instead of `-dlopen dummy'
* libltdl/ltdl.c (strchr): fixed typo (missing star)


* libltdl/ltdl.c (strrchr): fixed typo (missing star)
* libltdl/ltdl.c (trim): use `const' to silence -Wwrite-strings

* ltmain.in: support `-dlopen dummy', define lt_preloaded_symbols
1999-06-23 15:09:28 +00:00
Gary V. Vaughan
db655ec51b * libltdl/configure.in (ac_cv_lib_dl_dlopen): missing "x" in test
comparison corrected.
1999-06-16 18:33:51 +00:00
Gary V. Vaughan
d16e7cb1bb * libltdl/ltdl.c (sys_wll_open): libltdl expects this function to
fail if it is unable to physically load the library.  Sadly,
LoadLibrary will search the loaded libraries for a match and
return one of them if the path search load fails.  Simulate a
failure in this case for compatibility with the other APIs.
Also, LoadLibrary takes the liberty of adding `.dll' to library
names passed without an extension, we now add a trailing `.' to
prevent this from happening.
1999-06-16 14:49:41 +00:00
Gary V. Vaughan
b46d9d5fdb * libltdl/ltdl.c (sys_wll_close): Strangely enough, Microsoft have
decided that LoadLibrary returns `0' for success, yet FreeLibrary
returns `0' for failure!  The FreeLibrary call used to interpret
`0' as success for both functions.
1999-06-15 19:31:08 +00:00
Alexandre Oliva
2d508de39e * ltconfig.in: Reverted June 6's patch for new GNU ld output, it
is no longer needed, as ld reverted to the original format.
* NEWS: Likewise.

* ltconfig.in: When testing self-dlopening, test whether dlclose
crashes.  On FreeBSD 3.1, it does.  :-(
* libltdl/configure.in: Likewise.
* NEWS: Note work-around.
Reported by Pavel Roskin <pavel_roskin@geocities.com>
1999-06-10 14:42:34 +00:00
David Jones
6b6c388699 * libltdl/ltdl.c (LTDL_BIND_FLAGS): Remove BIND_VERBOSE, to avoid
printing error messages.
1999-05-27 09:57:39 +00:00
Thomas Tanner
306612d348 * ltmain.in: strip off the .exe suffix only on *Win
(Reported by Matthew D. Langston <langston@SLAC.Stanford.EDU>)
1999-05-23 10:03:23 +00:00
Pavel Roskin
9a931b5e53 * Makefile.am (EXTRA_DIST): Don't distribute instutils.
(install-data-hook): use libltdl/Makefile.am's local-install files
rule.
* libltdl/Makefile.am (local-install-files):  New rule to install
libltdl without creating links or mode 777 directories.
* instutil/*: deleted.
1999-05-22 12:50:00 +00:00
Gary V. Vaughan
d6bb5e77a0 * demo/foo.h: s/PARAMS/LTDL_PARAMS/g
* libltdl/ltdl.h: ditto.
* libltdl/ltdl.c: ditto.
1999-05-21 11:47:21 +00:00
Gary V. Vaughan
5d50500ea7 * demo/foo.h: s/__P/PARAMS/g
* libltdl/ltdl.h: ditto.
* libltdl/ltdl.c: ditto.
Reported by Akim Demaille <demaille@inf.enst.fr>
1999-05-21 11:29:45 +00:00
Thomas Tanner
1707ab25bb * bootstrap: fix libltdl/Makefile.in
* cdemo/main.c: "Welcome _to_ ..."
* mdemo/main.c: ditto
* libltdl/configure.in: support multiple dlopening mechanisms
  at once
* libltdl/ltdl.c: prefix system dependent functions with "sys_"
  to avoid symbol conflicts (libdld didn't work)
* libtool.m4 (AC_LIBLTDL_*): set INCLTDL to the path of ltdl.h
* ltconfig.in: check for dlopen with -ldl first
1999-05-20 17:54:09 +00:00
Gary V. Vaughan
349d815981 * libltdl/configure.in: Fix test failures on AIX 4.3.2 by checking
for dlopen *with* -ldl first.
Reported by Greg Wooledge <ic5035%tss1crs.amgreetings.com@rose.amgreetings.com>
1999-05-17 14:55:21 +00:00
Alexandre Oliva
8381c732a2 * libltdl/Makefile.am (ltdl.lo): Add dependencies.
* libltdl/configure.in: Clean up some duplicate defines.  Enable
support for multiple dlopening mechanisms.
* libltdl/acconfig.h: New file.  Add #undefs for defines that
would be duplicated.
1999-04-29 08:09:19 +00:00
Alexandre Oliva
d19a427a9c * libltdl/ltdl.c: Remove trivial warnings. 1999-04-12 19:41:29 +00:00
John David Anglin
b6e26ad6dd * libltdl/ltdl.c (shl_close): shl_t was correct here...
(shl_sym): ... but we have to pass the handle by reference here.
1999-04-12 19:02:18 +00:00
Thomas Tanner
c836f3090d * libltdl/configure.in: check for shl_load in libdld
* libltdl/ltdl.c (shl_close, shl_sym): use (shl_t *) instead of shl_t
* ltconfig.in (check for gcc): removed a bogus line,
  check for shl_load in libdld
* ltmain.in: added a warning to the header of the .la file
  to warn users against deleting the file,
  link shared against static libraries if
  deplibs_check_method == pass_all
1999-04-11 21:10:04 +00:00
Thomas Tanner
87f8ef6d60 * NEWS: improved DJGPP support
* doc/libtool.texi: removed hardcode_into_libs documentation
* libtool.m4: some DJGPP fixes
* ltconfig.in: ditto, reverted one of my previous patches: we need
  to check for NM, removed the hardcode_into_libs support since
  no platform seems to support it
* ltmain.in: some DJGPP fixes, removed the hardcode_into_libs support
1999-04-06 22:08:59 +00:00
Thomas Tanner
b6eed25814 * demo/Makefile.am: moved testsuite specific declarations to the end,
the deplibs check is now optional
* libltdl/configure.in: read libtool --config only once,
  merged AC_SYS_SYMBOL_UNDERSCORE+AC_SYS_NM_PARSE from libtool.m4
* libtool.m4: AC_SYS_SYMBOL_UNDERSCORE+AC_SYS_NM_PARSE were not
  used, lt_dlopen and silent may be empty, AC_SYS_LIBTOOL_CYGWIN
  no longer necessary
* ltconfig.in: NM is already checked in libtool.m4,
* ltmain.in: always link all static dependency_libs
* tests/Makefile.am: added deplibs.test
* tests/demo-exec.test, demo-inst.test: removed hell0
* tests/deplibs.test: new test to test the deplibs_check_method
1999-04-01 15:34:13 +00:00
Thomas Tanner
3e89f4c492 * doc/libtool.texi: fixed a typo
* libtoolize.in: add the libtool scripts to libltdl.tar.gz
* libtool.m4: don't AC_SUBST(USE_SYMBOL_UNDERSCORE),
  AC_CHECK_LIBM sets LIBM, AC_LIBLTDL_INSTALLABLE doesn't work
  when libltdl is already installed
* *demo/Makefile.am: use LIBM
* *demo/configure.in: AC_SUBST LIBM
* libltdl/configure.in: use ac_cv_sys_symbol_underscore instead of
  USE_SYMBOL_UNDERSCORE
* ltconfig.in: added link_all_deplibs variable
* doc/libtool.texi: document it
* ltmain.in: always search for libname.la - don't eval libname_spec,
  when linking libraries against static ones just print a warning
  and add them to dependency_libs, add -lc before deplibs,
  always link all dependencies of a static library or if
  link_all_deplibs is yes, hardcode library paths if
  hardcode_into_libs is no, don't link against dependency_libs
  that already are deplibs
1999-03-30 19:22:41 +00:00
Gary V. Vaughan
53ec0ae91b * libltdl/ltdl.c (lt_dladdsearchdir): Forgot to mallocate the
extra byte of memory for the teminating NUL, and forgot to
strcpy the original path in to the new memory before appending
the new path compononent.
1999-03-29 13:40:01 +00:00
Thomas Tanner
96dc12316e * NEWS: updated
* README: updated (BeOS support, no longer shared libraries
  support for AmigaOS), cleanups, we have now two mailing lists
* REAMDE-alpha: autogen -> bootstrap, we have now two mailing lists
* THANKS: added Xavier Pianet
* doc/PLATFORMS: BeOS works
* doc/libtool.texi: we have now to two mailing lists,
  updated -dlopen self documentation, documented libltdl's license,
  put each author in a separate line,
  inter-library dependencies on uninstalled libtool libraries are
  now supported, cleanups and minor corrections
* libltdl/COPYING.LIB: new file
* libltdl/ltdl.[ch]: added special exception to the LGPL license
* libtool.spec: removed, it was outdated
* Makefile.am: removed libtool.spec
* ltmain.in: use TMPDIR when possible, create a subdirectory
  in the temporary directory, added -export-symbols-regex to the help,
1999-03-27 16:58:10 +00:00
Thomas Tanner
64d868411f * TODO: support -dlopen for libraries
* doc/PLATFORMS: Erez Zadok reported that libtool works on bsdi 4.0.1
* doc/libtool.texi (libltdl): libltdl supports BeOS
* libltdl/ltdl.c: shlib_ext was declared even if LTDL_SHLIB_EXT
  didn't exist, partially reverted my previous patch: BeOS will
  automatically search in ADDON_PATH
* ltmain.in: don't allow relative run-paths, fixed a typo in a warning,
  ignore -dlopen self for libraries and objects,
  only accept -L paths that exist, minor cleanups,
  bugfix: add -lc for normal libraries, not convenicence libraries
  removed offensive warnings/comments
1999-03-24 22:42:59 +00:00
Gary V. Vaughan
1edf08c68a * libltdl/configure.in: the sed expression for finding the shared
library extension used to think the . in [.] for the cygwin
shared_library_names_spec was the start of the extension!!  We now
remove anything in square brackets (assuming that the square
brackets delimit a sed or expr expression which is not part of the
extension) before looking for the extension.

* TODO (cygwin):  food for thought re: mutually dependant dlls.
1999-03-23 12:55:43 +00:00
Thomas Tanner
e65f46d3fc * use the same header in all configure.in's and Makefile.am's
* NEWS: improved support for BeOS and Cygwin
* TODO: ILD branch was merged, all internal variables and macros
  are now documented
* demo/Makefile.am: use $(LIBS) instead of -lm
* doc/libtool.texi: documented new variable hardcode_into_libs
  and thread_safe_flag_spec, renamed all AM_ENABLE/DISABLE_* macros
  to AC_*, documented AC_DISABLE_FAST_INSTALL and AC_LIBTOOL_DLOPEN
* libltdl/ltdl.c: added two new error messages (cannot_open_error,
  cannot_close_error), use them where approriate,
  BeOS support (thanks to Xavier Pianet), on BeOS search modules
  additionally in ADDON_PATH
* libtool.m4: rewrote AC_CHECK_LIBM: BeOS and Cygwin don't have
  libm and *-ncr-sysv4.3* requires libmw
* ltconfig.in: don't check for LoadLibrary, hardcode dlopen
  configuration for BeOS and Cygwin
* ltmain.in: fix sourcing of .la files on Solaris
  (patch by Raja R Harinath)
1999-03-20 00:27:33 +00:00
Alexandre Oliva
61b5e233b4 added acinclude.m4 1999-03-14 05:43:03 +00:00
Thomas Tanner
61bb801686 * libltdl/ltdl.c: removed FILENAME_MAX since LTDL_FILENAME_MAX
is sufficient and doesn't break HP/UX
1999-03-12 20:47:44 +00:00
Alexandre Oliva
c7c23418fd * */configure.in: AC_SUBST(LIBTOOL_DEPS)
* */Makefile.am $(OBJECTS): depend on libtool
(libtool): rebuild automatically
1999-03-11 21:28:36 +00:00
Alexandre Oliva
50b30fa4d5 * libltdl/ltdl.c (strdup): cannot return str when it's NULL
because of const correctness
1999-03-11 03:14:54 +00:00
Alexandre Oliva
b96c596a21 * libltdl/ltdl.c (strdup): always use our own, because the
standard strdup won't use lt_dlmalloc
1999-03-11 02:50:13 +00:00
Alexandre Oliva
477712665e * libltdl/configure.in (libltdl_cv_need_uscore): do not assume
dlfcn.h and LTDL_LAZY exist; use LTDL_GLOBAL and LTDL_LAZY_OR_NOW.
This test is likely to fail if self-dlopening does not work,
especially because we do not link the program with
-export-dynamic.  Let's just hope that platforms whose symbol
names start with underscores will also accept underscores for
dlopen.  We should probably use libtool to compile and link this
test, so that we can use -export-dynamic.
1999-03-11 00:58:19 +00:00
Alexandre Oliva
ec1c9b7646 * libtool.m4 (AC_LIBLTDL_INSTALLABLE, AC_LIBLTDL_CONVENIENCE):
avoid introducing multiple --enable options when re-running
config.status
* libltdl/configure.in: if enable_ltdl_* is not set, assume no
* configure.in: if enable_ltdl_install is not set, enable it
1999-03-10 21:23:37 +00:00
Alexandre Oliva
6862fbcb71 * libltdl/configure.in: only assume implicit installation if
libltdl was libtoolized.  If not, print a warning message
suggesting the use of --enable-ltdl-install or of one of the
AC_LIBLTDL_* macros.
1999-03-10 20:39:03 +00:00
Thomas Tanner
c7e268df7d * configure.in: fix spacing for --disable-ltdl-install,
always configure libltdl, add libltdl/acinclude.m4 to
  ACINCLUDE_M4_LIST, disable installation of libltdl if necessary
* libltdl/Makefile.am: set version info for libltdl.la
* libltdl/configure.in: don't check whether
  enable_ltdl_convenience/install was set so that libltdl
  can be used as independent package (libltdl.tar.gz) without
  the need to use --enable-ltdl*
* libltdl/ltdl.c: minor cleanups, allocate the line cache
  dynamically (lt_dlopen)
1999-03-10 16:16:03 +00:00
Alexandre Oliva
6e60d47735 * libltdl/ltdl.c (lt_dlopen): some preprocessors choke if the `#'
of `#define' is not in column 1; let's go back to fortran! :-)
Add #undefs too, to avoid potential warnings or errors.
1999-03-10 14:33:22 +00:00