Commit Graph

1313 Commits

Author SHA1 Message Date
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
Thomas Tanner
c28f1af446 Inadvertently placed this in the HEAD branch. 2000-02-01 23:24:43 +00:00
Thomas Tanner
332942dd32 * ltmain.in: support -dlopen/dlpreopen for libraries
* NEWS: updated
* TODO: updated
* ltmain.in: rename dlopen to dlopen_support
* ltconfig.in: ditto
* doc/libtool.texi: ditto

* ltmain.in: check whether libraries are moved out of $libdir,
  replace .a and .lib with .$libext, .o and .obj with .$objext
2000-02-01 16:43:34 +00:00
Ossama Othman
aa7b778007 * configure.in (CONF_SUBDIRS): Added the `tagdemo' directory to
the list.
* ltcf-cxx.sh: Remove any residual `a.out' files resulting from
the "eval $output_verbose_link_cmds."
* ltconfig.in: Cleaned up nested quotes that were introduced with
the tags patch.  This fixes part sh.test failure.
* ltmain.in: Check if "$run" is of zero length before creating a
`.lo' file.  This fixes the dryrun.test failure.
Cleaned up nested quotes that were introduced with
the tags patch.  This fixes another part sh.test failure.
Remove "$libobj" not "libobj."
Exit with an error if both $object_name and $old_object are set to
"none" in the corresponding `.lo' file.  This should never happen.
Changed remaining uses of "mkdir" to "$mkdir."
Added dry run case to `.lo' case in link mode.  This fixes the
link-2.test failure.
(object_name, old_object): Prepend the subdirectory the `.lo'
resides in to the object names extracted from the `.lo' file.
This fixes the build-relink2.test failure.
(tempemovelist): Use $echo "X..." instead of echo "..." since
$Xsed is being used.  This fixes the last part of the sh.test
failure.
* tagdemo/Makefile.am, tagdemo/Makefile.in, tagdemo/README,
tagdemo/acinclude.m4, tagdemo/aclocal.m4, tagdemo/configure,
tagdemo/configure.in, tagdemo/foo.cpp, tagdemo/foo.h,
tagdemo/main.cpp, tests/tagdemo-conf.test tests/tagdemo-exec.test
tests/tagdemo-make.test tests/tagdemo-shared.test
tests/tagdemo-static.test: Added a new tagdemo that exercises
libtool's tagged configuration support found in the multilanguage
branch.
* tests/Makefile.am (TESTS): Added the tagdemo tests to the list.
* tests/quote.test: Updated to HEAD branch version.  This fixes
the quote.test failure.
2000-02-01 05:42:00 +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
Ossama Othman
f1f191549b * libtool.m4 (lt_cv_cc_needs_belf): Set the test language to C
prior to executing the test that checks if the C compiler needs
"-belf."
Reported by Chris Butler <chrisb@sandy.force9.co.uk>
2000-01-31 00:15:31 +00:00
Gary V. Vaughan
c49cc362a2 * libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Use changequote to
protect `[' and `]' in deplibs_check_method.
2000-01-28 23:28:57 +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
Thomas Tanner
1873874379 * ltconfig.in: Oops, replace the remaining $objdir's
* ltmain.in: merge library linking code of programs and libraries,
  some cleanups
2000-01-27 20:33:40 +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
58931da319 fix severe bugs reported by Elrond <Elrond@Wunder-Nett.org>
* ltconfig.in: replace $objdir with $output_objdir

* ltmain.in: change to the builddir before relinking programs

* ltmain.in, ltconfig.in, libtool.m4, ltdl.m4:
  remove unnessary spaces from line endings
2000-01-24 20:34:46 +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
03ec2c483c * ltconfig.in (Usage): Now it matches the code!
Reported by Jon Leichter <jon@symas.com>
2000-01-14 23:44:52 +00:00
Gary V. Vaughan
4d84ee0176 * README: Some notes about libtool release numbers. 2000-01-14 23:40:20 +00:00
Gary V. Vaughan
e196a092e6 * mdemo/README: Explain the deliberate incompleteness of the
Windows port.
* mdemo/configure.in: Use AC_LIBTOOL_WIN32_DLL.
* mdemo/Makefile.am (LDFLAGS):  Add -no-undefined.
2000-01-14 13:50:21 +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
Gary V. Vaughan
1eb294104b * libtool,m4 (AC_LIBTOOL_SETUP): The result of lt_cv_need_dllmain
was set to the opposite of what it should be.
* configure.in (AC_LIBTOOL_WIN32_DLL):  Call to this macro is
required for libtool configury to test lt_cv_need_dllmain on
Windows.
2000-01-14 12:14:41 +00:00
Gary V. Vaughan
7512aeb0c3 * ltconfig.in (opt_cr, mingw*): replace unescaped ? with correctly
escaped and portable {0,1} in sed expression.
2000-01-14 10:18:10 +00:00
Gary V. Vaughan
f5933deba4 * libtool.m4 (AC_LIBLTDL_CONVENIENCE): Add -I${top_srcdir}/libltdl
to default INCLTDL for VPATH.
(AC_LIBLTDL_INSTALLABLE): ditto.
Reported by Tom Tromey <tromey@cygnus.com>
2000-01-13 00:52:59 +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
7856ba7351 * ltmain.in: Oops, largarg' -> lastarg'. 1999-12-18 08:27:41 +00:00
Alexandre Oliva
e99410754a * ltmain.in (-Wc, -Xcompiler): Implemented in compile mode. 1999-12-18 08:22:50 +00:00
Alexandre Oliva
30880b9095 * ltmain.in (-Xcompiler, -Xlinker): Add to compile_command and
finalize_command.
(-Wc, -Wl): Likewise.
* tests/quote.test: Adjust quoting style of -Wl.
1999-12-18 07:50:04 +00:00
Alexandre Oliva
8dda72d1fa * ltmain.in: Oops, echo' -> $echo'. 1999-12-18 07:09:44 +00:00
Alexandre Oliva
811327bc67 * ltmain.in (-Wl, -Wc): Make commas argument separators, just like
in gcc.
1999-12-18 07:02:40 +00:00
Alexandre Oliva
02772c8400 * ltmain.in (libtool_args): Get all arguments properly enclosed in
quotes and backslash-protected when needed.
1999-12-18 06:27:21 +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
9b9bf0b391 * ltconfig.in (ltdll_obj): fixed typo: objdir -> $objdir 1999-12-13 12:54:24 +00:00
Gary V. Vaughan
db8bef933b * ltconfig.in (cygwin*, mingw*, export_symbols_cmds): keep any
DATA tags associated with symbols by recent dlltool.
(cygwin*, mingw*, archive_expsym_cmds): Honor any DATA tags
found in the symbol list.
Reported by Jon Leichter <jon@symas.com>.
1999-12-12 01:37:07 +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
Alexandre Oliva
59983b361e Moved CVS to subversions.gnu.org 1999-12-08 10:53:40 +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
Gary V. Vaughan
feaffc75a5 From Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>
* ltconfig.in:  split off the osf3 section, so that the osf4 and
osf5 sections can add `-msym' to arguments passed to the linker
for shared libs.
1999-12-06 10:02:40 +00:00
Alexandre Oliva
93f374984f file ltcf-cxx.sh was initially added on branch multi-language-branch. 1999-12-04 02:55:16 +00:00