]> git.ipfire.org Git - thirdparty/libtool.git/log
thirdparty/libtool.git
3 years agomaint: update copyrights across project.
Alex Ameen [Tue, 8 Feb 2022 18:11:10 +0000 (12:11 -0600)] 
maint: update copyrights across project.

3 years agolibtool: Do not pass '-pthread' to Solaris linker.
Stacey Marshall [Sat, 5 Feb 2022 21:36:36 +0000 (15:36 -0600)] 
libtool: Do not pass '-pthread' to Solaris linker.

* build-aux/ltmain.in: Do not add -pthread to inherited linker flags on
Solaris systems.

Copyright-paperwork-exempt: Yes

3 years agodocs: manually recording dependencies in Automake
Alex Ameen [Fri, 24 Dec 2021 18:55:03 +0000 (12:55 -0600)] 
docs: manually recording dependencies in Automake

* doc/libtool.texi (Using Automake): provide example of how to manually record
'BUILT_SOURCES' dependencies for libtool archives.

3 years agotests: remove deprecated old-ltdl-iface.at test.
Alex Ameen [Sun, 5 Dec 2021 22:16:30 +0000 (16:16 -0600)] 
tests: remove deprecated old-ltdl-iface.at test.

* tests/old-ltdl-iface.at: remove test as instructed by inline comments, which
indicate that this test should have been deleted in 2013.
This test fails because it relies on legacy usage of 'include Makefile.inc'
by libltdl which is no longer supported.

3 years ago* libtool: Bump M4 serial versions and add missing AC_PROG_SED to ltdl.m4
Alex Ameen [Tue, 30 Nov 2021 03:43:26 +0000 (21:43 -0600)] 
* libtool: Bump M4 serial versions and add missing AC_PROG_SED to ltdl.m4

* m4/libtool.m4: bump serial version ( covers entire release ).
* m4/ltargz.m4: bump serial version ( covers entire release ).
Add AC_PROG_SED requirement to LT_FUNC_ARGZ.
* m4/ltdl.m4: bump serial version ( covers entire release ).

3 years agolibtool: replace raw invocations of sed with $SED
Václav Haisman [Tue, 30 Nov 2021 02:37:49 +0000 (20:37 -0600)] 
libtool: replace raw invocations of sed with $SED

* build-aux/ltmain.in: replace raw invocations of sed with $SED
* m4/libtool.m4: replace raw invocations of sed with $SED
* m4/ltargz.m4: replace raw invocations of sed with $SED
* m4/ltdl.m4: replace raw invocations of sed with $SED

Co-authored-by: Alex Ameen <alex.ameen.tx@gmail.com>
Copyright-paperwork-exempt: Yes

3 years agolibtool: add support for MidnightBSD
Lucas Holt [Tue, 30 Nov 2021 00:54:09 +0000 (18:54 -0600)] 
libtool: add support for MidnightBSD

* build-aux/ltmain.in: clone link-mode handling for MidnightBSD from FreeBSD
* m4/libtool.m4: clone various TAGVARs for MidnightBSD from FreeBSD
* m4/ltdl.m4: clone dlopen handling for MidnightBSD from FreeBSD

Copyright-paperwork-exempt: Yes

3 years agolibtool: powerpc 10.5 detection without a deployment target
Ryan Schmidt [Mon, 22 Nov 2021 03:06:50 +0000 (21:06 -0600)] 
libtool: powerpc 10.5 detection without a deployment target

* m4/libtool.m4: properly set "allow undefined" flag for darwin powerpc 10.5
even if deployment target is unset

Copyright-paperwork-exempt: Yes

3 years agolibtool: support macOS 11
Jeremy Huddleston Sequoia [Mon, 22 Nov 2021 02:36:34 +0000 (20:36 -0600)] 
libtool: support macOS 11

Fixes bug#44605

* m4/libtool.m4: '_LT_REQUIRED_DARWIN_CHECKS' sets proper "allow undefined" flag
for particular macOS versions and powerpc.

Copyright-paperwork-exempt: Yes

3 years agolibtool: correct m4 quoting in sed expression
Vincent Lefevre [Mon, 22 Nov 2021 01:59:54 +0000 (19:59 -0600)] 
libtool: correct m4 quoting in sed expression

* m4/libtool.m4: properly escape character set in sed expression

Copyright-paperwork-exempt: Yes

3 years agolibtool: replace some references to /usr/bin/file and /bin/sh
Alex Ameen [Sat, 20 Nov 2021 20:17:20 +0000 (14:17 -0600)] 
libtool: replace some references to /usr/bin/file and /bin/sh

* build-aux/ltmain.sh: use '/usr/bin/env sh' in shebang
* libtoolize.in: use '/usr/bin/env sh' in shebang
* m4/libtool.m4: 'FILECMD' to replace use of '/usr/bin/file'

3 years agolibtool: Add -Wa,* link-mode flag for assembler pass-thru
aakropotkin [Fri, 19 Nov 2021 03:24:47 +0000 (21:24 -0600)] 
libtool: Add -Wa,* link-mode flag for assembler pass-thru

* build-aux/ltmain.in: add -Wa,* as link-mode flag.
Add help messages for -Wa,* and -Xassember in link mode.
Add help message for -Xcompiler in compile mode.
* doc/libtool.texi: document -Xassembler and -Wa,* for link-mode.

3 years agolibtool: Pass -Xassembler flag and arguments to compiler
Alex Potapenko [Fri, 19 Nov 2021 01:53:35 +0000 (19:53 -0600)] 
libtool: Pass -Xassembler flag and arguments to compiler

* build-aux/ltmain.in: Add parsing and pass-thru for -Xassembler

Copyright-paperwork-exempt: Yes

3 years agomaint: update Bootstrap git module
Pavel Raiskup [Tue, 16 Nov 2021 12:25:08 +0000 (13:25 +0100)] 
maint: update Bootstrap git module

Fixes bug#47000.

* bootstrap: Regenerated.
* gl-mod/bootstrap: Updated to the latest HEAD.

3 years agomaint: update copyrights across project.
aakropotkin [Mon, 15 Nov 2021 04:37:22 +0000 (22:37 -0600)] 
maint: update copyrights across project.

* AUTHORS: Correct manually modified copyright to be consistent with
other files.

3 years agomaint: update AUTHORS, copyright date.
aakropotkin [Mon, 15 Nov 2021 02:38:25 +0000 (20:38 -0600)] 
maint: update AUTHORS, copyright date.

* AUTHORS: Add Alex Ameen as maintainer. Move past authors to 'previous' list.

6 years agobootstrap: use $gnulib_clone_since
Pavel Raiskup [Fri, 22 Mar 2019 12:05:53 +0000 (13:05 +0100)] 
bootstrap: use $gnulib_clone_since

* bootstrap.conf: Add $gnulib_clone_since.
* gl-mod/bootstrap: Update to the latest git hash.
* bootstrap: Regenerate.

6 years agomaint: update bootstrap, gnulib, copyright dates
Pavel Raiskup [Tue, 19 Feb 2019 15:19:59 +0000 (16:19 +0100)] 
maint: update bootstrap, gnulib, copyright dates

* gnulib: Update to the latest git version.
* gl-mod/bootstrap: Likewise.
* bootstrap: Regenerate.

7 years agomaint: update bootstrap, gnulib, copyright dates
Pavel Raiskup [Tue, 24 Jul 2018 07:06:44 +0000 (09:06 +0200)] 
maint: update bootstrap, gnulib, copyright dates

* gnulib: Update to the latest git version.
* gl-mod/bootstrap: Likewise.
* bootstrap: Regenerate.
* gl/top/README-release.diff: Update the patch for the latest
changes in gnulib's README-release.

7 years agolibtool: add icl.exe support
Alexander Shevchenko [Thu, 12 Jul 2018 08:46:39 +0000 (11:46 +0300)] 
libtool: add icl.exe support

A logical continuation of Automake commit
c40e27e1c2a60f58e72e65d73d808f782d55494a to provide
Windows ICC support similar as already done for MSVC.

Resolves bug 26484.

* m4/libtool.m4: Treat icl.exe equivalently to cl.exe.

Copyright-paperwork-exempt: Yes

8 years agodocs: typo in 'win32-dll' description
Pavel Raiskup [Fri, 5 May 2017 07:36:55 +0000 (09:36 +0200)] 
docs: typo in 'win32-dll' description

Resolves bug 26516.  Thanks to Reuben Thomas.

* doc/libtool.texi (Configuring libtool): s/macro/option/ in
'win32-dll' option description.

8 years agolibtool: quote 'cd' command in shipped relink_command
Pavel Raiskup [Tue, 25 Apr 2017 10:35:39 +0000 (12:35 +0200)] 
libtool: quote 'cd' command in shipped relink_command

Per report from Eric Blake:
https://lists.gnu.org/archive/html/bug-libtool/2015-10/msg00009.html

* build-aux/ltmain.in (func_mode_link): Quote 'cd `pwd`' properly
before generating the $relink_command.  Do that for the potential
scenarios where the pwd could contain spaces or special shell
characters.

8 years agodoc: fix typos in --mode=install invocations
Pavel Raiskup [Tue, 25 Apr 2017 10:06:28 +0000 (12:06 +0200)] 
doc: fix typos in --mode=install invocations

Per report from devel@lists.fedoraproject.org, thread id
CLHZMVL3CZ43KX7CD3PF3FDV255EA57O

* doc/libtool.texi (Install mode): With the
'libtool --mode=install' wrapper the 'install' command needs to be
specified.

8 years agolibtool: exit verbosely for fatal configure problems
Bert Wesarg [Mon, 13 Jun 2016 20:28:47 +0000 (22:28 +0200)] 
libtool: exit verbosely for fatal configure problems

Instead of calling not-existing function and processing subsequent
shell code.

* build-aux/ltmain.in (func_fatal_configuration): Fix typo in
func_fatal_error call.

Copyright-paperwork-exempt: Yes

8 years agomaint: update copyright years
Pavel Raiskup [Fri, 21 Apr 2017 13:18:48 +0000 (15:18 +0200)] 
maint: update copyright years

Also sync gnulib & bootstrap git submodules.

* gnulib, gl-mod/bootstrap: Move to latest git versions.
* bootstrap: Regenerate.
* all files: Bump years by 'make update-copyright'.

8 years agolibltdl: handle ENOMEM in lt_dlloader_remove()
Pavel Raiskup [Mon, 16 Jan 2017 11:45:03 +0000 (12:45 +0100)] 
libltdl: handle ENOMEM in lt_dlloader_remove()

Reported by Alexander Hass.

* libltdl/lt_dlloader.c (lt_dlloader_remove): Detect NULL return
value from lt_dlinterface_register.

9 years agobootstrap: use the upstream repo as git module
Pavel Raiskup [Mon, 22 Feb 2016 23:38:39 +0000 (00:38 +0100)] 
bootstrap: use the upstream repo as git module

.. instead of copying it all the time;  gnulib-tool and bootstrap
are now ready to do this correctly.

Bootstrap upstream is now dual-licensed as MIT/GPLv2+;  so the
sources are redistributed automatically under GPLv3+ license in
in libtool project.

* .gitmodules (bootstrap): New submodule.
* bootstrap.conf (local_gl_dir): Renamed to local_gl_path.
(local_gl_path): Renamed from local_gl_dir.  Two sub-directories
are now mentioned as two --local-dir's are used.
(gnulib_git_submodules): New option to automatically clone the
bootstrap git submodule.
* build-aux/ltmain.in (libtool_options_prep)
(libtool_parse_options): Changing function exit status is not
needed with new options-parser.
* libtoolize.in: Don't func_quote when it is not necessary, don't
set the function return value.
* gl-mod/bootstrap: New git submodule.
* gl/build-aux/bootstrap.in, gl/build-aux/extract-trace,
gl/build-aux/funclib.sh, gl/build-aux/inline-source,
gl/build-aux/options-parser, gl/doc/bootstrap.texi,
gl/modules/all-shells-tests, gl/modules/bootstrap,
gl/modules/extract-trace, gl/modules/funclib.sh,
gl/modules/funclib.sh-tests, gl/modules/inline-source
gl/modules/options-parser, gl/modules/options-parser-tests,
gl/tests/test-all-shells.sh, gl/tests/test-funclib-quote.sh
gl/tests/test-option-parser-helper,
gl/tests/test-option-parser.sh: Files removed, those are
automatically pulled from upstream now.
* bootstrap: Sync with upstream.

9 years agolibtool: set file_list_spec to '@' on OS/2
KO Myung-Hun [Wed, 16 Dec 2015 03:59:17 +0000 (12:59 +0900)] 
libtool: set file_list_spec to '@' on OS/2

Creating and linking reloadable objects sometimes fail.

* m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) <os2-*>:
Set file_list_spec to '@'.

9 years agotests: fix $objdir hardcoding check with CFLAGS=-g3
Pavel Raiskup [Fri, 19 Feb 2016 17:22:15 +0000 (18:22 +0100)] 
tests: fix $objdir hardcoding check with CFLAGS=-g3

At least with gcc, specifying -g3 in CFLAGS ends up with macros
expanded including LT_OBJDIR macro.  This fooled the testsuite.

* tests/demo.at (Demo hardcode): Filter out the expanded LT_OBJDIR
macro.

9 years agolibtool: pass through -fuse-ld flags
Mike Frysinger [Sat, 13 Feb 2016 07:14:29 +0000 (02:14 -0500)] 
libtool: pass through -fuse-ld flags

Starting with gcc-4.8, there's a -fuse-ld flag that can be used to
select between bfd & gold.  Make sure we pass it through to the
linking stage.

* build-aux/ltmain.in (func_mode_link): Pass -fuse-ld=* flags
through.
Copyright-paperwork-exempt: Yes

9 years agom4/libtool.m4: FreeBSD elftoolchain strip support
Pavel Raiskup [Mon, 30 Nov 2015 07:37:18 +0000 (08:37 +0100)] 
m4/libtool.m4: FreeBSD elftoolchain strip support

References:
http://savannah.gnu.org/patch/?8675
Message-Id: <20150523-002056.sv85487.59958@savannah.gnu.org>

* m4/libtool.m4 (_LT_CMD_STRIPLIB): Remove the redundant tests for
empty $old_striplib and $striplib.  Move the test for empty $STRIP
variable up. Allow elftoolchain strip (with the same arguments we
used to have with GNU strip) on FreeBSD.

9 years agolibtoolize: exec automake and autoconf only with --help
Mike Frysinger [Sat, 13 Feb 2016 08:46:34 +0000 (03:46 -0500)] 
libtoolize: exec automake and autoconf only with --help

Same fix as applied to libtool in commit 408cfb9c5fa8a666917
to delay use of automake/autoconf to when the --help option is
actually specified.

* libtoolize.in (func_help): Override func_help() from
gl/build-aux/options-parser to only run automake --version and
autoconf --version when libtool --help is executed on the command
line.
Copyright-paperwork-exempt: Yes

9 years agoedit-readme-alpha: generate the "stable" README properly
Pavel Raiskup [Wed, 17 Feb 2016 15:27:25 +0000 (16:27 +0100)] 
edit-readme-alpha: generate the "stable" README properly

Fixes bug#20196.  Reported by Peter Johansson and KO Myung-Hun

* build-aux/edit-readme-alpha: Invert the order of checks
and exit sooner if the file was already edited.  Also fix the
typo 's/sed -n/sed/' (to print the rest of the file).
* Makefile.am ($(readme)): Double-quote the `cmd` to let test -n
work correctly.

9 years agomaint: fix for 'make sc_immutable_NEWS' hints
Pavel Raiskup [Tue, 16 Feb 2016 00:16:20 +0000 (01:16 +0100)] 
maint: fix for 'make sc_immutable_NEWS' hints

* NEWS: Remove the leading white-spaces before Copyright line
because it breaks the perl regexp in sc_immutable_NEWS rule.
* cfg.mk (old_NEWS_hash): Adjust to correct previous hash as the
old NEWS entries were not actually touched.

9 years agomaint: update copyright years
Pavel Raiskup [Mon, 15 Feb 2016 23:28:33 +0000 (00:28 +0100)] 
maint: update copyright years

Also update gnulib submodule as it contains updated copyright
years too.

* gnulib: Latest greatest git hash.
* all files: Run 'make update-copyright'.

9 years agolibltdl: handle ENOMEM sooner
Pavel Raiskup [Fri, 12 Feb 2016 15:03:14 +0000 (16:03 +0100)] 
libltdl: handle ENOMEM sooner

Fixes bug#19890.  Reported by Tobias Stoeckmann.

* libltdl/loaders/dld_link.c (vm_open): Do not even try dld_link()
in case of ENOMEM.

9 years agogl: minor typo fixes
Pavel Raiskup [Wed, 3 Feb 2016 09:18:14 +0000 (10:18 +0100)] 
gl: minor typo fixes

* gl/build-aux/options-parser (func_run_hooks):
s/funcions.n./functions./, s/$@/${1+"$@"}/.
* gl/modules/funclib.sh: Sync license metadata with real module
code.
* bootstrap: Sync with funclib.sh

9 years agogl-tests: dash && option-parser test fix
Pavel Raiskup [Wed, 3 Feb 2016 09:05:51 +0000 (10:05 +0100)] 
gl-tests: dash && option-parser test fix

Rico pointed out that the testsuite failed on his system (dash
represented /bin/sh).  Turns out that 'shift' in dash exits shell
with exit status 2 when there are no items in the array.

The other issue was that 'test-option-parser.sh' did not
re-executed the test in proper shell, but in /bin/sh.

* gl/tests/test-option-parser-helper (test_parse_eat_test): Don't
shift for empty $@.
* gl/tests/test-option-parser.sh: Use $__GL_ALL_SHELLS_SHELL as
shell which runs the helper.

9 years agolibtool: fix GCC/clang linking with -fsanitize=*
Jeremy Huddleston Sequoia [Mon, 19 Oct 2015 04:55:39 +0000 (21:55 -0700)] 
libtool: fix GCC/clang linking with -fsanitize=*

References:
https://lists.gnu.org/archive/html/libtool/2014-04/msg00026.html

* build-aux/ltmain.in (func_mode_link): Pass -fsanitize=* to the
linker to allow trivial use of the clang address sanitizer.

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
Copyright-paperwork-exempt: Yes

9 years agogl-tests: make the failure more readable
Pavel Raiskup [Mon, 30 Nov 2015 06:06:56 +0000 (07:06 +0100)] 
gl-tests: make the failure more readable

* gl/tests/test-funclib-quote.sh (_compare_or_error): Put $1 into
error output, not having it like that was my mistake.

9 years agom4/libtool.m4: export AIX TLS symbols
David Edelsohn [Thu, 5 Nov 2015 17:43:02 +0000 (09:43 -0800)] 
m4/libtool.m4: export AIX TLS symbols

TLS symbols in AIX display a new, different symbol type in nm output.
Libtool explicitly creates a list of exported symbols for AIX shared
libraries using nm and does not recognize the new TLS symbols, so
those symbols are not exported in AIX shared libraries.

This is a regression for TLS support on AIX where TLS symbols or GCC
"emultls" symbols were listed as global data and exported.

This patch updates libtool.m4 export_symbols_cmds for AIX in two
locations so that global symbols labeled with "L" for TLS are included
in the export list.

* m4/libtool.m4 (export_symbols_cmds) [AIX]: Add global TLS "L" symbols.
Message-Id: <CAGWvnym+hhoQJfkr=cncPZMnnMQ=RVUH2Bpw6+tP2hgEmESAsA@mail.gmail.com>

9 years agogl/tests: new tests for options-parser
Pavel Raiskup [Mon, 2 Nov 2015 13:54:11 +0000 (14:54 +0100)] 
gl/tests: new tests for options-parser

* gl/build-aux/options-parser (func_parse_options): Put the info
message 'enabling shell trace mode' on stderr.
* gl/modules/options-parser-tests: New test module.
* gl/tests/test-option-parser.sh: New test-case.
* gl/tests/test-option-parser-helper: New test-case helper.
* bootstrap: Sync with option-parser.

9 years agogl/funclib.sh: func_quotefast_eval & tilde fix
Pavel Raiskup [Sun, 1 Nov 2015 20:43:31 +0000 (21:43 +0100)] 
gl/funclib.sh: func_quotefast_eval & tilde fix

Testsuite detected that printf built-in in Bash up to 4.2 was not
able to properly escape tilde.

* gl/build-aux/funclib.sh (func_quote_for_eval): If printf
supports -v option, test also whether we properly escape tilde.
With Bash <= 4.2, call func_quote_portable with ~* strings.
* bootstrap: Sync with funclib.sh.

9 years agosyntax-check: fix sed syntax errors
Pavel Raiskup [Sat, 31 Oct 2015 14:49:01 +0000 (15:49 +0100)] 
syntax-check: fix sed syntax errors

Multi-line single-quoted shell arguments defined within makefile
rules end up having the trailing backslash.  This caused problem
in some sc_* rules as GNU sed does not interpret trailing
backslash the same way as SHELL (== appending next line).
Switching to double quotes means that SHELL will remove the
trailing backslash for subsequent sed call.  This silences a lot
of GNU sed warnings seen before like:

  sed: -e expression #1, char 96: unterminated address regex

* cfg.mk (sc_libtool_m4_cc_basename): Use $(SED) instead of sed,
use double quotes for sed's multi-line argument.
(sc_prohibit_set_dummy_without_shift): Likewise.
(sc_prohibit_test_const_follows_var): Likewise.

9 years agogl/tests: new tests for func_quote* family
Pavel Raiskup [Sat, 31 Oct 2015 13:33:18 +0000 (14:33 +0100)] 
gl/tests: new tests for func_quote* family

* gl/modules/funclib.sh-tests: New test module.
* gl/modules/all-shells-tests: New test (helper) module.
* gl/tests/test-funclib-quote.sh: New test case.
* gl/tests/test-all-shells.sh: New gl test helper.
* cfg.mk (sc_useless_braces_in_variable_derefs): Whitelist
new test-funclib-quote.sh as the pattern is used there
intentionally.
(sc_space_tab): Likewise.
(sc_useless_braces_in_variable_derefs): Remove /cvsu pattern as
the file is not used with git.
(sc_prohibit_command_in_subst): New checker.

9 years agocheck: enable gnulib's testsuite
Pavel Raiskup [Mon, 12 Oct 2015 20:52:29 +0000 (22:52 +0200)] 
check: enable gnulib's testsuite

* Makefile.am (SUBDIRS): Add gnulib-tests.
(EXTRA_DIST): Distribute also update-copyright script.  This does
not happen automatically because we manually remove ./lib
directory created by gnulib-tool.  Not having the file distributed
causes 'make check' failure, however.
(dotversion): Fix to point to $(top_srcdir).
* bootstrap.conf (gnulib_tool_options): Add gnulib-tool args
needed to successfully install gnulib's tests.
* configure.ac (CONFIG_STATUS_DEPENDENCIES): Look for .version in
$(top_srcdir).
* gnulib: Sync with upstream.
* build-aux/.gitignore: Ignore ar-lib coming from automake.

9 years agofunclib: refactor quoting methods a bit
Pavel Raiskup [Sun, 11 Oct 2015 12:35:15 +0000 (14:35 +0200)] 
funclib: refactor quoting methods a bit

From now we have two basic functions to perform string quoting for
shell evaluation -- 'func_quote_arg' to quote one argument and
'func_quote' which takes list of arguments to be quoted.

New function name-scheme should be more descriptive (previously we
called func_quote_for_eval with one argument and also multiple
arguments, while we had confusing
$func_quote_for_eval_unquoted_result which is redundant for
multiple-arguments call).

New abstraction allowed us (in an easy way) to implement
bash-specific optimization for quoting  (using
'printf -v VARNAME %q "$value"', suggested by Eric Blake), this
construct may be used on those places where we don't care much
about the result aesthetics (its thus not useful for '*.la'
generation or for error printing).

* gl/build-aux/funclib.sh (func_append_quoted): Use
func_quote_arg internally (kept in 'pretty' mode for now).
(func_quote): Made to be "main" high-level quoting method taking
list of arguments to be quoted into single command.  It replaces
func_quote_for_{expand,eval}.
(func_quote_portable): Implements quoting in shell, falling back
to portable sed call (rare cases).
(func_quotefast_eval): New internal function using fast
bash-specific construct, falling back to func_quote_portable for
non-Bash scripts.
(func_quote_arg): New function to quote one argument.
(func_quote_for_eval): Removed.  All callers changed to call
func_quote.
(func_quote_for_expand): Likewise.
* bootstrap: Sync with funclib.sh and options-parser.

9 years agolibtool: optimizing options-parser hooks
Pavel Raiskup [Mon, 5 Oct 2015 11:16:08 +0000 (13:16 +0200)] 
libtool: optimizing options-parser hooks

Its not necessary to (re)func_quote_for_eval in each function in
the hook hierarchy.  Usually it is enough if the leaf function
does func_quote_for_eval and its caller just re-uses the
<CALLEE>_return variable.

This is follow up for the previous commit.

* gl/build-aux/options-parser (func_run_hooks): Propagate
$EXIT_SUCCESS return code down to caller if *any* hook succeeded.
Never re-quote the result -- either the arguments are left
untouched, or the options have already been properly quoted by
succeeding hooks.
(func_parse_options): Quote '$@' and return $EXIT_SUCCESS only if
we changed something.
(func_validate_options): Likewise.
(func_options_prep): Likewise.
(func_options_finish): New hook-caller for 'func_options' hooks.
(func_options): Propagate return value down to top-level caller,
but pay attention we have always set $func_options_result.
* build-aux/ltmain.in (libtool_options_prep): Quote '$@' and
return $EXIT_SUCCESS only if we changed something.
(libtool_parse_options): Likewise.
* bootstrap: Sync gl/build-aux/with option-parser.

9 years agolibtool: mitigate the $sed_quote_subst slowdown
Pavel Raiskup [Sun, 4 Oct 2015 19:55:03 +0000 (21:55 +0200)] 
libtool: mitigate the $sed_quote_subst slowdown

When it is reasonably possible, use shell implementation for
quoting.

References:
http://lists.gnu.org/archive/html/libtool/2015-03/msg00005.html
http://lists.gnu.org/archive/html/libtool/2015-02/msg00000.html
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20006

* gl/build-aux/funclib.sh (func_quote): New function that can be
used as substitution for '$SED $sed_quote_subst' call.
* build-aux/ltmain.in (func_emit_wrapper): Use func_quote instead
of '$SED $sed_quote_subst'.
(func_mode_link): Likewise.
* NEWS: Document.
* bootstrap: Sync with funclib.sh.

9 years agognulib: sync with upstream
Pavel Raiskup [Sat, 26 Sep 2015 15:47:56 +0000 (17:47 +0200)] 
gnulib: sync with upstream

With gnulib commit f8fe25fab60e3, AM_PROG_AR is called
automatically from GL_EARLY macro, which brings its definition
into aclocal.m4.  Sufficiently new enough AM_PROG_AR uses guarding
AC_BEFORE([AM_PROG_AR], [LT_INIT]) call.

Existence of 'LT_INIT' string inside aclocal.m4 however broke
bootstrap's self-defensive libtool_check_for_bogus_macros
function.

* build-aux/no-bogus-m4-defines: New aux helper using m4 for
aclocal.m4 pre-processing.  As this is only bootstrap/dist time
assertion, we don't have to be too much careful (and the AC_BEFORE
pushdef is OK for now).
* boostrap.conf (libtool_check_for_bogus_macros): Use
no-bogus-m4-defines helper to detect bogus macros.
* Makefile.am: Likewise.
* gnulib: Sync with upstream.
* build-aux/git-log-fix: Fix typo.
* gl/build-aux/extract-trace: Fix the script timestamp.
* bootstrap: Sync with extract-trace.

9 years agomaint: relax 'sc_prohibit_test_dollar' check
Pavel Raiskup [Thu, 25 Jun 2015 12:53:28 +0000 (14:53 +0200)] 
maint: relax 'sc_prohibit_test_dollar' check

* cfg.mk (sc_prohibit_test_dollar): White-list the
'test ${VAR+y}' construct because that is autoconf-suggested
portable way to check for unset variable.

9 years agoARFLAGS: use 'cr' instead of 'cru' by default
Pavel Raiskup [Fri, 17 Apr 2015 14:54:58 +0000 (16:54 +0200)] 
ARFLAGS: use 'cr' instead of 'cru' by default

In some GNU/Linux distributions people started to compile 'ar'
binary with --enable-deterministic-archives (binutils project).
That, however, in combination with our previous long time working
default AR_FLAGS=cru causes warnings on such installations:
ar: `u' modifier ignored since `D' is the default (see `U')

The 'u' option (at least with GNU binutils) did small optimization
during repeated builds because it instructed 'ar' to not
open/close unchanged *.o files and to rather read their contents
from old archive file.  However, its removal should not cause a
big performance hit for usual workflows.

Distributions started using --enable-deterministic-archives
knowing that it would disable the 'u', just to rather have a bit
more deterministic builds.

Also, to justify this change a bit more, keeping 'u' in ARFLAGS
could only result in many per-project changes to override
Libtool's ARFLAGS default, just to silent such warnings.

Fixes bug#19967.  Reported by Eric Blake.

* m4/libtool.m4 (_LT_PROG_AR): Default AR_FLAGS to 'cr'.
(_LT_REQUIRED_DARWIN_CHECKS): Use $AR_FLAGS instead 'cru' string.
* doc/libtool.texi: Do 's/ar cru/ar cr/' in whole documentation.
* NEWS: Document.

9 years agolibool.m4: add ARFLAGS variable
Pavel Raiskup [Fri, 17 Apr 2015 13:05:42 +0000 (15:05 +0200)] 
libool.m4: add ARFLAGS variable

Libtool has used $AR_FLAGS since 2000-05-29 commit
8300de4c54e6f04f0d, Automake ARFLAGS since 2003-04-06 commit
a71b3490639831ca.  Even though ARFLAGS is younger, it sounds like
better name according GNU Coding Standards.

Related to bug#20082.

* m4/libtool.m4 (_LT_PROG_AR): Copy ARFLAGS value into AR_FLAGS
variable if AR_FLAGS is not set.  Add new _LT_DECL'ed variable
'lt_ar_flags' to keep the configure-time value of AR_FLAGS.  The
new 'lt_ar_flags' is to be used as the default value for AR_FLAGS
at libtool-runtime.
* NEWS: Document.

9 years agomaint: put newline after 'Subjecŧ' in ChangeLog
Pavel Raiskup [Fri, 25 Sep 2015 06:14:02 +0000 (08:14 +0200)] 
maint: put newline after 'Subjecŧ' in ChangeLog

* Makefile.am ($(changelog)): Use --format='%s%n%n%b%n'.

Signed-off-by: Pavel Raiskup <praiskup@redhat.com>
9 years agognulib: sync with upstream
Pavel Raiskup [Fri, 25 Sep 2015 06:08:06 +0000 (08:08 +0200)] 
gnulib: sync with upstream

Blacklisting of duplicated ChangeLog entries is now much easier
with new gitlog-to-changelog's option --ignore-matching -- so
patching the script is not necessary.

* Makefile.am ($(changelog)): Start ignoring entries having the
'Omit-from-ChangeLog.' "topic" line.  Use TZ=UTC to generate the
same ChangeLog regardless of the actual time-zone.
* build-aux/git-log-fix: Put the "blacklist" mark at the beginning
of each commit as that is requirement for --ignore-matching.
* gl/build-aux/gitlog-to-changelog.diff: Removed.
* gnulib: Sync with upstream.

Signed-off-by: Pavel Raiskup <praiskup@redhat.com>
9 years agolibtoolize: fix infinite recursion in m4
Pavel Raiskup [Fri, 18 Sep 2015 21:17:07 +0000 (23:17 +0200)] 
libtoolize: fix infinite recursion in m4

Some projects use this construct in configure.ac:

  m4_define([version], m4_include([version]))
  pkg_version=version

When the m4_include builtin is undefined (as was done in
libtoolize and extract-trace scripts), the call to this 'version'
macro enters an infinite recursion (until ENOMEM).  So rather
re-define all potentially dangerous macros by empty strings,
suggested by Eric Blake.

While we are on it, merge the macro-"blacklist" with similar list
implemented in gettext, except for 'm4_esyscmd'.  It's kept
defined because we already trace AC_INIT macro for package
version, while it is often specified by
m4_esyscmd(git-version-gen).  Similarly to m4_include, m4_esyscmd
might be opt-in-blacklisted in future.

References:
http://lists.gnu.org/archive/html/libtool/2015-09/msg00000.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764580

* gl/build-aux/extract-trace (_G_mini): Redefine trace-breaking
macros to empty strings rather than undefining those.  Use 'dnl'
for comments.
* bootstrap: Likewise, sync with extract-trace.
* NEWS: Document.
* NO-THANKS: Mention Hiroyuki Sato.

Signed-off-by: Pavel Raiskup <praiskup@redhat.com>
9 years agobootstrap: fix race in temporary Makefile
Pavel Raiskup [Thu, 24 Sep 2015 09:03:45 +0000 (11:03 +0200)] 
bootstrap: fix race in temporary Makefile

Target 'bootstrap-deps' sometimes rebuilt $(bootstrap_files)
a bit earlier than the cleanup target 'bootstrap-deps-prep' was
invoked.  As a result, some of $(bootstrap_files) were missing.

* Makefile.am (bootstrap-deps): Rebuild $(bootstrap_files) after
bootstrap-deps-prep dependency.

9 years agolibtool: fix GCC linking with -specs=*
Pavel Raiskup [Fri, 18 Sep 2015 08:36:43 +0000 (10:36 +0200)] 
libtool: fix GCC linking with -specs=*

References:
https://bugzilla.redhat.com/show_bug.cgi?id=985592

* build-aux/ltmain.in (func_mode_link): Pass -specs=*
to the linker, Fedora uses this option for hardening.

Signed-off-by: Pavel Raiskup <praiskup@redhat.com>
10 years agomaint: demote myself from maintainer to former maintainer.
Gary V. Vaughan [Sun, 15 Feb 2015 21:10:49 +0000 (21:10 +0000)] 
maint: demote myself from maintainer to former maintainer.

* AUTHORS: Move myself from the list of maintainers, into the
list of prior authors.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agomaint: post-release administrivia
Gary V. Vaughan [Sun, 15 Feb 2015 17:15:45 +0000 (17:15 +0000)] 
maint: post-release administrivia

* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.

10 years agoversion 2.4.6 v2.4.6
Gary V. Vaughan [Sun, 15 Feb 2015 16:13:37 +0000 (16:13 +0000)] 
version 2.4.6

* NEWS: Record release date.

10 years agolibtool: don't execute automake and autoconf on every invocation.
Gary V. Vaughan [Fri, 6 Feb 2015 12:58:34 +0000 (12:58 +0000)] 
libtool: don't execute automake and autoconf on every invocation.

Regression from 2.4.2 was causing noticable slow-down in builds
that call libtool many times.
* build-aux/ltmain.in (func_help): Override func_help() from
gl/build-aux/options-parser to only run automake --version and
autoconf --version when libtool --help is executed on the command
line.
* NO-THANKS: Add Robert Yang.
Reported by Robert Yang

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agomaint: undo copyright years regression.
Gary V. Vaughan [Tue, 20 Jan 2015 19:19:27 +0000 (19:19 +0000)] 
maint: undo copyright years regression.

* gl/build-aux/options-parser: Undo copyright years regression.
* bootstrap: Regenerate.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agobootstrap: sync with upstream.
Gary V. Vaughan [Tue, 20 Jan 2015 17:21:37 +0000 (17:21 +0000)] 
bootstrap: sync with upstream.

* gl/build-aux/bootstrap.in, gl/build-aux/extract-trace,
gl/build-aux/funclib.sh, gl/build-aux/options-parser: Sync with
upstream.
* bootstrap: Regenerate.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtool: respect config.site LT_SYS_LIBRARY_PATH
Pavel Raiskup [Tue, 20 Jan 2015 16:12:59 +0000 (16:12 +0000)] 
libtool: respect config.site LT_SYS_LIBRARY_PATH

Libtool generator code needs to remember the configure time
LT_SYS_LIBRARY_PATH content to allow config.status properly
instantiate default LT_SYS_LIBRARY_PATH libtool run-time value;
Thats because config.status has no idea what the contents of
config.site file is (by default).
* m4/libtool.m4 (_LT_CONFIG): Use the _LT_DECLared
$configure_time_lt_sys_library_path variable as the default for
LT_SYS_DLSEARCH_PATH at run-time.
(_LT_SYS_DYNAMIC_LINKER): Don't change ac_cv_* variable if it is
not necessary. New $configure_time_lt_sys_library_path variable.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtool.m4: typofix, subst last '$' with quadrigraph
Pavel Raiskup [Tue, 20 Jan 2015 15:35:11 +0000 (15:35 +0000)] 
libtool.m4: typofix, subst last '$' with quadrigraph

* m4/libtool.m4 (_LT_LIBTOOL_TAG_VARS): Encase the
configure/libtool shared function into parseable borders; for
testing purposes.
(func_munge_path_list): Typo s/$/@S|@/.
* tests/configure-funcs.at: New testcase.
* Makefile.am (TESTSUITE_AT): Mention new testcase.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agotests: fix an ltdl dryrun race condition.
Pavel Raiskup [Tue, 20 Jan 2015 15:25:48 +0000 (15:25 +0000)] 
tests: fix an ltdl dryrun race condition.

* tests/testsuite.at (LT_AT_ACLOCAL): Inject a 1 second sleep
after aclocal to ensure subsequently generated autotools files
will be newer.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agomaint: post-release administrivia
Gary V. Vaughan [Mon, 19 Jan 2015 17:00:14 +0000 (17:00 +0000)] 
maint: post-release administrivia

* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.

10 years agoversion 2.4.5 v2.4.5
Gary V. Vaughan [Mon, 19 Jan 2015 15:09:58 +0000 (15:09 +0000)] 
version 2.4.5

* NEWS: Record release date.

10 years agomaint: update copyright statements to include 2015.
Gary V. Vaughan [Fri, 16 Jan 2015 18:52:10 +0000 (18:52 +0000)] 
maint: update copyright statements to include 2015.

* AUTHORS, HACKING, Makefile.am, NEWS, README.md, TODO,
bootstrap, bootstrap.conf, build-aux/edit-readme-alpha,
build-aux/git-hooks/commit-msg, build-aux/ltmain.in, cfg.mk,
configure.ac, doc/libtool.texi, gl/build-aux/bootstrap.in,
gl/build-aux/extract-trace, gl/build-aux/funclib.sh,
gl/build-aux/inline-source, gl/build-aux/options-parser,
libltdl/README, libltdl/configure.ac,
libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt__argz_.h,
libltdl/libltdl/lt__dirent.h, libltdl/libltdl/lt__glibc.h,
libltdl/libltdl/lt__private.h, libltdl/libltdl/lt__strl.h,
libltdl/libltdl/lt_dlloader.h, libltdl/libltdl/lt_error.h,
libltdl/libltdl/lt_system.h, libltdl/libltdl/slist.h,
libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c, libltdl/lt__alloc.c,
libltdl/lt__argz.c, libltdl/lt__dirent.c, libltdl/lt__strl.c,
libltdl/lt_dlloader.c, libltdl/lt_error.c, libltdl/ltdl.c,
libltdl/ltdl.h, libltdl/ltdl.mk, libltdl/slist.c, libtoolize.in,
m4/autobuild.m4, m4/libtool.m4, m4/ltargz.m4, m4/ltdl.m4,
m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.in,
m4/lt~obsolete.m4, m4/m4.m4, tests/am-subdir.at,
tests/archive-in-archive.at, tests/bindir.at, tests/cdemo.at,
tests/cmdline_wrap.at, tests/configure-iface.at,
tests/convenience.at, tests/ctor.at, tests/cwrapper.at,
tests/darwin.at, tests/demo.at, tests/depdemo.at,
tests/deplib-in-subdir.at, tests/deplibs-ident.at,
tests/deplibs-mingw.at, tests/destdir.at, tests/dlloader-api.at,
tests/dumpbin-symbols.at, tests/duplicate_conv.at,
tests/duplicate_deps.at, tests/duplicate_members.at,
tests/early-libtool.at, tests/exceptions.at,
tests/execute-mode.at, tests/exeext.at, tests/export-def.at,
tests/export.at, tests/f77demo.at, tests/fail.at,
tests/fcdemo.at, tests/flags.at, tests/help.at,
tests/indirect_deps.at, tests/infer-tag.at,
tests/inherited_flags.at, tests/install.at,
tests/lalib-syntax.at, tests/libtool.at, tests/libtoolize.at,
tests/link-order.at, tests/link-order2.at, tests/loadlibrary.at,
tests/localization.at, tests/lt_dladvise.at, tests/lt_dlexit.at,
tests/lt_dlopen.at, tests/lt_dlopen_a.at, tests/lt_dlopenext.at,
tests/ltdl-api.at, tests/ltdl-libdir.at, tests/mdemo.at,
tests/need_lib_prefix.at, tests/no-executables.at,
tests/nocase.at, tests/nonrecursive.at, tests/old-ltdl-iface.at,
tests/old-m4-iface.at, tests/pic_flag.at, tests/recursive.at,
tests/resident.at, tests/runpath-in-lalib.at,
tests/search-path.at, tests/shlibpath.at, tests/slist.at,
tests/standalone.at, tests/static.at, tests/stresstest.at,
tests/subproject.at, tests/sysroot.at, tests/tagdemo.at,
tests/template.at, tests/testsuite.at, tests/versioning.at,
tests/with-pic.at: Update copyright statement to include 2015.
* cfg.mk: Adjust old_NEWS_hash accordingly.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agognulib: sync with upstream.
Gary V. Vaughan [Fri, 16 Jan 2015 18:32:43 +0000 (18:32 +0000)] 
gnulib: sync with upstream.

* gnulib: Sync with upstream.
* doc/.gitignore: Regenerate.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtoolize: fix ltdl installation order.
Pavel Raiskup [Fri, 16 Jan 2015 16:30:51 +0000 (16:30 +0000)] 
libtoolize: fix ltdl installation order.

Fixes regression caused by commit 99a808be.
Makefile.in has aclocal.m4 as prerequisite, so Makefile.in
should be installed later to avoid unnecessary rebuild by
(versioned) aclocal.
* Makefile.am (pkgltdl_files): Move the Makefile.in file down in
the list after aclocal.m4.
* tests/libtoolize.at: Adjust to match reordered output.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtool: check Sun Pro CXX ABI postdeps at libtool time.
Gary V. Vaughan [Fri, 12 Dec 2014 18:35:45 +0000 (18:35 +0000)] 
libtool: check Sun Pro CXX ABI postdeps at libtool time.

* m4/libtool.m4 (_LT_PREPARE_CC_BASENAME): Factor cc_basename
calculation into a shell function...
(_LT_CONFIG_SAVE_COMMAND): ...and expand it into generated
libtool script.
(_LT_CC_BASENAME): Adjust accordingly.
(_LT_FUNC_SUNCC_CSTD_ABI): Remove from here...
* build-aux/ltmain.in (func_suncc_cstd_abi): ...and reimplement
here.
* m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Remove postdeps
augmentation from here...
* build-aux/ltmain.in (func_mode_link): ...and reimplement here
just before postdeps are added.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtool: more carefully avoid automatic -Cstd -Crun on Sun Pro CXX.
Gary V. Vaughan [Fri, 12 Dec 2014 13:33:40 +0000 (13:33 +0000)] 
libtool: more carefully avoid automatic -Cstd -Crun on Sun Pro CXX.

* m4/libtool.m4 (_LT_FUNC_SUNCC_CSTD_ABI): New function factored out
of repeated code.  Take note of other known -Cstd incompatible
compiler flags.
(_LT_SYS_HIDDEN_LIBDEPS): Use it to determine whether -Cstd -Crun
can be safely added to postdeps with Sun Pro CXX.
* NEWS: Update.
* NO-THANKS: Add Marc Glisse.
Reported by Marc Glisse

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtool: take care not to double-apply LT_SYS_LIBRARY_PATH.
Gary V. Vaughan [Fri, 12 Dec 2014 11:35:28 +0000 (11:35 +0000)] 
libtool: take care not to double-apply LT_SYS_LIBRARY_PATH.

* m4/libtool.m4 (_LT_CONFIG_SAVE_COMMANDS): Copy configure-time
LT_SYS_LIBRARY_PATH settings as default, but allow run-time
override.
(_LT_SYS_DYNAMIC_LINKER): Save the unmunged
sys_lib_dlsearch_path_spec value, and use it for _LT_DECL,
but then munge it with LT_SYS_LIBRARY_PATH for use in ltdl.m4
macros, such as LT_SYS_DLSEARCH_PATH.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtool: support LT_SYS_LIBRARY_PATH for adjusting bad guesses.
Pavel Raiskup [Thu, 11 Dec 2014 21:49:19 +0000 (21:49 +0000)] 
libtool: support LT_SYS_LIBRARY_PATH for adjusting bad guesses.

Revert 8728e07 and 440fee6.
Some GNU/Linux distributions install libraries into /lib64 (or
/usr/lib64) on 64-bit machines, while /lib (/usr/lib
respectively) stays for multilib variant.  Other distributions
keep /usr/lib for 64-bit variant and reserve other directory for
multilib. Detection of what approach a given system uses is
difficult, however, especially because Glibc's ldconfig does not
report the full and correct list of search paths. Allow the user
to adjust Libtools heuristically determined search paths with
the new LT_SYS_LIBRARY_PATH environment variable at both
compile-time, when libtool is called, and at configure time.
* m4/libtool.m4 (_LT_PREPARE_MUNGE_PATH_LIST): Define a new
function to munge a libtool path list according to a user
supplied colon-delimited path.
(_LT_SYS_DYNAMIC_LINKER): Require _LT_PREPARE_MUNGE_PATH_LIST.
Mark LT_SYS_LIBRARY_PATH as precious to autoconf (to survive
automatic "autoreconf").
Call the new func_munge_path_list function on
sys_lib_dlsearch_path_spec - this propagates results to
generated libtool script.
(_LT_CONFIG): Expand _LT_PREPARE_MUNGE_PATH_LIST into generated
libtool script.
* build-aux/ltmain.in (func_mode_link): Call it to adjust
sys_lib_dlsearch_path according to LT_SYS_LIBRARY_PATH.
* doc/libtool.texi: Document new LT_SYS_LIBRARY_PATH.
* doc/notes.texi: Likewise.
* NEWS: Update.

References: http://thread.gmane.org/gmane.comp.gnu.libtool.general/8339/focus=8345
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agomaint: fix syntax-check failures.
Gary V. Vaughan [Thu, 11 Dec 2014 22:53:34 +0000 (22:53 +0000)] 
maint: fix syntax-check failures.

* m4/m4.m4 (AC_PROG_GNU_M4): Reverse some test arguments for
sc_prohibit_test_const_follows_var.
Remove some spurious braces for
sc_useless_braces_in_variable_drefs.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agobootstrap: sync with upstream.
Gary V. Vaughan [Thu, 11 Dec 2014 22:58:08 +0000 (22:58 +0000)] 
bootstrap: sync with upstream.

* gl/build-aux/extract-trace (func_find_tool): Quote a bare
variable expansion in a test argument.
* bootstrap: Regenerate.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtool: s390x is also a 64bit glibc/ELF platform.
Gary V. Vaughan [Fri, 5 Dec 2014 13:29:13 +0000 (13:29 +0000)] 
libtool: s390x is also a 64bit glibc/ELF platform.

* m4/libtool.m4 (_LT_SYS_DYNAMIC_LIB): Add s390x to glibc/ELF
compatible CPUs that have /lib64 and /usr/lib64 in
sys_lib_dlsearch_path_spec.
Reported by Pavel Raiskup

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtool: for 64bit GNU arches, add /lib64 and /usr/lib64 to sys_lib_dlsearch_path.
Gary V. Vaughan [Thu, 4 Dec 2014 17:44:41 +0000 (17:44 +0000)] 
libtool: for 64bit GNU arches, add /lib64 and /usr/lib64 to sys_lib_dlsearch_path.

* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) <linux*, k*bsd*-gnu>
<kopensolaris*-gnu, gnu*>: If $host_cpu contains "64", add /lib64
and /usr/lib64 to sys_lib_dlsearch_path_spec.
Reported by Orion Poplawski, Christian Rössel, Olly Betts et. al.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibltdl: fix gcc compiler warning for unused attributes.
Gary V. Vaughan [Thu, 4 Dec 2014 17:17:11 +0000 (17:17 +0000)] 
libltdl: fix gcc compiler warning for unused attributes.

* libltdl/ltdl.c, libltdl/loaders/dld_link.c,
libltdl/loaders/dlopen.c, libltdl/loaders/dyld.c,
libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c,
libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c: For at
least gcc 4.8.3 and 4.9.1, __attribute__((__unused)) should
follow the unused parameter declaration.
* NO-THANKS: Add Дилян Палаузов.
Reported by Дилян Палаузов

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agotests: do not assume compiler prefers shared libraries.
Eric Bavier [Thu, 4 Dec 2014 16:34:17 +0000 (16:34 +0000)] 
tests: do not assume compiler prefers shared libraries.

Testing whether -static-libtool-libs causes a non-libtool library to be
linked dynamically is effectively a test of the compiler's preference in
this case.  The Cray compiler prefers static libraries if not told
otherwise.
* tests/static.at [static linking flags for programs]: Do not expect
 -static-libtool-libs to fail.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtool: fix sys_lib_dlsearch_path_spec for ia64 HP-UX.
Norihiro Tanaka [Thu, 4 Dec 2014 15:39:14 +0000 (15:39 +0000)] 
libtool: fix sys_lib_dlsearch_path_spec for ia64 HP-UX.

The run-time loader does not search /usr/local or subdirectories
by default on ia64 HP-UX.
* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Fix
sys_lib_dlsearch_path_spec for ia64 HP-UX.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibltdl: edit AM_CPPFLAGS correctly for libltdl/Makefile.am.
Gary V. Vaughan [Thu, 4 Dec 2014 14:38:01 +0000 (14:38 +0000)] 
libltdl: edit AM_CPPFLAGS correctly for libltdl/Makefile.am.

* libltdl/ltdl.mk (AM_CPPFLAGS): Make sure the sed expression to
remove the first libltdl/ on each line is not confused by misuse
of linebreaks.
* Makefile.am (lt_Makefile_am): Also edit out the duplicated
include paths after libltdl/ elimination.
* NEWS: Update.
Reported by Michael Wobst

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtool: commit forgotten soname_spec for freebsd-elf in bb7cef9.
Tijl Coosemans [Thu, 4 Dec 2014 13:47:06 +0000 (13:47 +0000)] 
libtool: commit forgotten soname_spec for freebsd-elf in bb7cef9.

* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) <freebsd-elf>: Set
soname_spec correctly, per original patch.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agobootstrap: sync with upstream for runtime M4 checking functions.
Gary V. Vaughan [Wed, 3 Dec 2014 18:53:08 +0000 (18:53 +0000)] 
bootstrap: sync with upstream for runtime M4 checking functions.

* gl/build-aux/extract-trace: Sync with upstream for runtime M4
checking functions.
* bootstrap: Regenerate.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agoconfigury: bail out early if GNU M4 is not on the path.
Gary V. Vaughan [Wed, 3 Dec 2014 18:33:57 +0000 (18:33 +0000)] 
configury: bail out early if GNU M4 is not on the path.

Now that libtoolize requires an installed GNU M4 to parse
configure.ac and aclocal.m4 sources for libltdl macros, let the
user know at configure time when it is missing.
* m4/m4.m4: New file for rejecting non-GNU and buggy GNU versions
of M4. Copied from GNU Autoconf m4.m4.
* Makefile.am (lt_aclocal_m4_deps): Add m4/m4.m4.
* configure.ac (AC_PROG_GNU_M4): Call it.
* NEWS: Update.
Reported by Michael Felt

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agomaint: post-release administrivia
Gary V. Vaughan [Sat, 29 Nov 2014 18:02:15 +0000 (18:02 +0000)] 
maint: post-release administrivia

* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.

10 years agoversion 2.4.4 v2.4.4
Gary V. Vaughan [Sat, 29 Nov 2014 16:37:38 +0000 (16:37 +0000)] 
version 2.4.4

* NEWS: Record release date.

10 years agognulib: sync with upstream.
Gary V. Vaughan [Wed, 19 Nov 2014 12:30:01 +0000 (12:30 +0000)] 
gnulib: sync with upstream.

* gnulib: sync with upstream.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtool: optional filename-based shlib versioning on aix.
Michael Haubenwallner [Sat, 29 Nov 2014 15:05:05 +0000 (15:05 +0000)] 
libtool: optional filename-based shlib versioning on aix.

Support filename-based shared library versioning on AIX with the
lib.so library filename extension, which is used with runtime
linking only. Runtime linking is enabled by the -brtl linker
flag for executables and the -G linker flag for Shared Objects.
The behaviour is similar to Linux/SVR4 DT_SONAME, hence the name
"aix-soname=svr4".
* Makefile.am (TESTS_ENVIRONMENT): Pass with_aix_soname value
via lt_cv_with_aix_soname into testsuite.
* configure.ac: AC_SUBST with_aix_soname for testsuite.
* libltdl/loaders/dlopen.c (vm_open): Use RTLD_MEMBER flag for
dlopen when the filename does specify an archive member between
"()". Otherways, retry with appending LT_SHARED_LIB_MEMBER when
loading fails without but archive file seems to exist.
* m4/libtool.m4 (dynamic_linker): Describe configured shared
library versioning variant according to with_aix_soname and
runtime linking.
(soname_spec, library_names_spec, shlibpath_overrides_runpath)
(postinstall_cmds, postuninstall_cmds, hardcode_direct)
(hardcode_direct_absolute, no_undefined_flag)
(allow_undefined_flag): Set according to with_aix_soname and
runtime linking configuration.
(export_symbols_cmds): Decorate symbols with the weak keyword.
(archive_expsym_cmds): Create both shared libraries according to
with_aix_soname and runtime linking configuration. Filter -brtl
linker flag from compiler_flags for shared libraries due to its
side effects.
(enable_static): Respect with_aix_soname for disabling as well.
* m4/ltdl.m4 (LT_SHARED_LIB_MEMBER): Define, set based on the
value of the shared_archive_member_spec libtool variable.
* m4/ltoptions.m4 (_LT_WITH_AIX_SONAME): New. Provides
commandline option --with-aix-soname=aix|svr4|both. Declares
$shared_archive_member_spec as libtool variable.
(_LT_SET_OPTIONS): Define LT_INIT options "aix-soname=aix",
"aix-soname=svr4", "aix-soname=both". Default is
"aix-soname=aix".
* doc/libtool.texi (LT_INIT): Document new options.
* tests/deplibs-ident.at: To define whether this test should
XFAIL, use hardcode_action, hardcode_direct,
hardcode_direct_absolute configuration settings instead of
platforms aix, bitrig, hppa-hpux, interix or openbsd.
* tests/versioning.at: When shared_archive_member_spec is defined
and LDFLAGS contain -brtl, we can run the versioning check.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtoolize: no need for umask 0 now that copying does not use tar.
Tijl Coosemans [Fri, 28 Nov 2014 16:46:56 +0000 (16:46 +0000)] 
libtoolize: no need for umask 0 now that copying does not use tar.

The umask calls seem to be left over as a workaround for several
releases ago when libtoolize copied libltdl sources with the help
of tar.  Now that we use cp or ln -s exclusively, this just
needlessly makes the files world writable; we should just respect
the users' own umask setting.
* libtoolize.in (func_copy): Remove umask 0 calls and simplify.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agomaint: syntax-checks don't like ${ even in comments!
Gary V. Vaughan [Fri, 28 Nov 2014 16:18:36 +0000 (16:18 +0000)] 
maint: syntax-checks don't like ${ even in comments!

* m4/ltdl.m4: Fix a comment to appease syntax-check rules.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtool: use a modern library version scheme for freebsd-elf.
Tijl Coosemans [Fri, 28 Nov 2014 15:57:07 +0000 (15:57 +0000)] 
libtool: use a modern library version scheme for freebsd-elf.

* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Adopt downstream patch
used by FreeBSD for versioned library filenames.
* build-aux/ltmain.in (func_mode_link): Replace conflicting
freebsd-elf version_type case branches with a single calculation
setting major and versuffix to match downstream FreeBSD.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agolibtool: split sco version into its own type.
Tijl Coosemans [Fri, 28 Nov 2014 15:51:34 +0000 (15:51 +0000)] 
libtool: split sco version into its own type.

* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Set version type to
"sco" for sco based hosts.
* build-aux/ltmain.in (func_mode_link): Accept new "sco"
version_type as equivalent to freebsd-elf.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agoconfigury: detect dlsym underscore prefix without dlopen self.
Gary V. Vaughan [Fri, 28 Nov 2014 15:12:03 +0000 (15:12 +0000)] 
configury: detect dlsym underscore prefix without dlopen self.

* m4/ltdl.m4 (LT_FUNC_DLSYM_USCORE): Compile, load and get the
address of a symbol from a separate loadable module, rather than
assuming dlopen self works.
* NEWS: Update.
Reported by KO Myung-Hun

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agoltdl: fix a long standing duplicate `-ldl' bug in the link line.
Gary V. Vaughan [Wed, 26 Nov 2014 19:36:47 +0000 (19:36 +0000)] 
ltdl: fix a long standing duplicate `-ldl' bug in the link line.

* m4/ltdl.m4 (LT_LIB_DLLOAD): Save contents of LIBS before
calling AC_SEARCH_LIBS, which prepends to LIBS by default, and
restore afterwards.  We set LIBADD_DLOPEN and LIBADD_SHL_LOAD
so that dynamic loader libraries can be added selectively only
where they are needed.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agotests: do not test undef symbols across shlibs on AIX.
Michael Haubenwallner [Fri, 21 Nov 2014 19:03:26 +0000 (19:03 +0000)] 
tests: do not test undef symbols across shlibs on AIX.

On AIX, undefined symbols across shared libraries can work only
when the main program explicitly exports those symbols. As this
is bad practice anyway and -no-undefined should be preferred, we
skip this.
* tests/template.at: Skip test with undef syms across libraries
on AIX.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agotests: question mark is extended regex for non-GNU grep.
Michael Haubenwallner [Fri, 21 Nov 2014 18:56:27 +0000 (18:56 +0000)] 
tests: question mark is extended regex for non-GNU grep.

Accepting \? for at-most-once in basic regex is a GNU grep
extension, not accepted by AIX grep for example.
* tests/libtool.at: Use \{0,1\} instead of ? with GREP.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
10 years agomaint: Fox a resent smelling mystique.
Gary V. Vaughan [Tue, 18 Nov 2014 17:20:06 +0000 (17:20 +0000)] 
maint: Fox a resent smelling mystique.

* build-aux/git-log-fix: ChangeLog edit.
Reported by Eric Blake

Signed-off-by: Gary V. Vaughan <gary@gnu.org>