Gary V. Vaughan [Wed, 2 Mar 2005 10:33:56 +0000 (10:33 +0000)]
* libtoolize.m4sh (func_copy_cb): Use tar chof to avoid symlink
attacks.
* libltdl/Makefile.am, libltdl/loaders/Makefile.am
(install-data-local): Ditto.
Gary V. Vaughan [Sun, 27 Feb 2005 19:35:55 +0000 (19:35 +0000)]
In branch-2-0 (and in time, others) ltversion.m4 has a dot
delimited serial number that didn't used to be processed
correctly by libtoolize. This changeset fixes that, and
leverages those changes to check versions of ltmain.sh and
config.sub, config.guess before overwriting when --force is
not given:
* libtoolize.m4sh: Don't overwrite pkgaux files with --force
unless --install is given too.
(func_serial): Fix underquoting in regexp.
(func_serial_max): New function to compare serial numbers.
(func_serial_update_check): New function factored out of
func_serial_update().
(func_serial_update): Bail if SRCFILE is missing.
Don't display both 'already up to date' and 'use --force to
update' messages for the same file.
Use func_serial_max to cope with `.' delimited serial numbers.
(func_ltmain_update): Use func_serial_update_check and
func_serial_max to do version checking with $package_revision.
(func_config_update): Ditto with $timestamp.
Gary V. Vaughan [Sat, 26 Feb 2005 23:53:17 +0000 (23:53 +0000)]
* libltdl/Makefile.am (install-data-local): cd to $(srcdir) before
tarring up the files for installation to $(DESTDIR)$(ltdldatadir).
Don't remove the destination directory, since that interacts badly
with the multi-Makefile installation.
* libltdl/loaders/Makefile.am (install-data-local): Ditto.
Gary V. Vaughan [Sat, 26 Feb 2005 22:51:28 +0000 (22:51 +0000)]
I assume that it is okay to have undefined symbols in convenience
libraries that will be used as modules -- the pic objects are
built normally, and are not expected to resolve all their symbols
until they are linked into a library; convenience libraries are
then rolled using 'ar' and 'ranlib' (or equivalent) which also do
not check whether symbols are resolved. We now build each of the
loaders as a convenience library module under these assumptions,
and link libltdl.la with selected modules, at which time all of
the symbols *are* resolved:
* TODO: Remove item addressed by this changeset.
* libltdl/Makefile.am (lib_LTLIBRARIES): Remove libdlloader.la.
(libdlloader_la_SOURCES): Declaration removed. Changed all
clients. Source files..
(libltdl_la_SOURCES): ...added back in here.
(libdlloader_LDFLAGS, libdlloader_la_LIBADD): Removed.
(libltdl_la_LIBADD): Remove libdlloader.la; add $(LTLIBOBJS).
* libltdl/loaders/Makefile.am: Removed all references to
libdlloader.la.
Peter O'Gorman [Fri, 25 Feb 2005 14:14:19 +0000 (14:14 +0000)]
* m4/libtool.m4 (_LT_LINKER_SHLIBS): The Portland group's
compiler does not pass --whole-archive. Move gnu ld check for
the flag to the top so it can be overridden.
(_LT_LANG_CXX_CONFIG, _LT_COMPILER_PIC): Unset
whole_archive_flag_spec for the portland group's c++ compiler too.
Reported by Jeff Squyres <jsquyres@lam-mpi.org>
Gary V. Vaughan [Wed, 23 Feb 2005 15:13:30 +0000 (15:13 +0000)]
Preserving the installed timestamps for libltdl sources from
`libtoolize --ltdl --copy' is pointless if they are not preserved
from the libtool source tree at install time:
* libltdl/Makefile.am, libltdl/loaders/Makefile.am
(nobase_ltdldata_DATA): Renamed to...
(ltdldatafiles): ...this.
(install-data-local): New rule to install libltdl tree with tar to
preserve timestamps.
Gary V. Vaughan [Tue, 22 Feb 2005 17:41:46 +0000 (17:41 +0000)]
Using `libtoolize --copy --ltdl' was not preserving timestamps, so
parts of the autoconf bootstrap would be rerun spuriously after
the files had been copied into the source tree:
* libtoolize.m4sh (TAR): New default tar command.
(func_copy_cb): Move the core copying internals to here, using
$TAR to transfer files if possible when --copy was specified.
(func_copy): Adjust to call func_copy_cb.
Reported by Jeff Squyres <jsquyres@lam-mpi.org>
Reid Spencer [Thu, 3 Feb 2005 18:55:43 +0000 (18:55 +0000)]
* config/ltmain.m4sh (func_generate_dlsyms): Fix broken subdir
path computation, exposed by using `-dlopen self'. Fix broken
sed script exposed by additionally using `-export-symbols FILE'.
Peter O'Gorman [Thu, 3 Feb 2005 03:59:45 +0000 (03:59 +0000)]
* config/ltmain.m4sh [darwin]: Don't add installed libs to
temp_rpath when building executables on darwin, or other systems
which use hardcode_automatic. It may break our wrapper scripts.
Ralf Wildenhues [Mon, 31 Jan 2005 17:31:30 +0000 (17:31 +0000)]
* m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Unicos 9 sed rejects
empty parentheses as in 's/x()/1/'.
(_LT_COMPILER_PIC) [unicos*]: wl=-Wl,.
* tests/sh.test: Not all sed's like '/.*n.*/' (Unicos 9 sed
loops endlessly).
Ralf Wildenhues [Mon, 24 Jan 2005 07:46:17 +0000 (07:46 +0000)]
* tests/defs.m4sh: Extract $build from $LIBTOOL.
(func_configure): Pass --host if $host != $build.
(func_exec): Try executing cross-compiled binaries (e.g. i686 -> i386),
but SKIP rather than FAIL.
* tests/depdemo-relink.test: Do not try to access possibly non-
existent files. SKIP rather than FAIL or PASS falsely when
cross-compiling.
Ralf Wildenhues [Mon, 24 Jan 2005 07:43:07 +0000 (07:43 +0000)]
* m4/libtool.m4 (_LT_SETUP) [mingw, cygwin, pw32, os2]:
Add _LT_DECLs for host_os, build_alias, build and build_os.
host_os and build were used in a few occasions in ltmain.m4sh
and affect above-mentioned systems, the others are added for
symmetry and in order to be able to detect cross-compiling.
Peter O'Gorman [Sun, 16 Jan 2005 14:07:06 +0000 (14:07 +0000)]
* config/ltmain.m4sh (func_mode_link): Don't pass through
compiler-like thread flags when using $LD to do the linking.
Use compiler_flags instead.
Reported by Mark_Andrews@isc.org.
Peter O'Gorman [Sun, 16 Jan 2005 12:27:15 +0000 (12:27 +0000)]
* m4/libtool.m4 (LT_CMD_MAX_LEN) [osf]: On Tru64 there could
be a kernel panic when testing the maximum command line length
if exec_disable_arg_limit=1. Don't do the tests to figure it
out on *-osf*.
Reported by Dr. Hans Ekkehard Plesser
<hans.ekkehard.plesser@umb.no>
Ralf Wildenhues [Thu, 13 Jan 2005 17:24:09 +0000 (17:24 +0000)]
* libtoolize.m4sh: Back out copying `install-sh' by libtoolize.
* doc/libtool.texi (Distributing): Mention that we distribute
`install-sh', but that non-Automake users will have to copy
it by themselves.
Ralf Wildenhues [Wed, 12 Jan 2005 16:36:33 +0000 (16:36 +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 [Tue, 11 Jan 2005 15:52:18 +0000 (15:52 +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.
Reported by: Albert Chin-A-Young <china@thewrittenword.com>
Ralf Wildenhues [Mon, 10 Jan 2005 11:00:05 +0000 (11:00 +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:58:57 +0000 (13:58 +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 [Sun, 9 Jan 2005 13:48:56 +0000 (13:48 +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.'.
Peter O'Gorman [Sun, 9 Jan 2005 02:29:47 +0000 (02:29 +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.
Ralf Wildenhues [Thu, 30 Dec 2004 12:03:05 +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 13:50:58 +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:30:45 +0000 (13:30 +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:18 +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:10 +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>.
Ralf Wildenhues [Mon, 20 Dec 2004 13:09:07 +0000 (13:09 +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:36 +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:47 +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 19:28:40 +0000 (19:28 +0000)]
* libltdl/Makefile.am (libdlloader_la_SOURCES): Remove lt__strl.c
from default build files.
* m4/ltdl.m4 (LTDL_INIT): Arrange to build lt__strl.c only when
needed.
* 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.
Bob Friesenhahn [Mon, 13 Dec 2004 15:16:32 +0000 (15:16 +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 (libdlloader_la_SOURCES): Build source files
libltdl/lt__strl.c and libltdl/libltdl/lt__strl.h.
* m4/ltdl.m4 (LTDL_INIT): Add checks for strlcat and strlcpy.
* 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 [Mon, 29 Nov 2004 21:11:26 +0000 (21:11 +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 20:58:55 +0000 (20:58 +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.
Ralf Wildenhues [Sun, 28 Nov 2004 19:54:25 +0000 (19:54 +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 00:41:35 +0000 (00:41 +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:39:00 +0000 (14:39 +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:01:31 +0000 (16:01 +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:47:19 +0000 (12:47 +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.