Subject: Re: bug#12184: GNU Automake 1.12.2 - 4 tests FAIL on Solaris 10 Sparc

From: Dennis Clarke <[email-masked]>
Date: Sun, 12 Aug 2012 20:08:11 +0000 (GMT)

> On 08/12/2012 08:59 PM, Dennis Clarke wrote:
> > 
> > Wow .. things just got a LOT worse here.  After nearly 7 hours : 
> > 
> > ============================================================================
> > Testsuite summary for GNU Automake 1.12.2
> > ============================================================================
> > # TOTAL: 2730
> > # PASS:  2445
> > # SKIP:  217
> > # XFAIL: 50
> > # FAIL:  17
> > # XPASS: 0
> > # ERROR: 1
> > 
> > This is just, staggering. 
> > 
> > I am really trying to figure out what could be in the environment 
> that 
> > is the cause of these multitude of failures. 
> > 
> 
> My guess is that your grep (in /usr/local/bin/ggrep ) is busted.  
> First clue:
> 
>     FAIL: t/confsub
>     ===============
>     ...
>     + /usr/local/bin/ggrep -F -v 'cd $(top_builddir)'
>     Binary file subdir/Makefile.in matches
> 
> Huh?  How on earth is grep thinking that Automake has generated a 
> binary file?

yeah, that is just plain wrong. What really annoys me is that grep-2.13 built fine and passed all of its testsuite. 

I am at a point where I may have to rm -rf /usr/local and start over from square zero with clean builds and clean tools. 

Really I am only doing this because I need Apache APR and HTTP to be up to date, latest and greatest and 64-bit all the way. 

There are a pile of dependencies. 

I am sure you know what I mean. 

> 
> 
> Another example:
> 
>     FAIL: t/parallel-tests-fork-bomb
>     ================================
>     ...
>     + env TESTS=test-suite.test make -e check
>     + st=1
>     + cat output
>     make  check-TESTS
>     make: Warning: Infinite loop: Target `test-suite.log' depends on itself
>     Current working directory /usr/local/build/automake-1.12.2_sparcv9_001/t/parallel-tests-fork-bomb.dir
>      mkdir rec-0.d
>     make: Warning: Infinite loop: Target `test-suite.log' depends on itself
>     Current working directory /usr/local/build/automake-1.12.2_sparcv9_001/t/parallel-tests-fork-bomb.dir
>      mkdir rec-0.d
>     mkdir: Failed to make directory "rec-0.d"; File exists
>      mkdir rec-1.d
>     fatal: making test-suite.log: possible infinite recursion detected
>     fatal: making test-suite.log: failed to create test-suite.trs
>     fatal: making test-suite.log: failed to create test-suite.log
>     *** Error code 1
>     ...
> 
> and so far so good, because the setup in that test is explicitly meant
> to elicit such error messages from make; but then we have:
> 
>     ...
>     + /usr/local/bin/ggrep -E -i 'depend.* on itself' output \
>        | /usr/local/bin/ggrep -F test-suite.log
>     + continue
>     + test no = yes
>     + _am_exit 1
> 
> which is just wrong, because we've seen that the file 'output' contains
> the string "Infinite loop: Target `test-suite.log' depends on itself",
> which should be matched by the grep commands above.
> 
> 
> Later, once again, ggrep mistakes a simple text file for a binary one:
> 
>     FAIL: t/tap-ambiguous-directive
>     ===============================
>     ...
>     + cat
>     + /usr/local/bin/ggrep -F ': all.test' stdout
>     + cat exp
>     PASS: all.test 1 # foo SKIP
>     FAIL: all.test 2 # bar TODO
>     PASS: all.test 3 # :SKIP
>     FAIL: all.test 4 # :TODO
>     SKIP: all.test 5 # SKIP SKIP
>     XFAIL: all.test 6 # TODO TODO
>     + cat got
>     Binary file stdout matches
>     ...
> 
> All the other failures seem similar to this last one.
> 
> 
> > [SNIP]
> >
> > In fact there really isn't anything there that would be harmful. 
> >
> No in the compiler :-)  But GNU grep is busted on your system IMHO.

  lovely :-(

I think I should be able to kill it and simply remove the bits that 
it affects.  Thankfully I keep an audit log of every file that gets
"installed" ( read copied into place ) in /usr/local thus : 

$  cat fidlist | grep -v "drwx" | awk '{ print $3 " " $8 " " $9 " " $10 " " $11 }' 
-rw-r--r-- Aug 12 09:01 ./lib/charset.alias
-rwxr-xr-x Aug 12 09:02 ./bin/gegrep
-rwxr-xr-x Aug 12 09:02 ./bin/ggrep
-rwxr-xr-x Aug 12 09:02 ./bin/gfgrep
-rw-r--r-- Aug 12 09:02 ./share/man/man1/gfgrep.1
-rw-r--r-- Aug 12 09:02 ./share/man/man1/gegrep.1
-rw-r--r-- Aug 12 09:02 ./share/man/man1/ggrep.1
-rw-r--r-- Aug 12 09:01 ./share/locale/ro/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/it/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/ca/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/sr/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/zh_TW/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/sl/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/eo/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/be/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/sk/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/tr/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/zh_CN/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/da/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/uk/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/vi/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/de/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/ja/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/th/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/el/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/pt/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/ko/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/eu/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/fi/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/sv/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/ru/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/id/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/cs/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/ky/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/lt/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/he/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/af/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/fr/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/pt_BR/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/nl/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/nb/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/ga/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/bg/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/pa/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/et/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/hr/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/hu/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/pl/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/es/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:01 ./share/locale/gl/LC_MESSAGES/grep.mo
-rw-r--r-- Aug 12 09:02 ./share/info/grep.info

So I will kill off those binaries and edit /usr/local/lib/charset.alias to remove any reference to grep. 

> > I have a lot of processor cores here ( 128 of them ) and if I can 
> run 
> > gmake -j 8 check to speed things up I can get results in an hour. 
> >
> Great!
> 
> > Any suggestions at all ?
> >
> You might try this:
> 
>   $ gmake check -j8 FGREP='/usr/xpg4/bin/grep -F' 
> EGREP='/usr/xpg4/bin/grep -E'
> 
> and see if/how things improve.

I will do ALL of the above right away and let you know, hopefully in an hour or less.

Dennis 

ps: you Sir, are awesome