[PATCH] libstdc++: Reduce output of 'make check'

Jonathan Wakely jwakely@redhat.com
Fri Sep 8 12:18:06 GMT 2023


On Fri, 8 Sept 2023 at 13:15, Eric Gallager <egall@gwmail.gwu.edu> wrote:
>
> On Fri, Sep 8, 2023 at 6:32 AM Jonathan Wakely <jwakely@redhat.com> wrote:
> >
> > On Fri, 8 Sept 2023 at 03:16, Eric Gallager <egall@gwmail.gwu.edu> wrote:
> > >
> > > Maybe use $(AM_V_at) instead? That would allow it to be controlled by
> > > the --enable-silent-rules flag to configure, as well as make V=1 vs.
> > > make V=0 too.
> >
> > I see two problems with that. Firstly, nobody uses that configure
> > option, so the net result would be that these 39 lines are still
> > printed for everybody.
> >
> > Secondly, why would anybody ever want this output? Having it
> > configurable (and default to noisy) just doesn't seem helpful.
> >
> > This is the output I'm talking about:
> >
> > make: Entering directory
> > '/home/jwakely/src/gcc/build/x86_64-pc-linux-gnu/libstdc++-v3/testsuite'
> > make  check-DEJAGNU
> > make[1]: Entering directory
> > '/home/jwakely/src/gcc/build/x86_64-pc-linux-gnu/libstdc++-v3/testsuite'
> > Making a new site.exp file...
> > AR="ar --plugin /home/jwakely/src/gcc/build/./gcc/liblto_plugin.so";
> > export AR; \
> > RANLIB="ranlib --plugin
> > /home/jwakely/src/gcc/build/./gcc/liblto_plugin.so"; export RANLIB; \
> > if [ -z "" ] && [ -n "" ]; then \
> >  rm -rf normal-parallel || true; \
> >  mkdir normal-parallel; \
> >  make  check-DEJAGNUnormal1 check-DEJAGNUnormal2 check-DEJAGNUnormal3
> > check-DEJAGNUnormal4 check-DEJAGNUnormal5 check-DEJAGNUnormal6
> > check-DEJAGNUnormal7 c
> > heck-DEJAGNUnormal8 check-DEJAGNUnormal9 check-DEJAGNUnormal10
> > check-DEJAGNUnormal11 check-DEJAGNUnormal12 check-DEJAGNUnormal13
> > check-DEJAGNUnormal14 check
> > -DEJAGNUnormal15 check-DEJAGNUnormal16 check-DEJAGNUnormal17
> > check-DEJAGNUnormal18 check-DEJAGNUnormal19 check-DEJAGNUnormal20
> > check-DEJAGNUnormal21 check-D
> > EJAGNUnormal22 check-DEJAGNUnormal23 check-DEJAGNUnormal24
> > check-DEJAGNUnormal25 check-DEJAGNUnormal26 check-DEJAGNUnormal27
> > check-DEJAGNUnormal28 check-DEJ
> > AGNUnormal29 check-DEJAGNUnormal30 check-DEJAGNUnormal31
> > check-DEJAGNUnormal32 check-DEJAGNUnormal33 check-DEJAGNUnormal34
> > check-DEJAGNUnormal35 check-DEJAG
> > NUnormal36 check-DEJAGNUnormal37 check-DEJAGNUnormal38
> > check-DEJAGNUnormal39 check-DEJAGNUnormal40 check-DEJAGNUnormal41
> > check-DEJAGNUnormal42 check-DEJAGNU
> > normal43 check-DEJAGNUnormal44 check-DEJAGNUnormal45
> > check-DEJAGNUnormal46 check-DEJAGNUnormal47 check-DEJAGNUnormal48
> > check-DEJAGNUnormal49 check-DEJAGNUno
> > rmal50 check-DEJAGNUnormal51 check-DEJAGNUnormal52
> > check-DEJAGNUnormal53 check-DEJAGNUnormal54 check-DEJAGNUnormal55
> > check-DEJAGNUnormal56 check-DEJAGNUnorm
> > al57 check-DEJAGNUnormal58 check-DEJAGNUnormal59 check-DEJAGNUnormal60
> > check-DEJAGNUnormal61 check-DEJAGNUnormal62 check-DEJAGNUnormal63
> > check-DEJAGNUnormal
> > 64 check-DEJAGNUnormal65 check-DEJAGNUnormal66 check-DEJAGNUnormal67
> > check-DEJAGNUnormal68 check-DEJAGNUnormal69 check-DEJAGNUnormal70
> > check-DEJAGNUnormal71
> > check-DEJAGNUnormal72 check-DEJAGNUnormal73 check-DEJAGNUnormal74
> > check-DEJAGNUnormal75 check-DEJAGNUnormal76 check-DEJAGNUnormal77
> > check-DEJAGNUnormal78 c
> > heck-DEJAGNUnormal79 check-DEJAGNUnormal80 check-DEJAGNUnormal81
> > check-DEJAGNUnormal82 check-DEJAGNUnormal83 check-DEJAGNUnormal84
> > check-DEJAGNUnormal85 che
> > ck-DEJAGNUnormal86 check-DEJAGNUnormal87 check-DEJAGNUnormal88
> > check-DEJAGNUnormal89 check-DEJAGNUnormal90 check-DEJAGNUnormal91
> > check-DEJAGNUnormal92 check
> > -DEJAGNUnormal93 check-DEJAGNUnormal94 check-DEJAGNUnormal95
> > check-DEJAGNUnormal96 check-DEJAGNUnormal97 check-DEJAGNUnormal98
> > check-DEJAGNUnormal99 check-D
> > EJAGNUnormal100 check-DEJAGNUnormal101 check-DEJAGNUnormal102
> > check-DEJAGNUnormal103 check-DEJAGNUnormal104 check-DEJAGNUnormal105
> > check-DEJAGNUnormal106 ch
> > eck-DEJAGNUnormal107 check-DEJAGNUnormal108 check-DEJAGNUnormal109
> > check-DEJAGNUnormal110 check-DEJAGNUnormal111 check-DEJAGNUnormal112
> > check-DEJAGNUnormal1
> > 13 check-DEJAGNUnormal114 check-DEJAGNUnormal115
> > check-DEJAGNUnormal116 check-DEJAGNUnormal117 check-DEJAGNUnormal118
> > check-DEJAGNUnormal119 check-DEJAGNUno
> > rmal120 check-DEJAGNUnormal121 check-DEJAGNUnormal122
> > check-DEJAGNUnormal123 check-DEJAGNUnormal124 check-DEJAGNUnormal125
> > check-DEJAGNUnormal126 check-DEJA
> > GNUnormal127 check-DEJAGNUnormal128; \
> >  rm -rf normal-parallel || true; \
> >  for idx in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
> > 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
> > 46 47 48 49 50 51
> > 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
> > 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
> > 98 99 100 101 102
> > 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
> > 120 121 122 123 124 125 126 127 128; do \
> >    if [ -d normal$idx ]; then \
> >      mv -f normal$idx/libstdc++.sum normal$idx/libstdc++.sum.sep; \
> >      mv -f normal$idx/libstdc++.log normal$idx/libstdc++.log.sep; \
> >    fi; \
> >  done; \
> >  /bin/sh /home/jwakely/src/gcc/gcc/libstdc++-v3/testsuite/../../contrib/dg-extract-results.sh
> > \
> >    normal[0-9]*/libstdc++.sum.sep > libstdc++.sum; \
> >  /bin/sh /home/jwakely/src/gcc/gcc/libstdc++-v3/testsuite/../../contrib/dg-extract-results.sh
> > -L \
> >    normal[0-9]*/libstdc++.log.sep > libstdc++.log; \
> >  exit 0; \
> > fi; \
> > srcdir=`CDPATH="${ZSH_VERSION+.}:" && cd
> > /home/jwakely/src/gcc/gcc/libstdc++-v3/testsuite && pwd`; export
> > srcdir; \
> > EXPECT=expect; export EXPECT; \
> > runtest=; \
> > if [ -z "$runtest" ]; then runtest=runtest; fi; \
> > tool=libstdc++; \
> > if [ -n "" ]; then \
> >  if [ -f normal-parallel/finished ]; then rm -rf ""; exit 0; fi; \
> >  GCC_RUNTEST_PARALLELIZE_DIR=`${PWDCMD-pwd}`/normal-parallel; \
> >  export GCC_RUNTEST_PARALLELIZE_DIR; \
> >  cd ""; \
> > fi; \
> > if /bin/sh -c "$runtest --version" > /dev/null 2>&1; then \
> >  $runtest  --tool $tool --srcdir $srcdir \
> >            ; \
> >  if [ -n "" ]; then \
> >    touch $GCC_RUNTEST_PARALLELIZE_DIR/finished; \
> >  fi; \
> > else \
> >  echo "WARNING: could not find \`runtest'" 1>&2; :;\
> > fi
> > WARNING: Couldn't find the global config file.
> > dejagnu - timeout default set to 90s
> > Using /home/jwakely/src/gcc/gcc/libstdc++-v3/testsuite/lib/libstdc++.exp
> > as tool init file.
> > Test run by jwakely on Fri Sep  8 11:27:44 2023
> > Native configuration is x86_64-pc-linux-gnu
> >
> >                === libstdc++ tests ===
> >
> >
> > Everything from the AR= line to the echo "WARNING" line and the "fi"
> > after it would be suppressed with this patch. I don't think making it
> > configurable (and default to still being printed) is useful.
> >
>
> You can change the default by sticking AM_SILENT_RULES([yes]) in
> configure.ac; see the "Silencing `make`" portion of the automake
> documentation:
> https://www.gnu.org/software/automake/manual/html_node/Automake-Silent-Rules.html

That doesn't address the fact that the output is never useful. I don't
want to suppress *all* build output for libstdc++, just those lines
above.

And if you try it you'll see --enable-silent-rules doesn't really help
much for libstdc++, as only half the rules are silenced. All the
libtool compile and libtool link lines are still printed in full, even
with V=0.

So more work would be needed, and it still wouldn't make those lines
from the testsuite useful to anybody, ever.


>
> >
> >
> > >
> > > On Thu, Sep 7, 2023 at 9:32 AM Jonathan Wakely via Gcc-patches
> > > <gcc-patches@gcc.gnu.org> wrote:
> > > >
> > > > Any objections to this change?
> > > >
> > > > -- >8 --
> > > >
> > > > This removes the 39 lines of shell commands that get echoed when
> > > > starting the testsuite. The fact that near the end of that output it
> > > > prints `echo "WARNING: could not find \`runtest'" 1>&2; :;` makes it
> > > > look like that warning is actually being shown the the user.
> > > >
> > > > Suppress echoing the recipe, so that users only see the actual output
> > > > from the testsuite, not the makefile recipe as well.
> > > >
> > > > libstdc++-v3/ChangeLog:
> > > >
> > > >         * testsuite/Makefile.am (check-DEJAGNU): Use @ in recipe.
> > > >         * testsuite/Makefile.in: Regenerate.
> > > > ---
> > > >  libstdc++-v3/testsuite/Makefile.am | 2 +-
> > > >  libstdc++-v3/testsuite/Makefile.in | 2 +-
> > > >  2 files changed, 2 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/libstdc++-v3/testsuite/Makefile.am b/libstdc++-v3/testsuite/Makefile.am
> > > > index 7adc5318192..4cee585fd8e 100644
> > > > --- a/libstdc++-v3/testsuite/Makefile.am
> > > > +++ b/libstdc++-v3/testsuite/Makefile.am
> > > > @@ -117,7 +117,7 @@ $(check_DEJAGNU_normal_targets): check-DEJAGNUnormal%: normal%/site.exp
> > > >
> > > >  # Run the testsuite in normal mode.
> > > >  check-DEJAGNU $(check_DEJAGNU_normal_targets): check-DEJAGNU%: site.exp
> > > > -       $(if $*,@)AR="$(AR)"; export AR; \
> > > > +       @$(if $*,@)AR="$(AR)"; export AR; \
> > > >         RANLIB="$(RANLIB)"; export RANLIB; \
> > > >         if [ -z "$*" ] && [ -n "$(filter -j%, $(MFLAGS))" ]; then \
> > > >           rm -rf normal-parallel || true; \
> > > >
> > >
> >
>



More information about the Libstdc++ mailing list