Merge branch 'msvc' into msvc-for-1.11
authorStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 11 Nov 2011 19:41:29 +0000 (20:41 +0100)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 11 Nov 2011 19:41:29 +0000 (20:41 +0100)
* msvc:
  tests: avoid a spurious failure of 'ltinit.test' MinGW
  tests: various minor tweakings, mostly related to AM_PROG_AR
  tests: testsuite is now safe to run with dmake in parallel mode
  tests: fix spurious failures w.r.t. parallel make and colorization
  tests: fix spurious failure in 'distcheck-override-infodir.test'
  tests: avoid another failure of 'uninstall-fail.test' on Solaris
  ar-lib: fix configure output for "unrecognized archiver interface"
  warnings: fix buglets for portability warnings
  tests: extend tests on 'extra-portability' warning category

1  2 
ChangeLog
lib/Automake/ChannelDefs.pm
tests/Makefile.in
tests/extra-portability.test

diff --cc ChangeLog
+++ b/ChangeLog
  2011-11-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
+       tests: avoid a spurious failure of 'ltinit.test' MinGW
+       * tests/ltinit.test: Be laxer in grepping configure output, to
+       avoid spurious failures on systems which lack POSIX dynamic
+       linking (e.g., MinGW), or when cross-compiling for such systems.
+       See also commit `v1.11-855-ge9e5d4a'.
+       Report and suggestion from Peter Rosin.
+ 2011-11-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: testsuite is now safe to run with dmake in parallel mode
+       * tests/defs.in: Unset variables DMAKE_CHILD, DMAKE_DEF_PRINTED
+       and DMAKE_MAX_JOBS, which are exported by Solaris dmake when run
+       in parallel mode, and which might confuse make processes spawned
+       by our testsuite.
+ 2011-11-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: fix spurious failures w.r.t. parallel make and colorization
+       * tests/color2.test: Skip the test if the $MAKE program fails to
+       consider the standard output as a tty when spawned by `expect'.
+       This is required for make implementations, like FreeBSD make and
+       Solaris dmake, that redirect the output of recipes to temporary
+       files or pipes when run in parallel mode.  Since we are at it,
+       simplify the detection of a working `expect' program, and throw
+       in other minor simplifications.
+ 2011-11-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: fix spurious failure in 'distcheck-override-infodir.test'
+       * tests/distcheck-override-infodir.test ($required): Add
+       'install-info'.
+ 2011-11-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: avoid another failure of 'uninstall-fail.test' on Solaris
+       * tests/uninstall-fail.test: On Solaris 10, if `/bin/rm' is run
+       with the `-f' option, it doesn't print any error message when
+       failing to remove a file (due to e.g., "Permission denied").
+       Yikes.  Cater to this incompatibility, by relaxing the test when
+       a faulty `rm' is detected.
+ 2011-11-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: various minor tweakings, mostly related to AM_PROG_AR
+       * tests/alloca2.test: Ensure we don't experience a spurious failure
+       due to a missing `AM_PROG_AR' macro or a missing `ar-lib' auxiliary
+       script.
+       * tests/libtool4.test: Likewise.
+       * tests/ldadd.test: Likewise.  Since we are at it, make grepping of
+       automake stderr stricter.
+       * tests/reqd2.test: Likewise.
+       * tests/pr211.test: Ensure automake fails also with `-Wnone', since
+       the error we are testing for is an hard error, not a mere warning.
+       * tests/syntax.test: Likewise, and ensure we don't fail to other
+       errors by removing use of `lib_LTLIBRARIES' in Makefile.am.  Since
+       we are at it, make grepping of automake stderr stricter.
+ 2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       ar-lib: fix configure output for "unrecognized archiver interface"
+       * m4/ar-lib.m4: Ensure that, even when an error is hit while trying
+       to determine the archiver interface kind, the "checking archiver
+       interface" message from configure is properly terminated before
+       an error message is printed, to avoid slightly garbled output.
+       * tests/ar4.test: Enhance.
+       * tests/ar5.test: Likewise.
+ 2011-11-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       warnings: fix buglets for portability warnings
+       * lib/Automake/ChannelDefs.pm (switch_warning): Ensure the
+       correct implications and inter-dependencies between warnings
+       in the categories `portability', `extra-portability' and
+       `recursive-portability' are respected.  Also add detailed
+       explicative comments, and references to the relevant tests.
+       * tests/dollarvar2.test: Update and extend.  Also, remove
+       some unnecessary uses of `--force' option in automake calls.
+       * tests/extra-portability3.test: New test.
+       * tests/Makefile.am (TESTS): Add it.
+ 2011-11-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: extend tests on 'extra-portability' warning category
+       * tests/extra-portability.test: Redefine `$AUTOMAKE' to ensure we
+       have complete control over the automake options.  Extend by using
+       also a setup where no `portability' warning is present (only an
+       `extra-portability' warning is).  Other minor extensions.  Remove
+       some redundant, verbose comments about the expected diagnostic.
++2011-11-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
++
 +      tests: fix broken backport of tests on `extra-portability' warnings
 +      * tests/extra-portability2.test: Ensure all the automake invocations
 +      have the warnings in the `extra-portability' category enabled.
 +      Report by Peter Rosin.
 +
 +2011-11-08  Peter Rosin  <peda@lysator.liu.se>
 +
 +      tests: fix broken backport of AM_PROG_AR tests
 +      * tests/ar-lib3.test: Explicitly request -Wextra-portability
 +      in order to trigger the expected error.
 +      * tests/ar-lib4.test: Likewise.
 +
 +2011-11-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      warnings: 'extra-portability' category is not implied by '-Wall'
 +      This change is only intended for the 1.11.x series.  In automake
 +      1.12, `-Wall' will be meant to enable `-Wextra-portability'.
 +      * lib/Automake/ChannelDefs.pm (switch_warning): Do not enable
 +      extra-portability warnings when `-Wall' is given.  Use ...
 +      ($have_extra_portability ): ... this new global variable.
 +      Add a trailing "1;" to avoid spurious errors upon the importing
 +      of this module.
 +      * tests/extra-portability.test: Update and extend.
 +      * NEWS: Update.
 +
  2011-11-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests: various minor tweakings, mostly related to AM_PROG_AR
@@@ -294,17 -288,37 +294,18 @@@ sub switch_warning ($
    elsif (channel_type ($cat) eq 'warning')
      {
        setup_channel $cat, silent => $has_no;
 -      #
 -      # Handling of portability warnings is trickier.  For relevant tests,
 -      # see `dollarvar2', `extra-portability' and `extra-portability3'.
 -      #
 -      # -Wportability-recursive and -Wno-portability-recursive should not
 -      # have any effect on other 'portability' or 'extra-portability'
 -      # warnings, so there's no need to handle them separately or ad-hoc.
 -      #
 -      if ($cat eq 'extra-portability' && ! $has_no) # -Wextra-portability
 +      setup_channel 'portability-recursive', silent => $has_no
 +        if $cat eq 'portability';
 +      if ($cat eq 'portability' && $has_no)
          {
 -          # -Wextra-portability must enable 'portability' and
 -          # 'portability-recursive' warnings.
 -          setup_channel 'portability', silent => 0;
 -          setup_channel 'portability-recursive', silent => 0;
 +          setup_channel 'extra-portability', silent => 1;
 +          $have_extra_portability = 0;
          }
 -      if ($cat eq 'portability') # -Wportability or -Wno-portability
 +      if ($cat eq 'extra-portability' && ! $has_no)
          {
 -          if ($has_no) # -Wno-portability
 -            {
 -              # -Wno-portability must disable 'extra-portability' and
 -              # 'portability-recursive' warnings.
 -              setup_channel 'portability-recursive', silent => 1;
 -              setup_channel 'extra-portability', silent => 1;
 -            }
 -          else # -Wportability
 -            {
 -              # -Wportability must enable 'portability-recursive'
 -              # warnings.  But it should have no influence over the
 -              # 'extra-portability' warnings.
 -              setup_channel 'portability-recursive', silent => 0;
 -            }
 +          setup_channel 'portability', silent => 0;
++          setup_channel 'portability-recursive', silent => 0;
 +          $have_extra_portability = 1;
          }
      }
    else
Simple merge
@@@ -35,33 -46,34 +46,38 @@@ EXTRA_LIBRARIES = libfoo.
  libfoo_a_SOURCES = sub/foo.c
  END
  
- $ACLOCAL
+ # Sanity check: extra-portability warnings causes the expected error.
+ AUTOMAKE_fails -Wextra-portability
+ grep 'requires.*AM_PROG_AR' stderr
+ # Warnings in extra-portability category are not enabled by default.
+ $AUTOMAKE
  
 -# -Wall enables extra-portability.
 -AUTOMAKE_fails -Wall
 -grep 'requires.*AM_PROG_AR' stderr
 -
 -# Disabling portability disables extra-portability as well.
 -$AUTOMAKE -Wextra-portability -Wno-portability
 -$AUTOMAKE -Wall -Wno-portability
 +# `-Wall' does not enable extra-portability warnings.
 +$AUTOMAKE -Wall -Werror
  
 -#
 -# Now, a setup where also a "simple" portability warning is present.
 -#
 +# Enabling extra-portability works.
 +AUTOMAKE_fails -Wnone -Wextra-portability
 +grep 'requires.*AM_PROG_AR' stderr
 +# Disabling portability disables extra-portability.
 +$AUTOMAKE -Wno-portability -Wall
 +$AUTOMAKE -Wextra-portability -Wno-portability -Wall
  
 -# Per-target flags require the use of AM_PROG_CC_C_O in configure.ac.
  echo libfoo_a_CPPFLAGS = -Dwhatever >> Makefile.am
  
 -# Enabling extra-portability enables portability as well ...
 -AUTOMAKE_fails -Wextra-portability
 +# Enabling extra-portability enables portability.
 +AUTOMAKE_fails -Wnone -Wextra-portability
 +# The expected diagnostic is
 +#    Makefile.am:2: compiling `foo.c' with per-target flags requires `AM_PROG_CC_C_O' in `configure.in'
 +#    .../lib/am/library.am: `libfoo.a': linking libraries using a non-POSIX
 +#    .../lib/am/library.am: archiver requires `AM_PROG_AR' in `configure.in'
 +#    Makefile.am:1:   while processing library `libfoo.a'
  grep 'requires.*AM_PROG_CC_C_O' stderr
  grep 'requires.*AM_PROG_AR' stderr
 -# ... even if it had been previously disabled.
 -AUTOMAKE_fails -Wno-portability -Wextra-portability
 +
 +# `-Wall' does not reset extra portability warnings to their
 +# default (i.e., disabled).
 +AUTOMAKE_fails -Wextra-portability -Wall
  grep 'requires.*AM_PROG_CC_C_O' stderr
  grep 'requires.*AM_PROG_AR' stderr
  
@@@ -73,17 -82,8 +86,14 @@@ AUTOMAKE_fails -Wportability -Wno-extra
  grep 'requires.*AM_PROG_CC_C_O' stderr
  grep 'requires.*AM_PROG_AR' stderr && Exit 1
  
 +# `-Wall' does not set extra portability warnings if they have
 +# been previously disabled.
 +AUTOMAKE_fails -Wno-extra-portability -Wall
 +grep 'requires.*AM_PROG_CC_C_O' stderr
 +grep 'requires.*AM_PROG_AR' stderr && Exit 1
 +
  # Enabling portability does not enable extra-portability.
  AUTOMAKE_fails -Wnone -Wportability
- # The expected diagnostic is
- #    Makefile.am:2: compiling `foo.c' with per-target flags requires `AM_PROG_CC_C_O' in `configure.in'
- #    Makefile.am:1:   while processing library `libfoo.a'
  grep 'requires.*AM_PROG_CC_C_O' stderr
  grep 'requires.*AM_PROG_AR' stderr && Exit 1