Bob Friesenhahn [Sat, 14 Nov 2009 19:52:24 +0000 (13:52 -0600)]
Don't load module.la from current directory by default.
* libltdl/ltdl.c (try_dlopen): Do not attempt to load an
unqualified module.la file from the current directory (by
default) since doing so is insecure and is not compliant with
the documentation.
* tests/testsuite.at: Qualify access to module.la file in
current directory so that test passes.
Ralf Wildenhues [Tue, 5 May 2009 05:39:16 +0000 (07:39 +0200)]
libtoolize: ignore trailing junk on scriptversion line.
* libtoolize.m4sh (func_install_update): Ignore semi-colon or
comment-sign and all following characters when parsing a
`scriptversion' line in one of the auxiliary scripts; recent
Automake-provided script have a stylized comment to induce
Emacs to use UTC.
Exposed by the `libtoolize config files serial update' test.
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.
Gary V. Vaughan [Wed, 23 Apr 2008 03:18:56 +0000 (23:18 -0400)]
Libtoolize now advises AC_CONFIG_MACRO_DIR use where appropriate.
* libtoolize.at (func_check_macros): Always advise use of
AC_CONFIG_MACRO_DIR when not able to copy libtool macros into
the project tree.
* tests/libtoolize.at: New test for correct diagnosis of mismatch
between AC_CONFIG_MACRO_DIR and ACLOCAL_AMFLAGS.
Update expected output of other tests.
* NEWS: Updated.
Gary V. Vaughan [Tue, 22 Apr 2008 22:55:20 +0000 (18:55 -0400)]
Only complain that files are up-to-date with --force.
As a side effect, this also means that when `aclocal' copies the
libtool macros into `aclocal.m4' libtoolize complains only about
the macro files that are missing or not up-to-date.
* libtoolize.m4sh (func_echo_once): New function that prints
the contents of a named variable only on the first call.
(func_aclocal_update_check): New function that compares serial
numbers of libtool macros in aclocal.m4 and only diagnoses the
missing files.
(func_copy, func_copy_cb, func_copy_some_files, func_serial_update)
(func_keyword_update, func_ltmain_update, func_config_update)
(func_install_update): Accept a new argument naming a variable
containing a header string to print with func_echo_once iff any
body text is output by this function.
(func_install_pkgmacro_subproject, func_install_pkgmacro_parent)
(func_install_pkgltdl_files, func_install_pkgconfig_subproject)
(func_install_pkgconfig_parent: Set and pass a suitable
header string variable for the above functions.
(func_serial_update_check): Don't advise rerunning `libtoolize
--force' when aclocal.m4 is not m4_including libtoolize installed
macro files.
* tests/testsuite.at (_LIBTOOLIZE_TRANSFORM): Transform generic
/usr/local/share/aclocal paths to point into the uninstalled
libtool macro directory.
* tests/libtoolize.at: Update tests that were checking for old
behaviour of outputing `file is already up to date' even when
--force was not passed.
* tests/libtoolize.at: New tests to prevent regressions of these
smarter messages.
* NEWS: Updated.
Reported by Olly Betts <olly@survex.com>
Fix regression over 1.5.26 with ccache $CC -all-static.
* libltdl/config/ltmain.m4sh (func_mode_link): Add
$link_static_flag to compile_command and link_command only
later, instead of right after a possible compiler wrapper.
* tests/static.at (ccache -all-static): New test.
* THANKS: Update.
Report by Richard Purdie.
Gary V. Vaughan [Tue, 22 Apr 2008 01:59:09 +0000 (21:59 -0400)]
Capture lt~obsolete.m4 serial number correctly in libtoolize.
* libltdl/m4/lt~obsolete.m4: Add the filename to the #serial
marker so that libtoolize's serial number checks can find it
in a non-include using aclocal.m4.
* NEWS: Updated.
Reported by Olly Betts <olly@survex.com>
Peter O'Gorman [Mon, 21 Apr 2008 20:18:41 +0000 (15:18 -0500)]
basename does not take a list of strings.
* libltdl/config/ltmain.m4sh(func_extract_archives): Use sed
$basename.
* tests/darwin.at: New. Check that we can built fat program,
shared library and convenience library.
* Makefile.am: Add test.
Reported by LiKai Liu <liulk@cs.bu.edu>
Gary V. Vaughan [Sun, 20 Apr 2008 21:35:46 +0000 (17:35 -0400)]
Fix misleading lt_dlopenadvise documentation.
* doc/libtool.texi (lt_dlopenadvise): The last parameter is of
type lt_dladvise, not lt_dladvise*.
(my_dlopenext): Correct the example too.
* NEWS: Updated.
Reported by Gary Kumfert <kumfert@llnl.gov>
* tests/testsuite.at [ aix ]: Set file mode creation so that
'others' have no permissions. Shared libraries are kept in
memory on AIX after use if they are world-readable, which means
on NFS mounts cleanup of test group directories will fail later.
* THANKS: Update.
Report and analysis by Michael Haubenwallner.
* libltdl/config/ltmain.m4sh (func_mode_link) <Transforming
deplibs into only shared deplibs>: Fix expr portability issues,
noted on FreeBSD. While at it, simplify and avoid forking.
Report by Bob Friesenhahn.
* libltdl/m4/libtool.m4 (_LT_CHECK_SHELL_FEATURES): Also check
for arithmetic expansion, and ${#var}.
(_LT_PROG_XSI_SHELLFNS): Define func_arith and func_len
accordingly, falling back on 'expr'. Note that the argument to
func_len may not start with a hyphen. In the pre-Posix
fallback, take care not to rely on the exit status of the
variable assignment (not portable), but set the length to
$max_cmd_len instead.
* libltdl/config/ltmain.m4sh (func_mode_link): Use func_arith
and func_len throughout for integer arithmetic, fixing
quadratical amount of counting for reloadable object and
piecewise archive linking. Change all comparisons with
max_cmd_len to test for smaller, non-equal length.
* THANKS: Update.
Suggested by Roland Mainz.
* libltdl/config/ltmain.m4sh (func_mode_compile): Avoid
redundant removal of old output files before compilation.
Do not remove $obj until we have successfully grabbed the
lockfile (in case the compiler doesn't grok `-c -o'), because
it might be identical to $output_obj.
At the end of the function, before we remove the lockfile,
update $removelist so that if the trap hits after the lockfile
has been removed, we do not accidentally remove $output_obj that
does not belong to us.
(func_write_libtool_object): Use $MV instead of mv.
Peter O'Gorman [Tue, 15 Apr 2008 20:33:06 +0000 (15:33 -0500)]
Allow bootstrap from git repository.
* Makefile.am: Pass srcdir as an argument to mkstamp and expect only 2 fields in mkstamps output.
* clcommit.m4sh: Ditto.
* configure.ac: Ditto.
* libltdl/config/mkstamp: return a revision and date based on the number of lines which look like dates in all the ChangeLog* files in the directory we got as arg 1.
* libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): Move non-XSI
definition of func_dirname_and_basename ...
* libltdl/config/general.m4sh (func_dirname_and_basename):
... here, to use it for the other scripts that use general.m4sh
(and as portable fallback for libtool). Add marker for early
insertion of generated shell functions (into libtool, not the
other scripts) here.
Use func_dirname_and_basename to compute progname, progpath.
* libltdl/config/ltmain.m4sh (func_mode_help): Remove marker
for insertion of generated shell functions.
* tests/sh.test: Adjust function definition test to not match
function call.
* libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS) <func_xform>:
New function.
* libltdl/config/ltmain.m4sh (func_mode_compile): Use it to
avoid two forks with XSI shells.
* tests/suffix.test: Also test a file with multiple dots.
Peter O'Gorman [Thu, 10 Apr 2008 17:43:39 +0000 (17:43 +0000)]
* libltdl/config/ltmain.m4sh (func_win32_libid,
func_generate_dlsyms, func_extract_an_archive,
func_extract_archives, func_mode_help): move these so they
appear after func_mode_compile.
* tests/nomode.test: Check that --mode=link --help works.
Reported by Josh Triplett <josh@freedesktop.org>
Gary V. Vaughan [Mon, 7 Apr 2008 14:20:16 +0000 (14:20 +0000)]
* configure.ac, libltdl/configure.ac (AM_INIT_AUTOMAKE): Use
gnu rather than gnits standards so that version number 2.2.3a
is not rejected!
Repoted by Olly Betts <olly@survex.com>
Gary V. Vaughan [Tue, 1 Apr 2008 23:32:02 +0000 (23:32 +0000)]
GNU Libtool 2.2.2 was released.
* configure.ac, libltdl/configure.ac (AC_INIT): Bump version
number to 2.2.2.
* libltdl/Makefile.in (LTDL_VERSION_INFO): C:R+1:A because the
interfaces are unchanged, even though we improved the code some
more.
* NEWS: Updated.
Peter O'Gorman [Thu, 27 Mar 2008 17:53:46 +0000 (17:53 +0000)]
* libltdl/m4/libtool.m4 [_LT_REQUIRED_DARWIN_CHECKS]: Fix the
test for -single_module and log it to config.log.
Reported by Torok Edwin and Nigel Home.
Ralf Wildenhues [Mon, 24 Mar 2008 14:28:43 +0000 (14:28 +0000)]
Document that disable-static plus -all-static is not portable.
* doc/libtool.texi (Link mode): -all-static does not go well
with disable-static on most systems.
* tests/static.at (static linking flags for programs) [!aix]:
With --disable-static but nonempty link_static_flag, skip the
m-all-static link. Do not skip it on AIX, as there the
enable_static is self-inflicted, and thus expected to work.
* THANKS: Update.
Report by Nix.
Ralf Wildenhues [Mon, 17 Mar 2008 22:39:05 +0000 (22:39 +0000)]
* libltdl/m4/libtool.m4 (_LT_CHECK_BUILDDIR): No need to escape
backticks in argument to AC_MSG_WARN or AC_MSG_ERROR.
* libltdl/m4/ltdl.m4 (_LTDL_INSTALLABLE, LTDL_INIT): Likewise.
Ralf Wildenhues [Sat, 15 Mar 2008 22:06:56 +0000 (22:06 +0000)]
* tests/defs.m4sh (func_get_config): Build egrep regex to speed
up extracting several variables at once. Use it to extract all
default variables at once. Also extract build_alias and
host_alias from the libtool script.
(func_configure_nofail): Use build_alias and host_alias for
--build and --host, respectively. Pass each if nonempty.
* tests/testsuite.at: Pass --build if build_alias is nonemtpy.
* tests/quote.test: Extract ECHO and wl at once.