at the top ofltconfig.in is ugly, but will go away when the rest
of ltconfig is migrated.
* Makefile.am (libtool): Pass the value of $ECHO to ltconfig as
an environment variable.
* libtool.m4 (_LT_AC_PROG_ECHO_BACKSLASH): Quote the ECHO value
correctly so that it inserts the correct code into configure.in
suitably quoted for M4 expansion. This code needs to be near
the top of configure.in as it calls itself recursively, so I
am using AC_DIVERSION_NOTICE (or simply NOTICE on CVS
Autoconf). The value of ECHO is also substitued into the
Makefile to be used when Make calls ltconfig to generate
libtool, so another layer of quotation is required for the
Makefile.
(AC_LIBTOOL_SETUP): Use it.
* ltconfig.in: Accept a value for ECHO from the environment, and
carefully substitue for $0 if it is present in the ECHO value.
Because ECHO was quoted for Make, when ltconfig is called by
configure, it is overquoted, and one layer of quotes must be
stripped.
available to the generated libtool script.
* ltmain.in (compile_command, finalize_command): The native C
and C++ compilers on IRIX require the -LANG:std in order to to
compile correctly. The same options should _not_ be passed
through to gcc on IRIX, or at all on other architectures for
backwards compatibility (among others).
Reported by Bob Freisenhahn <bfreisen@simple.dallas.tx.us>
Reported by Albert Chin-A-Young <china@thewrittenword.com>
* ltconfig (old_AR_FLAGS): Add.
(old_archive_cmds): Use AR_FLAGS rather than hardcoding "cru".
(archive_cmds): Use AR_FLAGS rather than hardcoding "cru".
(AR_FLAGS): Default to "cru" if not set.
INCLTDL starts with top_srcdir, replace NULL with @code{NULL}
* ltmain.in (ILD): search in newlib_search_path, too
* ltmain.in (ILD): fix bugs in conv pass, expand convenience
libs to deplibs and link them later on
* ltmain.in (ILD): don't allow convenience libs to be
-dlopen/preopen'ed
* ltmain.in (ILD): it's not required to link all deplibs
in fast-install mode
* ltmain.in (ILD): if hardcode_into_libs=all, only relink
a library if it is linked against uninstalled libtool libraries,
rename link_against_libtool_libs to uninst_deplibs
* ltmain.in (ILD): tidy up, add some comments
$shlibpath_var $runpath_var'. If with_gcc, add gcc-related
environment variables. Add it to the configuration section.
* ltmain.in (relink_command): Expand those variables.
far cleaner to use lt_dlforeach and lt_dlgetinfo.
* libltdl/ltdl.h: Prototype deleted.
* doc/libtool.texi: Documentation deleted.
* NEWS: annoncement deleted.
interdependent libraries (e.g. -la -lb -la),
this requires adding deplibs in reverse order
* ltmain.in: link dlpreopened libraries before other libraries
(reported by Pavel Roskin)
* mdemo/Makefile.am: build and link libsub.la
* mdemo/sub.c: new file used by both dlopened modules
* mdemo/foo*: use sub() defined in libsub
* tests/dryrun.test: build libsub.la
* mdemo/Makefile.am: always link mdemo.static with -static
* mdemo/configure.in: ditto
* ltmain.in: fix dlopen/dlpreopening of objects
* ltmain.in (ILD): fix misplaced `continue' in -R* argument handler
* ltmain.in: merge duplicated code of clean and uninstall mode
* libtool.m4: recognize powerpc*linux* (reported by
Dirk A. Mueller <dmuell@gmx.net>)
old_deplibs_check_method, old_file_magic_cmd): New variabes.
Treat these as old_CC etc.
(STRIP, MAGIC): Create and set these variables in the generated
libtool script.
Reported by Pavel Roskin <pavel_rosin@geocities.com>
AC_SUBST, `AC_SUBST(FILE)' can never work. Use MAGIC as the
holder of the command to run in file_magic_cmd instead.
* ltconfig.in: s/FILE/MAGIC/g.
* libtool.m4 (AC_PROG_LIBTOOL): set MAGIC in the environment when
calling ltconfig.
(AC_PATH_MAGIC): renamed from AC_PATH_FILE.
(AC_PATH_TOOL_PREFIX): s/FILE/MAGIC/g. Also set file_magic_cmd
to '${MAGIC}' so that make can grok it.
* Makefile.am (libtool):
(clibtool): ditto.
* 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.
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
* 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
* 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.
* 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.
* 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
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
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.
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.
* 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>
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.
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>
* 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.
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
* 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.
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>.