Ralf Wildenhues [Wed, 12 Jan 2005 16:35:55 +0000 (16:35 +0000)]
* config/ltmain.m4sh: New option `--verbose'/`-v' to enable
override of `--silent'. Verbose is the default behavior.
* doc/libtool.texi (Invoking libtool): Document it.
Peter O'Gorman [Mon, 10 Jan 2005 15:44:13 +0000 (15:44 +0000)]
* config/ltmain.m4sh (func_mode_link): Fix
inherited_linker_flags so it puts it on the link line when
linking shared libraries as well as when linking executables.
* tests/inherited_flags.at: test inherited_linker_flags.
* tests/Makefile.am: Add test.
* tests/testsuite.at: Add test.
Reported by: Albert Chin-A-Young <china@thewrittenword.com>
Ralf Wildenhues [Mon, 10 Jan 2005 10:59:37 +0000 (10:59 +0000)]
* tests/sh.test: After `set dummy [...]', check for `shift'
within the same and following line.
* config/ltmain.m4sh (func_enable_tag, func_mode_install)
(func_mode_link): Sprinkle `shift's all over to conform to this.
Gary V. Vaughan [Sun, 9 Jan 2005 13:33:19 +0000 (13:33 +0000)]
* HACKING (Editing 'ChangeLog'): Follow the GCS with respect to
attributions, and mention how to handle tiny changes.
Reported by Alexandre Duret-Lutz <adl@src.lip6.fr>.
Gary V. Vaughan [Sat, 8 Jan 2005 21:17:57 +0000 (21:17 +0000)]
* m4/argz.m4, m4/libtool.m4, m4/ltdl.m4, m4/ltoptions.m4,
m4/ltsugar.m4, m4/ltversion.m4, m4/lt~obsolete.m4: RMS says,
'I think the [license of autoconf macro files] should be:
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is
# preserved.'.
Ralf Wildenhues [Mon, 3 Jan 2005 14:06:12 +0000 (14:06 +0000)]
* tests/am-subdir.at tests/testsuite.at (AT_BOOTSTRAP,
AT_LIBTOOLIZE, AT_CHECK_LIBTOOLIZE) Rename to ..
(LT_AT_BOOTSTRAP, LT_AT_LIBTOOLIZE, LT_AT_CHECK_LIBTOOLIZE)
and make use of new names.
Ralf Wildenhues [Thu, 30 Dec 2004 12:03:39 +0000 (12:03 +0000)]
* config/getopt.m4sh (func_version, func_usage, func_help):
Use `$SED -n' instead of `$SED RANGE {..}; d' as AIX sed cannot
handle the latter.
(func_help): start autoconf and automake in subshells to avoid
error messages from ash or Bourne shell if not available.
Ralf Wildenhues [Tue, 28 Dec 2004 15:16:33 +0000 (15:16 +0000)]
* config/general.m4sh (func_quote_for_eval): Move backslash to
beginning of character class, to work around old Bash bug.
(func_quote_for_expand): Also test to avoid unnecessary fork.
Ralf Wildenhues [Tue, 28 Dec 2004 13:50:23 +0000 (13:50 +0000)]
* Makefile.am, bootstrap, clcommit.m4sh, libtoolize.m4sh,
config/ltmain.m4sh: Replace `set --' with `set dummy [...]; shift'
for portability. tests/sh.test: Test for this.
Ralf Wildenhues [Tue, 28 Dec 2004 13:31:12 +0000 (13:31 +0000)]
* libtoolize.m4sh, config/ltmain.m4sh (most functions):
New variable $opt_debug is either `:' or `set -x' depending on --debug.
Execute at most function entries to cater for ksh which resets `-x'.
* tests/defs.m4sh: Ditto for VERBOSE=debug.
Ralf Wildenhues [Tue, 28 Dec 2004 12:54:49 +0000 (12:54 +0000)]
* config/ltmain.m4sh (func_extract_archives): Not all shells grok
`read -r' (unnecessary in this case).
Reported by Ralf Menzel <menzel@ls6.cs.uni-dortmund.de>.
Ralf Wildenhues [Tue, 28 Dec 2004 12:40:43 +0000 (12:40 +0000)]
* config/general.m4sh: New variable quote_scanset..
(func_quote_for_eval, func_quote_for_expand) ..use it to work around
SunOS ksh `case' backslash-escaping bug: protect character class by
variable expansion. Reported by Alexander Kurz <alexander.kurz@qsc.de>.
Peter O'Gorman [Mon, 20 Dec 2004 15:03:39 +0000 (15:03 +0000)]
* config/ltmain.m4sh (func_extract_archives,func_extract_an_archive):
On darwin, uniq can not take the flags -cd together, thanks to Ralf
for the fix, also ar does not accept N, so we use the fact that
ar x libfoo.a foo.o will always extract the first foo.o in the
archive and we then delete foo.o from the archive, which will also
delete only the first foo.o, then rinse and repeat. Also add markers
for the testuite.
* m4/libtool.m4 (_LT_CONFIG): Add a marker so that we can use a sed
expression to find the shell functions in libtool.
* tests/functests.at: Test this feature.
* tests/testsuite.at: Add the test.
* tests/Makefile.am: Add the test.
Ralf Wildenhues [Mon, 20 Dec 2004 13:08:35 +0000 (13:08 +0000)]
* libtoolize.m4sh: Install `install-sh' as well, needed for configure ..
* Makefile.am, Makefile.maint: .. install, update it.
* NEWS, doc/libtool.texi (Distributing): .. document it.
Reported by Ross Boylan <ross@biostat.ucsf.edu>.
Ralf Wildenhues [Mon, 20 Dec 2004 08:15:13 +0000 (08:15 +0000)]
* m4/libtool.m4 [solaris] (_LT_LINKER_SHLIBS): Add '${wl}-z ${wl}text'
to archive_cmds and archive_expsyms_cmds. I.e., do not allow nopic in
shared libraries.
Ralf Wildenhues [Mon, 20 Dec 2004 08:06:21 +0000 (08:06 +0000)]
* m4/libtool.m4 [solaris] (_LT_LINKER_SHLIBS): Change no_undefined_flag
back to ' -z defs'. Problems with linking against libgcc.a will have
to be resolved differently.
Bob Friesenhahn [Mon, 13 Dec 2004 21:09:19 +0000 (21:09 +0000)]
* libltdl/lt__strl.c, libltdl/libltdl/lt__strl.h: New files to
emulate strlcat and strlcpy, which support size-bounded string
copying and concatenation for improved security.
* libltdl/Makefile.am: Optionally build source files
libltdl/lt__strl.c and libltdl/libltdl/lt__strl.h.
* m4/ltdl.m4 (LTDL_INIT): Add checks for strlcat and strlcpy.
* libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG):
Append -G to link command-line on AIX to honor -brtl on command-line
(runtime linking). Already done for IBM C/C++ compilers.
* config/ltmain.m4sh: Preserve -model [arg] option, used
with the Tru64 UNIX C++ compiler. This option selects the
layout of C++ classes, name mangling, and exception handling.
Ralf Wildenhues [Thu, 9 Dec 2004 17:10:10 +0000 (17:10 +0000)]
* m4/libtool.m4 (_LT_CHECK_XSI_SHELL, _LT_PROG_XSI_SHELLFNS): New macros
to detect at `configure' time whether the shell supports some XSI
extensions and to copy appropriate versions of new shell functions into
`libtool' through `config.status'. Copied functions are Bourne and XSI
variants of func_basename, func_dirname (a variant of `dirname' suitable
for libtool). (_LT_SETUP) Require _LT_CHECK_XSI_SHELL.
(_LT_CONFIG) Use _LT_PROG_XSI_SHELLFNS to insert into `libtool' at marker.
Ralf Wildenhues [Tue, 30 Nov 2004 20:46:23 +0000 (20:46 +0000)]
* config/general.m4sh: basename sed-subst is anchored and thus
does not need the `g' flag.
(func_quote_for_eval): Return both the possibly double-quoted
backslashified as well as only the backslashified argument.
* config/ltmain.m4sh (func_mode_link): Use both return values,
to save another sed_quote_subst application per cmdline arg.
Ralf Wildenhues [Mon, 29 Nov 2004 21:18:26 +0000 (21:18 +0000)]
* config/ltmain.m4sh (func_lalib_p): Update function
description. (func_lalib_unsafe_p): New function with same
functionality but written without forks; this function is safe
to use for cases where the argument either does not exist or
is required to be a lalib for correct operation.
* NEWS: Mention the fact that stdin is not to be used.
* (func_mode_execute, func_mode_install, func_mode_link):
Use func_lalib_unsafe_p where appropriate.
* (func_mode_execute): For the program wrapper, use
func_ltwrapper_p instead of func_lalib_p.
Ralf Wildenhues [Mon, 29 Nov 2004 21:12:41 +0000 (21:12 +0000)]
* m4/libtool.m4 (_LT_LINKER_SHLIBS): Treat linux-dietlibc with
the `diet' compiler wrapper (as opposed to the `diet-dyn'
wrapper) as a static-only platform.
* NEWS: Updated.
Ralf Wildenhues [Mon, 29 Nov 2004 21:00:20 +0000 (21:00 +0000)]
* m4/ltdl.m4 (LT_LIB_DLLOAD): Define HAVE_LIBDLLOADER if we
have a dlloader to preload.
* libltdl/ltdl.c (lt_dlinit): Only preload if HAVE_LIBDLLOADER, only
declare preloaded_symbols then. Fixes libltdl on static platforms.
* NEWS: Updated.
Gary V. Vaughan [Mon, 29 Nov 2004 13:50:54 +0000 (13:50 +0000)]
Add a search path option to libtoolize so that we can run it from
the testsuite without pulling in the last installed macros and
ltdl sources:
* libtoolize.m4sh: Add a -I option to change libtoolize's search
path for macro files, and libltdl master sources.
(pkgvdatadir, pkgvmacrodir): Renamed...
(pkgvdatadirs, pkgvmacrodirs): ...as they can now contain a ':'
delimited list of directories. Adjust all callers.
(func_copy_all_from_path): New function to search a ':' delimited
search path for a directory to copy.
(func_serial_update, func_ltmain_update, func_config_update): New
first parameter is a filename to search for. srcdir parameter can
now be a ':' delimited search path. Adjust all callers.
(func_copy_some_files): Ditto.
Put srcfile_spec first in parameter list for consistency with
other functions. Adjust all callers.
(func_copy_cb): func_copy adapter function to call func_copy
correctly from func_copy_some_files.
(func_filename_path_search): Return the full path to the first
occurence of a named file found in a list of directories.
* tests/testsuite.at (LIBTOOLIZE): Wrap exported LIBTOOLIZE
initialisation in PREPARE_TESTS diversion to stop it being
discarded when testsuite is generated.
(AT_LIBTOOLIZE): Factor out libtoolize calls,
and set search path to find macros and libltdl source files from
the source tree.
(AT_CHECK_LIBTOOLIZE): Test it.
(AT_BOOTSTRAP): Adjust. Split out call to make.
* tests/am-subdir.at: Call make explicitly.
(Makefile.am): Fix typo in ACLOCAL_AMFLAGS,
Ralf Wildenhues [Sun, 28 Nov 2004 19:55:40 +0000 (19:55 +0000)]
* config/ltmain.m4sh (func_mode_link): $dlsymsobj is really
$symfileobj, bug exposed only in the static preloading case
(symfileobj is created, but not linked into output).
Bob Friesenhahn [Sun, 28 Nov 2004 01:35:45 +0000 (01:35 +0000)]
* config/ltmain.m4sh: Add fully-qualified paths to temp_rpath
rather than unqualified paths in order to avoid possible errors
when computing the fully-qualified path later.
Gary V. Vaughan [Wed, 24 Nov 2004 14:55:55 +0000 (14:55 +0000)]
* Makefile.am: Move Autotest rules from here...
* tests/Makefile.am: ...to here.
* bootstrap: Adjust. Also, create temporary Makefile from
tests/Makefile.am so that bootstrap can create the Autotest
testsuite.
Gary V. Vaughan [Wed, 24 Nov 2004 14:04:15 +0000 (14:04 +0000)]
If the user's login shell is something crazy like, oooh,
/bin/tcsh, trying to execute bourne shell helper scripts with
the `$SHELL /path/to/helper $helper_flags' idiom incase the
execute bits were lost by say, eeer, cvs, is gonna blow up in
our faces. This changeset tries to save these people from
their shells^H^H^H^H^H^H^H^H^Hmselves :->
Gary V. Vaughan [Tue, 23 Nov 2004 16:08:56 +0000 (16:08 +0000)]
The ltdl.h header is the published interface to libltdl, and
is thus not installed to $prefix/include/libltdl. It has always
been used with `#include <ltdl.h>', so move just that one file
back to where it was before:
* libltdl/libltdl/ltdl.h: Moved from here...
* libltdl/ltdl.h: ...to here.
* libltdl/Makefile.am: Adjust.
Peter O'Gorman [Tue, 23 Nov 2004 12:15:21 +0000 (12:15 +0000)]
Do not require that libtoolize --ltdl=/some/path end in libltdl. Move
most libltdl headers to libtldl/libltdl to allow
#include <libltdl/ltdl.h> to always work.
* libltdl/Makefile.am, libltdl/loaders/Makefile.am: Look for includes
in the new location.
* libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt__dirent.h,
libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h,
libltdl/libltdl/lt_dlloader.h, libltdl/libltdl/lt_error.h,
libltdl/libltdl/lt_system.h, libltdl/libltdl/ltdl.h,
libltdl/libltdl/slist.h: Added files, moved from libtdl/.
* libltdl/lt__alloc.h, libltdl/lt__dirent.h, libltdl/lt__glibc.h,
libltdl/lt__private.h, libltdl/lt_dlloader.h, libltdl/lt_error.h,
libltdl/lt_system.h, libltdl/ltdl.h, libltdl/slist.h: Removed, moved
to libltdl/libltdl.
Ralf Wildenhues [Wed, 17 Nov 2004 15:24:03 +0000 (15:24 +0000)]
* m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG)
[aix4/aix5 !ia64]: Set whole_archive_flag_spec to '$convenience'
so convenience libs are really added to the link cmdline.
Gary V. Vaughan [Wed, 10 Nov 2004 13:27:21 +0000 (13:27 +0000)]
From James Henstridge <james@jamesh.id.au>:
* m4/libtool.m4, m4/ltdl.m4, m4/ltoptions.m4: Added commented out
empty macro definitions to match each AU_DEFUN to help aclocal
from automake-1.4 regexps find the right libtool macro files.
James E Wilson [Wed, 10 Nov 2004 10:14:12 +0000 (10:14 +0000)]
* config/ltmain.m4sh (func_mode_link), tests/Makefile.am,
Fix error message with `-objectlist' file that does not exist.
tests/objectlist.test: New test for this.
Ralf Wildenhues [Tue, 9 Nov 2004 19:21:27 +0000 (19:21 +0000)]
* doc/libtool.texi (Compile mode, Link mode,
Libltdl interface, Test descriptions, libtool script
contents): Some quote cleanup, more use of texinfo types.
Peter Ekberg [Mon, 8 Nov 2004 15:19:45 +0000 (15:19 +0000)]
* config/ltmain.m4sh (func_mode_link): forward thread
related flags to dependent applications and libraries
by adding them to `inherited_linker_flags'.
Peter Ekberg [Mon, 1 Nov 2004 17:28:30 +0000 (17:28 +0000)]
Sometimes, a wrapper script is generated for an executable that,
itself, does not link against an uninstalled library. It appears
that this can happen if you are building a project where:
(1) there is a library
(2) there is an executable that does not, itself, link against
that library
In this case, notinst_deplibs is empty, and when the wrapper
script is loaded by libtool during ./libtool mode=install, there
is a check for "is notinst_deplibs empty". In this case, it is,
so libtool reports an error.
I don't think it is wrong to have a wrapper script for an exe that
*technically* doesn't need it. But instead of checking for
notinst_deplib nonempty as a proxy for "did wrapper script get
sourced into my environment properly" a different var should be
used.
* config/ltmain.m4sh (func_mode_install): set new variable
`generated_by_libtool_version' in wrapper script when using
libtool_install_magic. When verifying that wrapper script was
properly sourced, check that `generated_by_libtool_version' is
non-empty, instead of using notinst_deplibs.
Charles Wilson [Mon, 1 Nov 2004 16:29:15 +0000 (16:29 +0000)]
* config/ltmain.m4sh (func_mode_install): On Windows based hosts,
ensure that import libraries don't get stripped.
* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): On Windows based hosts,
use postinstall_cmds to strip DLL (not import lib!) when symbol
stripped installation was requested.