Ralf Wildenhues [Sun, 23 Nov 2008 13:38:24 +0000 (14:38 +0100)]
Revenge of the $ECHO. Kill most uses of Xsed.
* libltdl/config/general.m4sh: Replace all uses of `$ECHO "X..."
| $Xsed' with `$ECHO "..." | $SED', and employ further trivial
simplifications. Replace $ECHO with echo where appropriate.
(func_echo_all): New function.
* libltdl/config/getopt.m4sh: Likewise simplifications.
* libltdl/config/ltmain.m4sh: Likewise.
* libltdl/m4/libtool.m4: Likewise.
(LT_CMD_MAX_LEN): Use func_fallback_echo, to ensure that the
command line is passed through an exec* function.
* libtoolize.m4sh: Likewise simplifications. Use func_echo_all
to implement --dry-run.
* tests/defs.m4sh: Likewise simplifications.
* tests/quote.test: Likewise simplifications.
Ralf Wildenhues [Sun, 23 Nov 2008 08:13:13 +0000 (09:13 +0100)]
Fix matching of Sun Fortran compiler on Linux.
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [ linux ]: Also
match `Sun Ceres Fortran' compiler; reorder with C compiler
matching.
* THANKS: Update.
Report by Ethan Mallove.
Charles Wilson [Sat, 15 Nov 2008 09:40:26 +0000 (04:40 -0500)]
Fix --verbose option; add new --no-{silent|quiet|verbose} options.
* libltdl/config/ltmain.m4sh (usage): Document
new options --no-silent/--no-quiet and --no-verbose.
(func_enable_tag): Handle new options.
Modified --verbose to actually activate opt_verbose.
New behavior: --silent disables both "normal" output and
func_verbose output. --verbose enables both "normal"
output and func_verbose output. --no-silent enables
"normal" output, but does not affect func_verbose output.
--no-verbose disables func_verbose output, but does not
affect "normal" output.
* NEWS: announce new options --no-silent/--no-quiet, and
--no-verbose.
* doc/libtool.texi: document new options --no-silent/--no-quiet
and --no-verbose.
Ralf Wildenhues [Thu, 20 Nov 2008 06:18:38 +0000 (07:18 +0100)]
Ensure $ac_aux_dir is initialized for LIBTOOL_DEPS.
* libltdl/m4/libtool.m4 (LT_INIT): Require
AC_CONFIG_AUX_DIR_DEFAULT.
* tests/old-m4-iface.at (AM_PROG_LIBTOOL): Amend test to
expose this.
Report, analysis, and test example by Jakub Bogusz.
Ralf Wildenhues [Thu, 20 Nov 2008 06:13:36 +0000 (07:13 +0100)]
Check for bogus aclocal.m4 contents in bootstrap and dist-hook.
* Makefile.am (dist-hook): Bail out if shipped aclocal.m4 files
contain LT_INIT, AC_PROG_LIBTOOL, or AM_PROG_LIBTOOL macro
definitions. These can only come from bogus pull-ins from older
installed Libtool macro files.
* bootstrap: Likewise.
Report by Akim Demaille.
Ralf Wildenhues [Sun, 16 Nov 2008 22:31:56 +0000 (23:31 +0100)]
Skip sys_lib_search_path on systems without libz.
* tests/search-path.at (sys_lib_search_path): Autotest needs at
least one AT_CHECK executed in a test group. So if we haven't
found -lz anywhere, as may happen with cross-compilers, skip the
test.
* THANKS: Update.
Report by Alon Bar-Lev.
Ralf Wildenhues [Wed, 12 Nov 2008 20:13:17 +0000 (21:13 +0100)]
Fix archive_cmds for older cc on HP-UX 11.
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [hp-ux11*, !GCC]
[!hppa*64*, !ia64*] <archive_cmds>: Older releases of the HP-UX
11.00 C compiler do not support -b yet; use a link test to
decide whether $LD should be used for library creation.
* THANKS: Update.
Report by Daniel Richard G.
Paolo Bonzini [Fri, 7 Nov 2008 08:03:35 +0000 (09:03 +0100)]
Implement $ECHO with print -r, printf or cat in a shell function.
* configure.ac: Bump Autoconf requirement.
* libltdl/config/general.m4sh: Use $as_echo as default $ECHO.
* tests/testsuite.at: Use $as_echo as default $ECHO.
* libltdl/m4/libtool.m4 (LT_INIT): Add _LT_SHELL_INIT to
work around Autoconf <2.64 bug.
(_LT_OUTPUT_LIBTOOL_COMMANDS_INIT): Add func_fallback_echo.
Eliminate lt_ECHO requoting.
(_LT_SHELL_INIT): Use a public M4sh diversion.
(_LT_PROG_ECHO_BACKSLASH): Rewrite.
(LT_CMD_MAX_LEN): Do not use --fallback-echo.
* libltdl/config/ltmain.m4sh: Remove --no-reexec and --fallback-echo
handling.
(func_fallback_echo): New.
(func_emit_wrapper_part1): Quote ECHO. Remove --no-reexec and
--fallback-echo handling.
(Execute mode): Do not set qecho.
Paolo Bonzini [Mon, 10 Nov 2008 07:25:24 +0000 (08:25 +0100)]
Use documented M4sh interfaces.
* clcommit.m4sh: Do not unset CDPATH, use AS_INIT and M4sh diversions.
* libltdl/config/mailnotify.m4sh: Likewise.
* libtoolize.m4sh: Likewise.
* tests/defs.m4sh: Likewise.
* tests/testsuite.at: Move AT_INIT invocation at the top.
* libltdl/m4/libtool.m4 (_LT_GENERATED_FILE_INIT): New.
(LT_OUTPUT): Use it.
* libltdl/config/general.m4sh (M4SH_IN_HEADER): New.
(progpath): Move setting before $0 could be clobbered.
* libltdl/config/ltmain.m4sh (M4SH_IN_HEADER): New.
Bruno Haible [Tue, 11 Nov 2008 05:51:24 +0000 (06:51 +0100)]
Fix cwrapper argument mangling on w32.
* libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src): On
mingw, preprocess the argument vector through prepare_spawn.
* tests/execute-mode.at (execute mode): Output args
newline-separated. Extend tests by more argument pairs that
contain special characters, where the w32 cwrapper fails.
Also test a real compiled program, linked against an uninstalled
library, to expose cwrapper issues.
* NEWS: Update.
Ralf Wildenhues [Sun, 5 Oct 2008 10:35:27 +0000 (12:35 +0200)]
Atomic shared library install permissions on HP-UX.
The HP-UX 11 runtime linker fails to mmap shared libraries
without execute permissions. Fixing them with postinstall_cmds
may be too late, as ln, sed, and chmod may link against the
library being installed.
* libltdl/m4/libtool.m4 (install_override_mode): New LT_DECL.
(_LT_SYS_DYNAMIC_LINKER) [hpux9*, hpux10*, hpux11*]: Set it.
* libltdl/config/ltmain.m4sh (func_mode_install): Build a second
command line, $install_shared_prog, for the installation of the
shared library. Override resp. set the permission mode if
install_override_mode is nonempty.
* doc/libtool.texi (libtool script contents): Document it.
* tests/install.at (Install tests): New test.
* Makefile.am (TESTSUITE_AT): Adjust.
(TESTS_ENVIRONMENT): Pass INSTALL.
Report by Bruno Haible.
* Makefile.am (dist_man1_MANS, update_mans): New macros.
($(srcdir)/doc/libtool.1, $(srcdir)/doc/libtoolize.1): New
rules. Use --help-all for libtool.
(MAINTAINERCLEANFILES): New macro. Add dist_man1_MANS.
(BUILT_SOURCES): Add libtoolize.
* configure.ac: Check for help2man, set HELP2MAN.
* doc/libtool.texi: Add @direntry for libtool-invocation.
(Invoking libtool): Document -h, --help-all. Reorder mode
description for consistency.
(Compile mode): Do not document -Wl,FLAG and -XCClinker here.
(Link mode): Document -Wc,FLAG here, reformat a bit.
* libtoolize.m4sh: Reformat --help output a bit, to help
help2man.
* libltdl/config/ltmain.m4sh: Likewise. Also, set PROGRAM to
`libtool', not `ltmain.sh', so the former is used in the man
page.
New argument `--help-all'. If given, call func_help and
func_mode_help several times, beating output in shape with sed.
(func_mode_help): Do not exit here.
* libltdl/config/getopt.m4sh (func_usage): Work with different
indentations, but require comment hash in first column, when
grepping for '-h' in usage to end short help.
(func_help): Accept optional argument to not exit.
* NEWS, THANKS: Update.
Suggestion by Karl Berry.
Gary V. Vaughan [Mon, 8 Sep 2008 06:36:26 +0000 (14:36 +0800)]
Use `-version-info 9:0:2' for one added iface since 2.2.4.
* libltdl/Makefile.inc (LTDL_VERSION_INFO): Make the libltdl
version number match 2.2.6a rerelease.
Gary V. Vaughan [Mon, 8 Sep 2008 06:24:06 +0000 (14:24 +0800)]
Add ./commit option for pushing tags back to origin.
* clcommit.m4sh (opt_tags): New --tags push option.
(func_commit): Run `$GIT push --tags' if --tags was passed.
* HACKING (Release Procedure): Note the requirement to pass
--tags to ./commit for new release tag to be push back to
origin.
Gary V. Vaughan [Sun, 7 Sep 2008 11:59:28 +0000 (19:59 +0800)]
Retire gnu.org news.html in favour of savannah news.
* HACKING (Release Procedure): Add instructions for sending
a web release announcement to http://planet.gnu.org via
the savannah news manager.
Gary V. Vaughan [Sun, 7 Sep 2008 11:53:16 +0000 (19:53 +0800)]
Add untested git push conflict testing to commit script.
* clcommit.m4sh (func_check_conflicts): Test return status
of 'git push --dry-run', and display an error on non-zero.
Gary V. Vaughan [Sun, 7 Sep 2008 08:17:37 +0000 (16:17 +0800)]
Enable release procedure to work with lzma OLDRELEASE file.
* Makefile.maint (diffs, prev-tarball, new-tarball): If lzma
tarballs are present use them to generate the diffs, otherwise
use gz tarballs if they are present, or else complain if both
are missing.
Gary V. Vaughan [Sat, 6 Sep 2008 21:12:18 +0000 (05:12 +0800)]
Prepare for next stable release.
* libltdl/Makefile.inc (LTDL_VERSION_INFO): Update.
* libltdl/m4/libtool.m4: Bump serial number to account for
changes since 2.2.4 release.
* INSTALL, config/config.guess, config/texinfo.tex: Updated
from canonical source.
* configure.ac (AM_INIT_AUTOMAKE): Specify dist-lzma, which
was introduced after automake-1.10 was released.
(abs_top_srcdir, abs_top_builddir): No need to substitute these
from configure anymore, since we require automake 1.10.1, which
does perform the substitutions properly.
(TIMESTAMP): Normal releases were displaying the long-form
timestamp. Fix to show the short release timestamp as per
alpha release numbers.
* NEWS: Update with missing entries from ChangeLog.
* HACKING (Release Procedure): We release lzma tarballs now
but no xdeltas.
* Makefile.maint: Updated to match Release Procedure
instructions in HACKING.
Gary V. Vaughan [Sat, 6 Sep 2008 14:50:15 +0000 (22:50 +0800)]
Fix 'DISTCHECK_CONFIGURE_FLAGS=--program-prefix=g' bug.
* tests/testsuite.at (_LIBTOOLIZE_TRANSFORM): Fix test failures
with --program-prefix, where the test case output contains the
transformed name somewhere other than the beginning of a line.
* libtoolize.m4sh (func_check_macros): Be sure to always use
the transformed name in output messages.
* libltdl/config/ltmain.m4sh (func_mode_link): When removing
potential output files before linking, do not remove *.gcno
profile information GCC outputs next to object files in `.libs'.
Report by Vincent Torri.
libltdl/m4/ltdl.m4: Remove LTDL_DLOPEN_SELF_WORKS define.
libltdl/loaders/dlopen.c: Remove LTDL_DLOPEN_SELF_WORKS check.
libltdl/m4/libtool.m4 [aix]: Set export_dynamic_flag_spec to -Wl,-bexpall. This is a temporary workaround until a real fix is implemented.
Peter O'Gorman [Tue, 26 Aug 2008 17:41:25 +0000 (12:41 -0500)]
Remove unnecessary global argz functions.
* libltdl/argz.c (argz_add,argz_count): Remove.
* libltdl/argz_.h (argz_add,argz_count): Remove.
* NEWS: Announce it.
* tests/ltdl-api.at: Test so we don't repeat it.
* Makefile.am: Add new test.
Ralf Wildenhues [Thu, 21 Aug 2008 19:07:16 +0000 (21:07 +0200)]
Disallow `-L path', do not misparse it silently.
* libltdl/config/ltmain.m4sh (func_mode_link): Diagnose `-L'
without argument, and `-L path', i.e., with a space.
* tests/fail.at (Failure tests): Test for these failures.
* THANKS: Update.
Report by Olaf Lenz.
Ralf Wildenhues [Sat, 16 Aug 2008 15:28:30 +0000 (17:28 +0200)]
Avoid test failure due to broken dlpreloading of shared library.
* tests/lt_dladvise.at (lt_dlopenadvise library loading): Drop
some newlines in AT_CHECK commands, for better 'testsuite -x'
output. Only create a static installable libpreload.la, to
avoid exposing the bug libtool currently has with preloading of
shared libraries. Add a note to revisit this later.
Ralf Wildenhues [Mon, 11 Aug 2008 20:36:42 +0000 (22:36 +0200)]
Remove use of exit in configure test sources.
* libltdl/m4/libtool.m4 (_LT_TRY_DLOPEN_SELF): Return from main,
to avoid using undeclared exit.
Report against OpenMPI from Coverity via Jeff Squyres.
Gary V. Vaughan [Fri, 1 Aug 2008 06:12:29 +0000 (13:12 +0700)]
Implement lt_dlopening of only preloaded modules.
* libltdl/m4/ltdl.m4 (LTDL_INIT): Check for a libltdl that
provides lt_dladvise_preopen when deciding if installed libltdl
is 'new enough'.
* libltdl/libltdl/lt__private.h (lt__advise): Add a new
is_preload flag.
* libltdl/ltdl.c (lt_dladvise_preload): New api call to set it.
(try_dlopen): If it is set, and the search of preloaded modules
didn't return a match, don't bother searching the filesystem.
* libltdl/ltdl.h (lt_dladvise_preload): Declare it.
* doc/libtool.texi (Libltdl Interface): Document it.
* tests/lt_dladvise.at: Test it (and incidentally add some test
coverage for `libtool -dlpreopen').
* NEWS: Announce it.
Ralf Wildenhues [Thu, 19 Jun 2008 17:35:52 +0000 (19:35 +0200)]
Newer Intel compilers do not grok -KPIC any more.
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux] <icc, icpc>:
Use -fPIC, newer Intel compilers (icc 10, ifort 9) reject -KPIC.
* tests/localization.at: Skip test if the compiler fails merely
due to the locale setting.
* THANKS: Update.
Report by Vincent Lefevre.
Charles Wilson [Sat, 31 May 2008 17:11:58 +0000 (13:11 -0400)]
[mingw] fix cross-compile-with-wine case
* libltdl/config/ltmain.m4sh (func_to_host_path)
[host=mingw, build!=mingw|cygwin]: check that winepath
stdout is non-empty and exit code is 0, instead of checking
stderr.
Reported by: Roumen Petrov
Stas Maximov [Sun, 1 Jun 2008 07:36:19 +0000 (09:36 +0200)]
Check only regular files, not devices, for lalibs.
* libltdl/config/ltmain.m4sh (functions func_lalib_p)
(func_lalib_unsafe_p): Only read regular files and not device
files. Avoids blocking libtool executing gdb, when a
pseudo-terminal device /dev/pts/NN is given as one of the
arguments to gdb, as in:
libtool --mode=execute gdb -q -nw -i mi -tty /dev/pts/4 prog
Ralf Wildenhues [Mon, 26 May 2008 19:54:51 +0000 (21:54 +0200)]
libtoolize should not remove config.guess, config.sub.
* libtoolize.m4sh (all_pkgconfig_files): Do not list
config.guess nor config.sub. We don't install them without
--install, and the project may not be using Automake.
Report by Andreas Schwab.
Charles Wilson [Thu, 15 May 2008 04:07:50 +0000 (00:07 -0400)]
[mingw] Add cross-compile support to cwrapper
* libltdl/config/ltmain.m4sh (func_to_host_path) [$host=mingw]:
If present, use winepath to convert from $build to $host
if $build is neither mingw (msys) nor cygwin. Use unconverted
path as fallback when conversion fails. Also update comments.
(func_to_host_pathlist) [$host=mingw]: Ditto. For fallback case,
use simplistic ':' to ';' path separator translation.
Charles Wilson [Sun, 25 May 2008 04:13:04 +0000 (00:13 -0400)]
Cwrapper should not eat -- arguments
* libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src)
[file scope]: Defined all option strings in terms of macro
LTWRAPPER_OPTION_PREFIX. Similarly defined all option string
lengths in terms of macro LTWRAPPER_OPTION_PREFIX_LENGTH.
[main]: Modified option parsing algorithm to pass -- on to
target, and to not stop processing arguments when -- is seen.
Added check for unrecognized options in reserved namespace
defined by LTWRAPPER_OPTION_PREFIX.
Ralf Wildenhues [Sun, 25 May 2008 08:40:26 +0000 (10:40 +0200)]
Fix ifort settings again.
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux] <ifort>:
Unlike icc and ecc, not all ifort versions understand `-KPIC',
e.g. version 10.1, so use `-fPIC' instead.
Report by Jeff Squyres.
Eric Blake [Wed, 14 May 2008 21:04:41 +0000 (21:04 +0000)]
Speed up bootstrap by improving lt_combine.
* libltdl/m4/ltsugar.m4 (lt_combine): Mirror Autoconf 2.62
improvements. Includes a semantic change where the separator can
now be empty, and where an empty fourth argument is now treated as
a valid suffix.
* libltdl/m4/libtool.m4 (_lt_decl_varnames_tagged): Adjust to new
semantics of lt_combine.
(lt_decl_varnames_tagged): Fix quoting and optimize.
Eric Blake [Tue, 13 May 2008 22:47:32 +0000 (22:47 +0000)]
Kill _LT_LIBSOURCES; it wasn't checking anything useful.
* libltdl/m4/ltdl.m4 (_LT_LIBSOURCES): Delete.
(LTDL_INIT): Ignore arguments to AC_LIBSOURCES during _LTDL_SETUP,
on the assumption that libtoolize correctly installed them.
Charles Wilson [Sat, 26 Apr 2008 20:03:50 +0000 (16:03 -0400)]
[mingw|cygwin] Modify cwrapper to invoke target directly.
* libltdl/config/ltmain.m4sh (func_to_native_path):
New function. If $host is mingw, and $build is mingw
or cygwin, convert path to mingw native format.
(func_to_native_pathlist): New function. Ditto, for
:-separated pathlists.
(func_emit_cwrapperexe_src) [__CYGWIN__ && __STRICT_ANSI__]:
Ensure putenv and setenv are declared. Define HAVE_SETENV.
(func_emit_cwrapperexe_src) [main]: Add new constants to
hold desired PATH settings; initialize and use functions
above to convert to $host format if necessary. Add new
command-line options --lt-env-set, --lt-env-prepend, and
--lt-env-append. No longer emit wrapper script as integral
part of launching child. Remove support for (now) unnecessary
$TARGETSHELL. Exec actual target executable directly.
(func_emit_cwrapperexe_src) [lt_setenv, lt_extend_str]
[lt_split_name_value, lt_opt_process_env_set]
[lt_opt_process_env_prepend, lt_opt_process_env_append]
[lt_update_exe_path, lt_update_lib_path]: New functions.
Charles Wilson [Sat, 26 Apr 2008 01:08:04 +0000 (21:08 -0400)]
Ensure cwrapper compiles without warnings under -std=c99.
* libltdl/config/ltmain.m4sh (func_emit_wrapper_part1):
new function.
(func_emit_wrapper_part2): new function.
(func_emit_wrapper): delegate to new functions.
(func_emit_cwrapperexe_src) [__CYGWIN__ && __STRICT_ANSI__]:
ensure realpath is declared.
(func_emit_cwrapperexe_src): declare two different strings
to each hold part of the wrapper script content. Initialize
using new func_emit_wrapper_partX functions.
(func_emit_cwrapperexe_src) [main]: when emitting wrapper
script content, use both strings.
Reported by Yaakov Selkowitz.
Charles Wilson [Tue, 6 May 2008 00:23:05 +0000 (20:23 -0400)]
Ensure $OBJDUMP is defined
* libltdl/m4/libtool.m4 (_LT_DECL_OBJDUMP): new macro ensures
that $OBJDUMP is always defined sanely.
(_LT_SYS_DYNAMIC_LINKER): call it.
(_LT_CHECK_MAGIC_METHOD): call it.
Gary V. Vaughan [Mon, 5 May 2008 05:07:14 +0000 (01:07 -0400)]
Fix libtoolize test failure with aclocal < 1.10.1
* tests/libtoolize.at
(verbatim aclocal.m4 w/o AC_CONFIG_MACRO_DIR): Older aclocal
requires a space between -I and the directory argument.
Reported by Daniel Macks <dmacks@netspace.org>
Gary V. Vaughan [Sun, 4 May 2008 18:36:29 +0000 (14:36 -0400)]
GNU Libtool 2.2.4 was released.
* configure.ac, libltdl/configure.ac (AC_INIT): Bump version
number to 2.2.4.
* libltdl/Makefile.inc (LTDL_VERSION_INFO): C:R+1:A because the
interfaces are unchanged, even though we improved the code some
more.
* NEWS: Updated.
Gary V. Vaughan [Sun, 4 May 2008 16:37:02 +0000 (12:37 -0400)]
Macro file serial updates for next stable release.
* libltdl/m4/libtool.m4, libltdl/m4/ltdl.m4,
libltdl/m4/ltoptions.m4, libltdl/m4/lt~obsolete.m4: Bump serial
numbers to account for changes since 2.2.2 release.
Gary V. Vaughan [Sun, 4 May 2008 16:31:22 +0000 (12:31 -0400)]
Make libtoolize tests work with distcheck.
* tests/testsuite.at (_LIBTOOLIZE_TRANSFORM): When $tst_aclocal
is set, transform paths that use it to generic
/usr/local/share/aclocal in time for AT_CHECK comparisons.
Gary V. Vaughan [Fri, 2 May 2008 20:12:38 +0000 (16:12 -0400)]
Don't trip over outdated acinclude.m4.
* libtoolize.m4sh (all_pkgconfig_files, all_pkgmacro_files)
(all_pkgltdl_files): New variables listing all files ever
maintained by any release of libtoolize.
(func_install_pkgconfig_parent, func_install_pkgltdl_files)
(func_install_pkgconfig_subproject, func_install_pkgmacro_parent)
(func_install_pkgmacro_subproject): Carefully clean up any files
that may have been installed by previous libtoolize releases.
* tests/libtoolize.at: New test for libltdl/acinclude.m4 removal.
Reported by Andreas Schwab <schwab@suse.de>.
Gary V. Vaughan [Tue, 29 Apr 2008 19:11:54 +0000 (15:11 -0400)]
New libtoolize --no-warn option and LIBTOOLIZE_OPTIONS parsing.
* libltdl/config/general.m4sh (opt_warning): New option.
(func_warning): Only display a warning message if $opt_warning
is true.
* libtoolize.m4sh: Accept options in LIBTOOLIZE_OPTIONS
environment variable.
(--no-warn): Parse new option.
(func_serial_update_check, func_keyword_update): Use func_warning.
(func_check_macros): Bail out before style issues nags when
$opt_warning is false.
* doc/libtool.texi (Invoking Libtoolize): Document it.
* tests/libtoolize.at: Test it.
* NEWS: Updated.