output of NM too
(global_symbol_to_cdecl): new variable; convert the output of
global_symbol_pipe to valid C declarations; on HP/UX, convert
text symbols to function declarations
* libtool.m4: similar modifications
* doc/libtool.texi: document new variable
* ltmain.in: use global_symbol_to_cdecl to generate lt_dlpreopened
symbols; avoid extracting symbol lists from dlpreopened files
twice; do not filter symbols from dlpreopened libraries
* TODO: fixed HP/UX dlpreopening problem
(AC_LIBTOOL_SETUP): if lt_dlopen=yes, add --enable-dlopen to
libtool_flags; drop --enable-dlopen-self
* ltconfig.in: perform all the dirty work of testing for dlopening
support, because we need platform-dependent equivalents for
-export-dynamic, for self dlopening, and -static, for static self
dlopening
(dlopen_self_static): new configuration variable that is set to
yes only if static programs can dlopen themselves
* ltmain.in (-static, -all-static): dlopen_self=dlopen_self_static
then translate them to the export_symbols format. Now it works,
but it appears to be needlessly extracting the symbol list from
dlpreopened libraries twice
* doc/libtool.texi (libltdl interface): removed the line which
promised that lt_dlopen will return NULL if it can't resolve all
symbols
* libltdl/Makefile.am, libltdl/configure.in: fixed build problem:
renamed the convenience library to libltdlc.la and the
installed version to libltdl.la
* ltmain.in (wrapper script): replaced the "T" suffix of the program
file name with a "lt-" prefix
* mdemo/Makefile.am: use libltdlc.la
* tests/Makefile.am, tests/demo-nofast.test: added demo to
test --enable-fast-install=no
need relink; in the other cases, set it to needless
* ltmain.in (fast_install): if needless, set relink_command empty
* doc/libtool.texi (fast_install, shlibpath_overrides_runpath):
document the new behavior
* demo/configure.in: use AC_LIBTOOL_DLOPEN
* libtool.m4: added AC_ENABLE/DISABLE_FAST_INSTALL macro
* ltconfig.in: added --disable-fast-install flag
* ltmain.in: partially reverted Alexandre's patch and implemented
on-demand linking in such a way that the old developer-friendly
linking style is optional,
don't hardcode library paths that are in the system search path,
fixed a typo in lib_search_path,
implemented -export-symbols-regex for programs
and rename it to $progdir/$program only when it's finished, to
avoid race conditions. We can still get the program linked
multiple times, if multiple instances are started simultaneously
and the program does not exist, but they are very unlikely to
interfere with each other. There's still a possibility that one
process removes the $program another has just created, and doesn't
replace it before the other tries to run it, in a system whose
`mv' is not atomic, so it will $rm then $mv, but so what? :-)
Locking files have been avoided to prevent dead-locks in case they
are left over after a reboot or crash.
just warn if it can't be removed; add wrapper code to test whether
the install-executable is newer than the build-executable, to
relink it when it appears to be out-of-date
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
determines whether LD_LIBRARY_PATH or equivalent can be used to
override a hard-coded library search path; default to unknown
(linux-gnu*): set it to no
(solaris*, sunos4*): set it to yes
* ltmain.in (build_libdirs_flags, build_libdirs, build_rpath): if
shlibpath_overrides_runpath is not yes, arrange that wrapper
scripts create, on demand, programs that use uninstalled libraries
* doc/libtool.texi: document it
export_symbols_cmd.
(cygwin, mingw): Be sure to compile the ltdll.c object before
extracting the exported symbol list. Extract only the names
of the exported symbols from the def file [otherwise we might
run into trouble with -export-symbols-regex].
(archive_expsym_cmds): Regenerate the def file from the symbol
export list.
(delay_variable_subst): New sed expression to allow us to delay
evaluation of $foo in a double_quote_subst evaluated variable by
using $.
* ltmain.in (export_symbols_cmds): evaluate each ~ delimitted cmd
separately.
* doc/libtool.texi (libtool script contents): new paragraph to
explain the difference between _cmd and _cmds suffixes for
variable names.
(export_symbols_cmds): renamed from export_symbols_cmd.
used under win32 to extract a def file (symbol export list) from a
dll that has none. Code to use it might need to wait for the ILD
merge before it will be useful...
* autogen: only libltdl needs autoheader
* doc/libtool.texi (link mode): documented -export-symbols-regex
and updated -export-symbols
* doc/libtool.texi (script contents): documented
always_export_symbols, export_symbols_cmd, exclude_expsyms,
include_expsyms, dlopen and dlopen_self
more detailed description of need_lib_prefix
* ltconfig.in: a "'" was missing in the default value
of export_symbols_cmd
* ltmain.in: implemented -export-symbols-regex
* 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)
* *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
* 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
*-*-cygwin32. sed -e 's%(cygwin|mingw)32%1%g' ltconfig.in
* ltmain.in: sed -e 's%(cygwin|mingw)32%1%g' ltmain.in
* ltconfig.in (hardcode_libdir_flag_spec, allow_undefined_flag,
archive_cmds, archive_sym_cmds, old_archive_from_new_cmds):
removed duplication of config by assuming that `test $with_gcc =
yes' implies gnu ld, otherwise MSVC++ (which I haven't tested
since I inheritted the code from Ian Lance Taylor btw!) is implied.
1999-01-25; "don't try to use .o instead of .lo just because
there's no PIC flag. It loses if --disable-static, and there's
not much point if we're referring to the same file anyway...",
because not all linkers will accept .lo object names.
* ltmain.in: In the case where --disable-static is specified (as
noted in Alexandre's log entry), we just link some .o files to
prevent the original error.
Reported by Andrey Slepuhin <pooh@msu.ru>
* 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)
more general regular expressions
(file_regex): remove it; the name is misleading, it's not used
* ltconfig.in, doc/libtool.texi: ditto
* ltconfig.in (linux-gnu*, deplibs_check_method): extend regex to
support `LSB dynamic lib' in the output of `file'
Reported by Scott D. Heavner <sdh@po.cwru.edu>
dependency_libs only just before creating the .la file; they
should not be passed to the C compiler or linker at
library-creation time, since we don't know whether it is supported
(timestamps, update-timestamps): check whether TSDEPS_DIST are
up-to-date and update ltconfig and ltmain.sh if needed
(ltconfig, ltmain.sh): depend on TSDEPS; replace @TIMESTAMP@ with
the Date tag in the ChangeLog
(TSDEPS): empty unless overridden by update-timestamps
* ltconfig.in, ltmain.in (TIMESTAMP): append timestamp to most
references to VERSION
link libraries with dependencies on .la libs.
* NEWS: Removed reference to win32, incase 1.3 ships before
ild is ready.
* doc/PLATFORMS: Removed i686-pc-cygwin32, for the same reason.
* doc/libtool.texi: Removed win32 refs, for the same reason.
platforms that use -rpath, programs must be finalized at
installation time, otherwise build-tree programs will
prefer installed libraries over build-tree ones
From Chris Laas <golem@MIT.EDU>
* ltmain.in (compile): corrected a typo in compile mode which
caused "gcc: unrecognized option -c-fPIC" errors due to a missing
space.
deplibs_check_method): default to unknown, so that we're
remembered that this needs porting; unknown is interpreted as yes,
yes and none, respectively
(freebsd2*, freebsd3*, sunos4*, need_version): set to yes
(freebsd2*, freebsd3*, library_names_spec): libraries without a
version number are not used by `ld'; add $versuffix;
Reported by Ben Jackson <ben@ben.com>
* ltmain.in (deplibs_check_method): alias unknown to none
(need_version): if vinfo was not provided and release info was,
zero out versuffix only if we don't need_version.
* doc/libtool.texi: document what `unknown' means
1999-01-13 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* ltconfig.in (solaris): Define `deplibs_check_method',
`file_magic_command', `need_lib_prefix' and `sys_lib_search_path'
* ltmain.in (file_magic_regex): Add space before matching pattern,
such that it works on solaris (solaris has a tab between the
library name (including the colon) and the `ELF' and such the
`ELF' will never be matched).
libtool.m4, in last Alexandre Oliva's change to it
(sysv4*, ncr): pass all library dependencies
* ltmain.in (dependency_libs, -R): use `dep' instead of `arg' to
iterate, otherwise we'd overwrite `arg'
(convenience, old_libs): if --disable-shared, convenience
libraries are just old archives, as .lo's are of no use
* tests/cdemo-static.test: print --disable-shared here
* ltmain.in, doc/libtool.texi: documented that -rpath is the same
as -R for programs
* ltmain.in: softened the instructions for linking with installed
libraries, and noted that libtool can be used to link with them;
documented that -rpath is not required for convenience libraries
the files extract from the convenience library. Some systems,
such as FreeBSD2, will add a SYMDEF file, that is not an object
file, and therefore should not be fed to the linker
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
ltdll.c into ltmain.in, to avoid its duplication, and added a sed
script to extract it. Also, create def and base files in $objdir,
and don't remove them after the compilation.
(cygwin, library_names_spec): Create static part of the dll with
suffix -dll.a, to avoid conflicts with actual static libraries.
* ltmain.in: Added ltdll.c, as commented out text
* 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
command-line compiler, so that we can use it to compile C sources
generated during the build. This fixes the problem that showed up
with -export-dynamic of C++ programs in egcs 1.1.
* NEWS: ditto
old_archive_from_new_cmds, old_archive_cmds, archive_cmds,
old_postinstall_cmds, postinstall_cmds, old_postuninstall_cmds,
postuninstall_cmds and finish_cmds, so that the semi-colons inside
if/then/else/fi and for/do/done etc. do not break the eval loop in
ltmain.in (below).
* ltmain.in: changed all of the eval loops to use an IFS of `~',
to allow differentiation between the end-of-statement-;
(now `~' is used) and end-of-substatement-; (still `;'). This
fixes AIX and win32 at least.
fails. The tests now check the behavior of $echo for very large
strings, because some echo commands would just core dump (e.g.,
Solaris' printf). If too large strings fail, smaller ones are
tested.
(ltecho): arrange that, if the --fallback-echo method is selected,
echo will be defined in the libtool script so as to re-run itself,
not ltconfig
* ltmain.in: add --fallback-echo
(qecho) ensure that, if --falback-echo is being used, qecho is
defined with the full pathname of the libtool script
* ltconfig.in, ltmain.in: updated and fixed the patches below
1998-11-04 Thomas Tanner <tanner@gmx.de>
* mdemo/*: added new demo to demonstrate building of dlopenend
modules
* tests/Makefile.am, tests/mdemo*: added some tests for mdemo
1998-11-04 Gary V. Vaughan <gvaughan@oranda.demon.co.uk>
* demo/configure.in: added AC_EXEEXT macro so that the tests can
work on cywin32/mingw32 hosts. This requires the current CVS
autoconf
1998-11-04 Thomas Tanner <tanner@gmx.de>
* ltmain.in: New flag -export-symbols; new dlpreopen system
* demo/dlmain.c: removed dld_preloaded_symbol_count
1998-11-04 Ian Lance Taylor <ian@cygnus.com>
* ltmain.in: On installation, don't get confused if the same name
appears more than once in the list of library names.
1998-11-04 Ian Lance Taylor <ian@cygnus.com>
* ltconfig.in: Add objext and libext variables. Check for object
suffix. Check for mingw32* as well as cygwin32*. Use objext when
testing compiler. Add support for Visual C++ on cygwin32 when not
using gcc. Add objext, libext, and fix_srcfile_path to generated
libtool script.
* ltmain.in: Use .${objext} rather than .o. Use fix_srcfile_path
if it is set. Check for .obj as well as for .o, and for .lib as
well as for .a. Use .${libext} rather than .a when creating old
libraries.
* libtoolize.in: Change initial /bin/sh to @SHELL@.
* libtool.m4 (AM_PROG_LIBTOOL): Add AC_REQUIRE for
AC_CANONICAL_BUILD, so that autoconf doesn't get mixed up by the
AC_REQUIRE in AC_CHECK_TOOL.
1998-11-04 Ian Lance Taylor <ian@cygnus.com>
* ltconfig.in: Look in the right directory for libtool.c in
archive_cmds for cygwin32.
1998-11-04 Ian Lance Taylor <ian@cygnus.com>
* ltconfig.in: Fix cygwin32 support to avoid using a double
extension, to delete the def file, to set version_type to windows,
and to include versuffix in the DLL name.
* ltmain.in: Add support for a version_type of windows.
1998-11-04 Ian Lance Taylor <ian@cygnus.com>
* ltconfig.in: Add cygwin32 support.
* libtool.m4 (AM_PROG_LIBTOOL): Call AM_SYS_LIBTOOL_CYGWIN32 on a
cygwin32 host. Pass DLLTOOL and AS to ltconfig.
(AM_SYS_LIBTOOL_CYGWIN32): New macro.
available, fallback to not so safe mechanism, by setting
need_locks to warn
* ltmain.in (need_locks): when need_locks is set to warn, use the
lockfile to try to fail in case of incorrect concurrent builds
supported.
* libtool.m4 (libtool-lock): new ARG_ENABLE; sets (need_locks)
* ltconfig.in (disable-lock): control need_locks
(hard_links): check whether hard-links can be used for locking
* ltmain.in (need_locks): use $output_obj.lock for locking
components
* ltconfig.in (compiler): detect if the compiler supports
-c and -o flags, create a variable compiler_c_o. Also issue
a big warning if it is not supported
* ltmain.in (compile): enable the -o option as input for libtool.
The objects are not moved if the compiler supports -o with -c.
Sources and objects can contain relative directories.
(link): enable the linking of executables into relative directories