Commit Graph

277 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Thomas Tanner
adf5912c04 * libltdl/ltdl.c (lt_dlopen): don't hardcode the length of the
constant strings
1999-03-09 23:00:24 +00:00
Alexandre Oliva
ae8fc72897 * libltdl/ltdl.c (LTDL_LAZY_OR_NOW): renamed from LTDL_NOW; prefer
LAZY loading because it's much faster and NOW is apparently
partially broken on FreeBSD
Reported by Archie Cobbs <archie@whistle.com>
1999-03-06 20:24:57 +00:00
Thomas Tanner
11cb604bc9 * TODO: added items for next alpha release, ILD etc.
* libltdl/ltdl.c: removed unnecessary check from presym_sym,
  fixed bug in lt_dlclose, allow lt_dlopenext(NULL),
  set deplibs for lt_dlopen(NULL)
1999-02-25 06:46:55 +00:00
Alexandre Oliva
f95e55ad09 * libltdl/configure.in: check for dld.h
* libltdl/ltdl.c: include dld.h
(dld_open) it's spelled memory_error, not no_memory_error
Reported by Stefan Burstroem <f94sbu@efd.lth.se>
1999-02-22 19:24:55 +00:00
Thomas Tanner
b965590d78 * libltdl/ltdl.c (lt_dlopen): use newhandle instead of handle
when dlopening the executable
* libtool.m4 (AC_LIBTOOL_DLOPEN): removed the redundant "yes: "
  prefix for lt_cv_dlopen, renamed lt_cv_dlopen_LIBS
  to lt_cv_dlopen_libs (more consistent)
* ltmain.in: implemented -dl[pre]open self, necessary for
  lt_dlopen(NULL), generation of exported symbols was broken
1999-02-21 15:38:02 +00:00
Archie Cobbs
7666c21afd * libltdl/ltdl.c (lt_dlopen): use newhandle instead of handle
where appropriate, when dlopening a non-libtool library
1999-02-20 05:23:31 +00:00
Alexandre Oliva
e906347209 * libltdl/ltdl.c (lt_dlmalloc, lt_dlfree): SunOS' cc can't cope
with argument lists, we __P even in the definition
1999-02-17 11:56:27 +00:00
Thomas Tanner
c361d1cfeb * cdemo/Makefile.am: renamed *foo1 to *foo, removed $(MATH_LIB)
* cdemo/foo1.c: renamed to foo.c
* libltdl/ltdl.c: eliminated lt_dltype, in presym_open():
  search for @PROGRAM@ if filename == 0, in lt_dlopen():
  fixed bug for filename == 0
* libltdl/ltdl.h: use __P macro for lt_dlmalloc/free
* libtool.m4: new macro AC_LIBTOOL_DLOPEN: checks for dlopen
  and dlopen(NULL) support
* ltconfig.in: added new variables dlopen and dlopen_self,
  --enable-dlopen[-self] flags for AC_LIBTOOL_DLOPEN
* ltmain.in: use dlopen[_self], dlpreopen files if there's no
  dlopen support, build lt_preloaded_symbols only if
  -dl[pre]open was used, include program symbols if -export-dynamic
  was specified and there's no dlopen(NULL) support
* mdemo/configure.in: use AC_LIBTOOL_DLOPEN
* mdemo/main.c: demonstrate lt_dlopen(0)
1999-02-15 16:46:55 +00:00
Thomas Tanner
6d34bd85f0 * *demo/Makefile.am: use $(MATHLIB)
* *demo/configure.in: use AC_CHECK_LIBM
* doc/libtool.texi: renamed file_magic_command to file_magic_cmd,
  renamed archive_sym_cmds to archive_expsym_cmds
* ltconfig.in: ditto
* ltmain.in: ditto
* libltdl/ltdl.c: use lt_dlmalloc/free
* libltdl/ltdl.h: define lt_dlmalloc/free
* libtool.m4: added AC_CHECK_LIBM macro
* ltconfig.in: renamed archive_sym_cmds to archive_expsym_cmds,
  added always_export_symbols, export_symbols_cmd, exclude_expsyms,
  include_expsyms, removed archive_cmds for cygwin/mingw and AIX,
  on Solaris store the exported symbols list in objdir
* ltmain.in: allow -export-symbols for modules, use thread_safe flag,
  add include_expsyms to the exported symbols
1999-02-13 15:43:04 +00:00
Alexandre Oliva
b37f61a8d4 * libltdl/ltdl.c (tryall_dlopen): strcmp filenames was reversed 1999-02-12 12:59:32 +00:00
Thomas Tanner
17915a088c * autogen: libltdl needs autoheader
* demo/Makefile.am: renamed hell.debug to hell.static
  (we're demonstrating static linking, not debugging)
* tests/demo*: ditto
* doc/libtool.texi (libltdl): documented new lt_dlopen(NULL)
  feature
* libltdl/acconfig.h: required for config.h
* libltdl/configure.in: use config.h
* libltdl/ltdl.c: use config.h, support lt_dlopen(NULL)
  (returns a handle for the program itself)
* ltconfig.in: minor reformatting
* ltmain.in: in lt_preloaded_symbols always define
  the program's symbols first, for -export-dynamic list all
  program symbols together, -export-symbols was broken for
  programs, minor reformatting
* mdemo/Makefile.am: renamed mdemo.debug to mdemo.static
* tests/mdemo*: ditto, mdemo.test was completely broken
1999-02-11 23:48:25 +00:00
Alexandre Oliva
425940e0ab * libltdl/ltdl.c (find_module): initialize filename if dir is NULL
Reported by Godmar Back <gback@cs.utah.edu>

1999-02-04  Godmar Back  <gback@cs.utah.edu>

* libltdl/ltdl.c (lt_dlopenext): missing space for terminator when
allocating memory for shlib_ext
1999-02-04 12:39:24 +00:00
Alexandre Oliva
b579b04417 * ltdl.c (lt_dlopenext): tmp would be trashed if shlib_ext was
longer than 3 characters
1999-02-03 07:55:40 +00:00
Alexandre Oliva
0e57eec185 * libltdl/ltdl.c (find_file): fix endless loop condition
(find_module): filename allocation was off by 1
1999-01-27 07:41:15 +00:00
Alexandre Oliva
09616d6977 * libltdl/ltdl.c (lt_dlopen, non-.la): find_file now returns 0 on
failure
1999-01-27 06:55:40 +00:00
Alexandre Oliva
bf0865ed59 * libltdl/ltdl.c (find_file): oops, filenamesize was miscomputed 1999-01-27 06:05:44 +00:00
Alexandre Oliva
c2db1b3525 * libltdl/ltdl.c (find_file): allocate filename dynamically 1999-01-27 05:42:21 +00:00
Alexandre Oliva
77eba97d29 * libltdl/ltdl.c: make all global strings char[], not char*; check
that all calls to malloc() are properly cast
(strdup, strchr, strrchr, trim, free_vars): declare as inline
(find_module): allocate filename dynamically; support null dir
(free_vars): free dir and name only if non-null
(lt_dlopen): keep dir as NULL if not given; fix expression that
calculated the size of name; only free and name if non-null
(lt_dlopenext): allocate tmp dynamically
1999-01-27 04:31:23 +00:00
Thomas Tanner
a5f6b87d4a * cdemo/configure.in: renamed AM_PROG_LIBTOOL to AC_PROG_LIBTOOL
* demo/configure.in: likewise
* depdemo/configure.in: likewise
* libltdl/configure.in: likewise
* mdemo/configure.in: likewise
* libltdl/ltdl.c: in find_module() check whether libdir is defined,
  tryall_dlopen(): move deallocation of an already opened handle
  to lt_dlopen(), allocate the directory in lt_dlopen() dynamically,
  minor cleanups, fixed memory leak (name)
* libtool.m4: renamed all AM_ macros to AC_ and added aliases for
  compatibilty, updated AC_SYS_NM_PARSE (no undefined symbols,
  don't count the symbols)
* ltconfig.in: added thread_safe_flag_spec (not used yet),
  added generic variable for linker options "linkopts" in
  all archive_cmds
* ltmain.in: added -thread-safe flag (unused)
1999-01-27 00:49:06 +00:00
Alexandre Oliva
60d43b8236 * libltdl/ltdl.c (find_module): test old_name and dlname for NULL,
not len==0
1999-01-25 20:58:14 +00:00
Alexandre Oliva
3a2cf81834 * libltdl/configure.in (libltdl_cv_objdir): yes, appending the "/"
in configure.in was much simpler
* libltdl/ltdl.c (objdir): ditto
1999-01-25 15:59:56 +00:00
Alexandre Oliva
f1d990faa4 * libltdl/ltdl.c (objdir): string collation isn't portable; strcat
"/" explicitly.  Or should this be moved to configure.in?
1999-01-25 15:48:45 +00:00
Thomas Tanner
2ad9832810 * libltdl/ltdl.c: allocate the variables in lt_dlopen() dynamically 1999-01-25 10:54:23 +00:00
Thomas Tanner
d045d768ee * libltdl/ltdl.c: minor bugfixes, append a "/" the search
directory only if necessary
* ltconfig.in: added support for FreeBSD >= 3.0
  (patch from Kurt D. Zeilenga)
* THANKS: added Kurt D. Zeilenga
1999-01-24 20:43:52 +00:00
Thomas Tanner
05ba011011 * doc/libtool.texi (libltdl): list supported dlopen mechanisms,
added function lt_dlopenext(), removed reference to
  LTDL_PRELOADED_SYMBOLS in LTDL_SET_PRELOADED_SYMBOLS
* libltdl/ltdl.c: partially reverted Alexandre's dynamic string
  allocation change (it was not necessary and the code was unreadable),
  cleanups, removed usr_search_path_size, renamed usr_search_path
  to user_search_path, in find_module() also check for moved
  modules, merged find_file() and find_library(),
  added lt_dlopenext(), in lt_dladdsearchdir() no longer reset
  the search path if 'search_dir' == NULL and don't use realloc()
  (might not be available on all platforms),
  removed __P((void)) in the declaration of lt_dlgetsearchpath()
* libltdl/ltdl.h: added lt_dlopenext()
* ltconfig.in: AIX archive commands were broken,
  fixed a MAJOR bug in global_symbol_pipe which caused
  "demo-shared.test;demo-make.test" to fail (libtool must not extract
  undefined symbols of libraries, i.e. symcode must not contain 'U')
* tests/Makefile.am (clean-local): "make distclean" in cdemo, too
1999-01-24 14:24:17 +00:00
Alexandre Oliva
6fffb233f1 * libltdl/ltdl.c (lt_dlopen): if we're reusing a previously opened
handle, don't reset its name nor add it to the list, and free the
name we have allocated
Reported by Edouard G. Parmelan <Edouard.Parmelan@France.NCR.COM>
1999-01-22 17:08:26 +00:00
Alexandre Oliva
981a66b4df * libltdl/configure.in: reintroduce code to detect native library
extension
* libltdl/ltdl.c (lt_dlopen): if a .la file name is given, that's
all.  Otherwise, lt_dlopen now tries to append .la first.  If this
fails, it tries the given filename, and, at last, tries to append
the native library extension to the given filename.
* doc/libtool.texi (lt_dlopen): explain new lookup strategy
1999-01-21 05:08:23 +00:00
Alexandre Oliva
24c33318ba * libltdl/ltdl.c: major rewrite to avoid almost all fixed-size
buffers; only `tmp' in lt_dlopen remained.  But the code got ugly
:-(
1999-01-21 04:27:26 +00:00
Alexandre Oliva
c50684a06e * libltdl/ltdl.c (find_module): remove the libdir argument, and
try to  open library only as old_name and dir/dlname
	(lt_dlopen): use `installed' variable in .la file to decide
	whether to use libdir or objdir
1999-01-20 13:08:50 +00:00
Alexandre Oliva
3770203057 * demo/configure.in (AC_C_CONST): added, for portability
* mdemo/configure.in (AC_C_CONST): ditto
	* libltdl/configure.in (AC_C_CONST, AC_C_INLINE): ditto
	* libltdl/ltdl.c (LTDL_FILENAME_MAX): use FILENAME_MAX if defined
	(FILENAME_MAX): replace all explicit uses with LTDL_FILENAME_MAX
	(presym_free_symlists, trim): don't return void, for portability
	(lt_dlgetsearchpath): replace (void) with __P((void))
1999-01-20 13:01:27 +00:00
Alexandre Oliva
9b0e18ca34 * libltdl/ltdl.c (lt_dlopen): properly detect error condition when
full pathname of non-libtool library is provided
1999-01-20 09:11:29 +00:00
Alexandre Oliva
8c83b51788 * libltdl/configure.in (libltdl_cv_preloaded_symbols,
HAVE_PRELOADED_SYMBOLS): test whether we support -dl*open
	* libltdl/ltdl.c (!HAVE_PRELOADED_SYMBOLS, lt_preloaded_symbols):
	define it to an empty list if libtool won't generate it, so as to
	avoid link errors.  This will cause silent dlopening failures, but
	maybe this is better than failing to link the program...
1999-01-20 09:06:46 +00:00
Thomas Tanner
6b7c38b36c *** empty log message *** 1999-01-17 11:19:40 +00:00
Alexandre Oliva
a2f4fa559b * libltdl/ltdl.h (lt_dlpreopen_default): reverted to a macro
without arguments, that calls lt_dlpreopen_default_ with
	lt_dlpreloaded_symbols
	* libltdl/ltdl.c (lt_dlpreopen_default_): renamed from
	lt_dlpreopen_default
1999-01-17 04:15:06 +00:00
Thomas Tanner
bfe6d93ab4 *** empty log message *** 1999-01-14 16:31:23 +00:00
Thomas Tanner
94cfa949e2 *** empty log message *** 1999-01-13 21:39:14 +00:00
Alexandre Oliva
196265528f * libltdl/configure.in (libltdl_cv_shlibext, LTDL_SHLIB_EXT):
system-dependent extension of shared libraries
	(libltdl_cv_shlibpath_var, LTDL_SHLIBPATH_VAR): system-dependent
	run-time shared library search path
	* libltdl/ltdl.c (dldpre_init, dldpre_exit): unrelate init/exit
	from add/remove symlists, so one may add dld_preloaded_symbols
	from main(), when only a library will call dldpre_init
	(lt_dlopen): use LTDL_SHLIBPATH_VAR, if defined, as secondary
	search path.  Also, if a requested .la file cannot be found, try
	with the LTDL_SHLIB_EXTension instead.
1999-01-13 18:37:25 +00:00
Alexandre Oliva
02fde1ea95 * THANKS: added Raffaele Sena
1999-01-13  Raffaele Sena  <raff@aromatic.com>

	* libltdl/ltdl.c: replaced RTDL with RTLD
1999-01-13 08:59:34 +00:00
Thomas Tanner
89aa144652 *** empty log message *** 1999-01-12 20:42:47 +00:00
Alexandre Oliva
48fcf6a997 * libltdl/ltdl.c (FILENAME_MAX): use it instead of MAX_FILENAME,
and don't redefine it if already defined; default to 1024, as on
	most systems
	(LT_SYMBOL_LENGTH): renamed from MAX_SYMBOL_LENGTH
	(LT_SYMBOL_OVERHEAD): new macro, that accounts for the size of
 	the _LTX_ separator and the initial underscore
	(lt_dlsym): sym now points to a stack buffer (lsym) if possible,
	or is dynamically allocated.  If allocation fails, a
	buffer_overflow_error is returned.
1999-01-10 19:15:01 +00:00
Thomas Tanner
662305576a *** empty log message *** 1999-01-10 14:44:06 +00:00
Alexandre Oliva
e842493250 *** empty log message *** 1999-01-09 20:05:55 +00:00
Alexandre Oliva
c107321bbd * libltdl/ltdl.c (lt_dlopen): missing strlen in bound test 1999-01-09 15:35:32 +00:00
Thomas Tanner
2a246ffc0d *** empty log message *** 1999-01-09 09:51:44 +00:00
Thomas Tanner
ea4730f0a8 *** empty log message *** 1999-01-06 21:04:20 +00:00
Alexandre Oliva
e1d24d3b02 * ltmain.in (libobjs_save, oldobjs): when building an
old-fashioned archive, use a copy of libobjs saved before
 	convenience libraries are appended

	* libltdl/ltdl.h (_LTDLL_EXPORT, _LTDLL_IMPORT): use cygwin or
	unix library import/export primitives; this may be convenient for
	people willing to create DLLs
	(_LTDLL_EXTERN): select _LTDLL_EXPORT or _LTDLL_IMPORT depending
	on _LTDL_COMPILE_
	* libltdl/ltdl.h, libltdl/ltdl.c (lt_dlpreopen): new function,
 	that replaces the current preloaded_symbols list with its
 	argument, and returns the old value, initially NULL
	(dldpre_init): don't refer to dld_preloaded_symbols any more
	(dldpre_open, dldpre_sym): search preloaded_symbols
	(lt_dlpreopen_default): call lt_dlpreopen with
	dld_preloaded_symbols, that is declared as extern; it should be
	called from the main program or from some static library without
	-no-undefined
	(lt_dlerror): new function, that returns the error message for the
	last error occurred; the error message is kept in the static
	variable last_error
	* libltdl/configure.in (enable-ltdl-install): moved back from
	enable-install; other packages might use enable-install already,
	better have fine grained control over this.
	* libltdl/Makefile.am (libltdls.la): discarded
1999-01-05 23:13:44 +00:00
Thomas Tanner
48218d83e7 *** empty log message *** 1998-12-31 11:25:57 +00:00
Thomas Tanner
c7c32517c0 *** empty log message *** 1998-12-25 10:39:59 +00:00
Alexandre Oliva
48c804561a * libltdl/Makefile.am: install libltdl conditionally...
* libltdl/configure.in: ... if --enable-ltdl-install is issued
	* libltdl/ltdl.c: removed #ifdef DEBUG
	* mdemo/Makefile.am (mdemo_debug_LDADD, mdemo_debug_DEPENDENCIES):
	use libltdl.la
1998-12-23 19:33:09 +00:00
Thomas Tanner
f772ee7a8e *** empty log message *** 1998-12-23 13:28:28 +00:00
Thomas Tanner
05928ae6f2 *** empty log message *** 1998-12-23 10:27:14 +00:00
Thomas Tanner
bd8bb66bb7 *** empty log message *** 1998-12-19 19:30:30 +00:00
Thomas Tanner
23d413543d *** empty log message *** 1998-12-18 22:23:51 +00:00
Alexandre Oliva
07978fe161 * ltmain.in (-force-static, force_static): removed
* libltdl/Makefile.am (CFLAGS): ditto
	* libltdl/configure.in: check for memory.h, rindex() and
	dlpreopening.  Fixed NEED_USCORE caching policy.
	* libltdl/ltdl.h (lt_dlsym): make the name argument const
	* libltdl/ltdl.c (types): new variable: head of list of available
	dlopening mechanisms
	(lt_dltype_t): interface of a dlopening mechanism, with pointers
	to functions for init, exit, open, close and sym
	(lt_dlhandle_t): added pointer to interface type
	(strdup): don't name it strdup; it can be troublesome
	(strrchr): ditto; use rindex if available
	(LIBTOOL_STATIC): check HAVE_DLPREOPEN instead, and move to the
	end of the file, so that it becomes the header of the list
	(all): renamed all interface-implementation functions, to avoid
	name clashes, and created lt_dltype_t nodes for all of them
	(lt_dlinit): initialize all available interfaces; remove those
	that fail from the list.  Return failure only if no interfaces
	could be initialized.
	(lt_dlexit): return number of failures
	(tryall_dlopen): try to open the library with all available
	interfaces
	(lt_dlopen): use tryall_dlopen; increased size of fixed buffers.
	We should probably make these bound-checked or dynamically
	allocated for the final release!  Fix bug when filename did not
	contain slashes; should we check for `\\' too?  Try old_library if
	everything else fails.
	(lt_dlclose): use the interface type for closing
	(lt_dlsym): make `symbol' const, use interface type for looking up
	* mdemo/Makefile.am: moved mdemo/modules/* back into mdemo
	(SUBDIRS): removed
	(libfoo2_la_LDFLAGS): added -static; nice test.  However, since it
	causes -lm to linked into hell*, it causes tests that should fail
	to pass
	(noinst_HEADERS): no need to install foo.h
	* mdemo/configure.in: remove modules/Makefile
	tests/mdemo-exec.test: updated accordingly
1998-12-16 05:42:23 +00:00
Alexandre Oliva
e392b24787 * libltdl/configure.in (stdlib.h, unistd.h, stdio.h): check
* libltdl/ltdl.c: include them
1998-12-16 02:39:15 +00:00
Gary V. Vaughan
9817e05d7b portability enhancements 1998-12-02 13:05:23 +00:00
Thomas Tanner
a4f2b1f846 *** empty log message *** 1998-11-23 21:26:38 +00:00
Alexandre Oliva
405661a0fa * libltdl/ltdl.c: replace NULL with 0, so that we don't depend on
header files defining it.
1998-11-21 07:45:20 +00:00
Alexandre Oliva
e76ee47bce * NEWS: -module and libtldl
* mdemo/Makefile.am: ../libltdl is within $(srcdir)

	* libltdl, Makefile.am: added libltdl (a system independent
	dlopen wrapper library extracted from mdemo)
	* ltmain.in: added -module flag for compiling and linking of
	modules. If enabled it compiles always both .o (with -DLT_RENAME)
	and .lo files
	* mdemo: modified mdemo to work with libltdl
	* tests/ltdl*: added tests for libltdl
1998-11-18 07:29:36 +00:00