This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU Libtool".
The branch, master has been updated via b7b6ec33baa4747eb147e9e249e675e477d861f4 (commit) via 5859cc50d62667438f36c4a2872583bcd09cfdd5 (commit) via 418129bc63afc312701e84cb8afa5ca413df1ab5 (commit) via 4335de1dfb7d2ec728427e07a54136b94a2d40f6 (commit) from 0f84217752fe50155f1f00fd14efbbbbdfaaed24 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit b7b6ec33baa4747eb147e9e249e675e477d861f4 Author: Pavel Raiskup <prais...@redhat.com> Date: Sat Sep 26 17:47:56 2015 +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. commit 5859cc50d62667438f36c4a2872583bcd09cfdd5 Author: Pavel Raiskup <prais...@redhat.com> Date: Thu Jun 25 14:53:28 2015 +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. commit 418129bc63afc312701e84cb8afa5ca413df1ab5 Author: Pavel Raiskup <prais...@redhat.com> Date: Fri Apr 17 16:54:58 2015 +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. commit 4335de1dfb7d2ec728427e07a54136b94a2d40f6 Author: Pavel Raiskup <prais...@redhat.com> Date: Fri Apr 17 15:05:42 2015 +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. ----------------------------------------------------------------------- Summary of changes: Makefile.am | 11 +++----- NEWS | 10 +++++++ bootstrap | 2 +- bootstrap.conf | 9 +----- build-aux/git-log-fix | 3 ++ build-aux/no-bogus-m4-defines | 61 +++++++++++++++++++++++++++++++++++++++++ cfg.mk | 3 +- doc/libtool.texi | 10 +++--- gl/build-aux/extract-trace | 2 +- gnulib | 2 +- m4/libtool.m4 | 21 +++++++++++--- 11 files changed, 107 insertions(+), 27 deletions(-) create mode 100755 build-aux/no-bogus-m4-defines diff --git a/Makefile.am b/Makefile.am index b8d2703..fd11dd0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -86,11 +86,13 @@ ltmain_in = $(srcdir)/$(aux_dir)/ltmain.in libtool_m4 = $(srcdir)/$(macro_dir)/libtool.m4 ltversion_in = $(srcdir)/$(macro_dir)/ltversion.in ltversion_m4 = $(srcdir)/$(macro_dir)/ltversion.m4 +no_bogus_macros = $(srcdir)/$(aux_dir)/no-bogus-m4-defines options_parser = $(srcdir)/$(aux_dir)/options-parser EXTRA_DIST += $(extract_trace) $(funclib_sh) $(inline_source) \ $(libtoolize_in) $(ltmain_in) $(ltmain_sh) \ - $(ltversion_in) $(ltversion_m4) $(options_parser) + $(ltversion_in) $(ltversion_m4) $(no_bogus_macros) \ + $(options_parser) ## These are the replacements that need to be made at bootstrap time, ## because they must be static in distributed files, and not accidentally @@ -612,12 +614,7 @@ dist-hook: $(changelog) $(thanks) $(dotversion) $(readme) ## ...and similarly for .serial. $(git_commit_count) > $(dotserial) ## Ensure aclocal has not wrongly picked up old macro definitions. - @for macro in LT_INIT AC_PROG_LIBTOOL AM_PROG_LIBTOOL; do \ - if grep "$$macro" '$(srcdir)/aclocal.m4' '$(lt_aclocal_m4)'; then \ - echo "Bogus $$macro macro contents in an aclocal.m4 file." >&2; \ - exit 1; \ - else :; fi; \ - done + $(no_bogus_macros) distcheck-hook: syntax-check diff --git a/NEWS b/NEWS index 82dd037..a3c5b12 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,16 @@ NEWS - list of user-visible changes between releases of GNU Libtool * Noteworthy changes in release ?.? (????-??-??) [?] +** New features: + + - Libtool script now supports (configure-time and runtime) ARFLAGS + variable, which obsoletes AR_FLAGS. This is due to naming conventions + among other *FLAGS and to be consistent with Automake's ARFLAGS. + +** Important incompatible changes: + + - Libtool changed ARFLAGS/AR_FLAGS default from 'cru' to 'cr'. + ** Bug fixes: - Fix significant slowdown of libtoolize for certain projects (regression diff --git a/bootstrap b/bootstrap index 17fb169..c179f51 100755 --- a/bootstrap +++ b/bootstrap @@ -2155,7 +2155,7 @@ test -z "$progpath" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/funclib.sh test extract-trace = "$progname" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/options-parser # Set a version string. -scriptversion=2015-01-20.17; # UTC +scriptversion=2015-09-18.21; # UTC # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/bootstrap.conf b/bootstrap.conf index 793d368..db6c74d 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -291,13 +291,8 @@ func_add_hook func_fini libtool_cleanup libtool_check_for_bogus_macros () { $debug_cmd - - $opt_dry_run || - for macro in LT_INIT AC_PROG_LIBTOOL AM_PROG_LIBTOOL; do - if grep $macro aclocal.m4 libltdl/aclocal.m4; then - func_fatal_error "Bogus $macro macro contents in an aclocal.m4 file" - else :; fi - done + $require_build_aux + $build_aux/no-bogus-m4-defines || exit 1 } func_add_hook func_fini libtool_check_for_bogus_macros diff --git a/build-aux/git-log-fix b/build-aux/git-log-fix index 2e7ad7c..af02b0d 100644 --- a/build-aux/git-log-fix +++ b/build-aux/git-log-fix @@ -2,6 +2,9 @@ # option. It specifies what changes to make to each given SHA1's commit # log and metadata, using Perl-eval'able expressions. +0f84217752fe50155f1f00fd14efbbbbdfaaed24 +s|Subjecŧ|Subject| + 8c2154fb4e80967b50b98c7327ff1465d3315f3f # Date: Tue Nov 18 16:14:35 2014 +0000 # Fox a resent smelling mystique. diff --git a/build-aux/no-bogus-m4-defines b/build-aux/no-bogus-m4-defines new file mode 100755 index 0000000..d66aef4 --- /dev/null +++ b/build-aux/no-bogus-m4-defines @@ -0,0 +1,61 @@ +#! /bin/sh + +# no-bogus-m4-defines - detect wrong m4 definitions +# ------------------------------------------------- +# Try to catch the case where 'aclocal' pulls installed libtool +# macro file contents from another version of libtool into the +# current package 'aclocal.m4'. Currently used by 'make dist' +# and by ./bootstrap (bootstrap.conf). +# +# Copyright (C) 2015 Free Software Foundation, Inc. +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Please report bugs or propose patches to bug-libt...@gnu.org. + +. `echo "$0" |${SED-sed} 's|[^/]*$||'`/funclib.sh +# source this for "GNU m4" detection methods +. `echo "$0" |${SED-sed} 's|[^/]*$||'`/extract-trace + +$require_gnu_m4 + +bogus_macros='LT_INIT AC_PROG_LIBTOOL AM_PROG_LIBTOOL' + +bogus_macros_grep='' +for macro in $bogus_macros; do + func_append bogus_macros_grep "/$macro/p;" +done + +clean_false_alarms="pushdef(\`AC_BEFORE', \`')" + +bogus_macros_check_output=`$ECHO "$clean_false_alarms" \ + |$M4 - aclocal.m4 libltdl/aclocal.m4 \ + |$SED -n "$bogus_macros_grep"` + +exit_val=0 +for macro in $bogus_macros; do + case $bogus_macros_check_output in + *$macro*) + func_error "Bogus $macro macro definition in an aclocal.m4 file" + exit_val=1 + ;; + esac +done + +exit $exit_val diff --git a/cfg.mk b/cfg.mk index fdc21a1..6767b2d 100644 --- a/cfg.mk +++ b/cfg.mk @@ -176,7 +176,8 @@ sc_prohibit_test_binary_operators: exclude_file_name_regexp--sc_prohibit_test_dollar = ^cfg.mk$$ sc_prohibit_test_dollar: @prohibit='test[ ]+(![ ])?(-.[ ]+)?X?\$$[^?#]' \ - halt='use '\''test "$$..."'\'' instead of '\''test $$'\' \ + exclude='test \$${[A-Za-z_][A-Za-z0-9_]+\+y}' \ + halt='use '\''test "$$..."'\'' instead of '\''test $$'\' \ $(_sc_search_regexp) # Never use test -e. diff --git a/doc/libtool.texi b/doc/libtool.texi index 0298627..4c664bb 100644 --- a/doc/libtool.texi +++ b/doc/libtool.texi @@ -602,7 +602,7 @@ Without libtool, the programmer would invoke the @command{ar} command to create a static library: @example -burger$ @kbd{ar cru libhello.a hello.o foo.o} +burger$ @kbd{ar cr libhello.a hello.o foo.o} burger$ @end example @@ -632,7 +632,7 @@ libtool are the same ones you would use to produce an executable named a23$ @kbd{libtool --mode=link gcc -g -O -o libhello.la foo.o hello.o} *** Warning: Linking the shared library libhello.la against the *** non-libtool objects foo.o hello.o is not portable! -ar cru .libs/libhello.a +ar cr .libs/libhello.a ranlib .libs/libhello.a creating libhello.la (cd .libs && rm -f libhello.la && ln -s ../libhello.la libhello.la) @@ -662,7 +662,7 @@ archive, not a shared library (@pxref{Static libraries}).}: @example a23$ @kbd{libtool --mode=link gcc -g -O -o libhello.la foo.lo hello.lo \ -rpath /usr/local/lib -lm} -ar cru @value{objdir}/libhello.a foo.o hello.o +ar cr @value{objdir}/libhello.a foo.o hello.o ranlib @value{objdir}/libhello.a creating libhello.la (cd @value{objdir} && rm -f libhello.la && ln -s ../libhello.la libhello.la) @@ -676,7 +676,7 @@ burger$ @kbd{libtool --mode=link gcc -g -O -o libhello.la foo.lo hello.lo \ -rpath /usr/local/lib -lm} rm -fr @value{objdir}/libhello.a @value{objdir}/libhello.la ld -Bshareable -o @value{objdir}/libhello.so.0.0 @value{objdir}/foo.o @value{objdir}/hello.o -lm -ar cru @value{objdir}/libhello.a foo.o hello.o +ar cr @value{objdir}/libhello.a foo.o hello.o ranlib @value{objdir}/libhello.a creating libhello.la (cd @value{objdir} && rm -f libhello.la && ln -s ../libhello.la libhello.la) @@ -6001,7 +6001,7 @@ in cases where it is necessary. @subsection Archivers On all known systems, building a static library can be accomplished by -running @kbd{ar cru lib@var{name}.a @var{obj1}.o @var{obj2}.o @dots{}}, +running @kbd{ar cr lib@var{name}.a @var{obj1}.o @var{obj2}.o @dots{}}, where the @file{.a} file is the output library, and each @file{.o} file is an object file. diff --git a/gl/build-aux/extract-trace b/gl/build-aux/extract-trace index c6abd21..e66bf20 100755 --- a/gl/build-aux/extract-trace +++ b/gl/build-aux/extract-trace @@ -12,7 +12,7 @@ test -z "$progpath" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/funclib.sh test extract-trace = "$progname" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/options-parser # Set a version string. -scriptversion=2015-01-20.17; # UTC +scriptversion=2015-09-18.21; # UTC # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/gnulib b/gnulib index 82b8610..a5a1569 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 82b86107d7f249e9396a65dd1a103f3227f1854e +Subproject commit a5a1569d1953536af019636c49bd3e7a5cbbbde2 diff --git a/m4/libtool.m4 b/m4/libtool.m4 index a3bc337..3335def 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -1042,8 +1042,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF @@ -1493,9 +1493,22 @@ need_locks=$enable_libtool_lock m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} -: ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS +_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)]) + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. +_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}], + [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no hooks/post-receive -- GNU Libtool