David O'Brien wrote: > On Sun, Jan 25, 2009 at 10:27:51PM +0000, Kris Kennaway wrote: >> David O'Brien wrote: >>> On Sat, Jan 24, 2009 at 04:01:04PM +0000, Kris Kennaway wrote: >>>> After a fresh buildworld on a system last built in November: >>>> hydra2# make buildworld -j8 -s >>>> --- upgrade_checks --- >>>> --- make --- >>>> [...] >>>> >>>> Why the extra-spammy output now? >>> It's the intended operation of pmake/bmake from 4.4BSD. One reason I >>> believe we haven't trusted 'make -j' in the past is it can be very hard >>> to unwind the output when there is a build error. It turns out this is >>> because dg in the past neutered them (presumably he didn't understand >>> their value). After having used a bmake with the stock behavior I've >>> seen how valuable the markers are. >> I consider the change to be exposing debug-level information that is too >> noisy to be on by default. > > What is "debug-level" information? As in the snippet I posted, all of the internal make targets that are executed are now being exposed to the user. make buildworld -j -s is especially unclean. > I really don't consider this to be "debug information" any more than the > invocation of the compiler. Nor the output from things like 'make obj': > ===> share/info (obj) > ===> lib (obj) > ===> lib/csu/amd64 (obj) > ===> lib/libc (obj) > ..snip.. > > > With the markers it is easy to write scripts that de-multiplex a build > log, giving output roughly what a non-// run would be. This makes it > easy to extract errors from build logs. > > >> Also I'm concerned that you've broken things >> that expect 'make -s' to actually be silent. > > 'make -s' : relates to commands executed, not making the output "quiet". >>From the man page: > Do not echo any commands as they are executed. Equivalent to > specifying `_at_' before each command line in the makefile. > > If something expects 'make -s' to be minimal output it is broken and > non-portable as its assuming '-s' does more than SUSv3 requires of it. > > -s > Do not write makefile command lines or touch messages (see -t) to > standard output before executing. This mode shall be the same as if > the special target .SILENT were specified without prerequisites. > > .SILENT > Prerequisites of this special target are targets themselves; this > shall cause commands associated with them not to be written to the > standard output before they are executed. Subsequent occurrences of > .SILENT shall add to the list of targets with silent commands. If no > prerequisites are specified, make shall behave as if the -s option > had been specified and no commands or touch messages associated with > any target shall be written to standard output. > > > 'make -Q' (or the special target .POSIX:) can be used to quiet the > output from 'make -j'. > > To see just how silent things in our world are I tried > '(cd /usr/src ; make -Q -s -j8 world)', which gives output such as: > ===> lib/libdwarf (obj,depend,all,install) > ===> cddl/usr.bin/ctfconvert (obj,depend,all,install) > ===> cddl/usr.bin/ctfmerge (obj,depend,all,install) > ===> games/fortune/strfile (obj,depend,all,install) > ===> gnu/usr.bin/gperf (obj,depend,all,install) > ===> gnu/usr.bin/gperf/doc (obj) > ===> gnu/usr.bin/gperf/doc (depend) > ===> gnu/usr.bin/gperf/doc (all) > ===> gnu/usr.bin/gperf/doc (install) > ===> gnu/usr.bin/groff/tmac (obj,depend,all,install) > > I then configured a GENERIC and ran > '(cd ../../GENERIC ; make -j8 -s -Q)', which gives output such as: > ===> aic7xxx (obj) > ===> aic7xxx/aicasm (obj) > ===> aic7xxx/ahc (obj) > ===> aic7xxx/ahc/ahc_eisa (obj) > ./aicasm: 880 instructions used > ./aicasm: 880 instructions used > ./aicasm: 880 instructions used > ./aicasm: 826 instructions used > ./aicasm: 826 instructions used > ./aicasm: 826 instructions used > ===> aic7xxx/ahc/ahc_isa (obj) > ===> aic7xxx/ahc/ahc_pci (obj) > ===> aic7xxx/ahd (obj) > > which also isn't very silent. > > Wouldn't this behavior of our mk files also break things that expect > 'make -s' to be silent? I'm thinking of custom makefiles that capture the output and post-process it, which will now have extra text inserted into the output along with the output that is expected to be there. > Do you have a test case I could ponder? Maybe -s should imply -Q? But > it looks like there is really more work to be done for -s to really be > silent. I think -s should either imply -Q or -Q should just go away. KrisReceived on Sun Jan 25 2009 - 22:29:45 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:41 UTC