Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Feb 2016 14:10:48 -0800
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        arch@FreeBSD.org
Subject:   Build -j target tags and command output
Message-ID:  <56D0CD68.606@FreeBSD.org>

next in thread | raw e-mail | index | archive | help
> --- all_subdir_lib/clang/libclangstaticanalyzercheckers ---
> --- CastToStructChecker.o ---
> --- all_subdir_lib/libmagic ---
> --- readcdf.o ---
> --- all_subdir_lib/clang ---
> /usr/local/bin/ccache c++    -O2 -pipe -fcolor-diagnostics -I/root/git/=
freebsd/lib/clang/libclangstaticanalyzercheckers/../../../contrib/llvm/in=
clude -I/root/git/freebsd/lib/clang/libclangstaticanalyzercheckers/../../=
../contrib/llvm/tools/clang/include -I/root/git/freebsd/lib/clang/libclan=
gstaticanalyzercheckers/../../../contrib/llvm/tools/clang/lib/StaticAnaly=
z
> er/Checkers -I. -I/root/git/freebsd/lib/clang/libclangstaticanalyzerche=
ckers/../../../contrib/llvm/../../lib/clang/include -DLLVM_ON_UNIX -DLLVM=
_ON_FREEBSD -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DCLANG_ENABLE=
_ARCMT -DCLANG_ENABLE_STATIC_ANALYZER -fno-strict-aliasing -DLLVM_DEFAULT=
_TARGET_TRIPLE=3D\"x86_64-unknown-freebsd11.0\" -DLLVM_HOST_TRIPLE=3D\"x8=
6_64-
> unknown-freebsd11.0\" -DDEFAULT_SYSROOT=3D\"\" -MD -MP -MF.depend.CastT=
oStructChecker.o -MTCastToStructChecker.o -fstack-protector-strong -Qunus=
ed-arguments  -std=3Dc++11 -fno-exceptions -fno-rtti -stdlib=3Dlibc++ -Wn=
o-c++11-extensions -c /root/git/freebsd/lib/clang/libclangstaticanalyzerc=
heckers/../../../contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Cas=
tToStru
> ctChecker.cpp -o CastToStructChecker.o

I'm looking for opinions on whether we should keep or remove the --
lines.  Recent changes to make SUBDIR_PARALLEL more wide-spread has made
these much more noticeable and spammy.  There are cases where they are
recursive, if something N levels deep in a SUBDIR_PARALLEL N-make-level
build prints something, every parent make prints the target for that
subdir.  I've tried to mitigate that some but it's a lost cause.  bmake
purposely prints targets if they have no output so that you know it did
try to build the target.  That really hurts with bsd.subdir.mk
traversals though.  There's also a rare case where the --- lines get
interspersed or printed on the command line and really mess things up.

Removing them would yield potentially hard-to-debug failures since the
failed command could be anywhere.  At least the 'make stopped' error
that follows would print the directory.  There is an interesting feature
in the meta mode build that will keep a log and print a more detailed
error message on failures so you really know which directory failed and
what environment it had, but it can be spammy as well since it prints
the same error information on the 'another make hit an error, dying' case=
s.

Longterm, I think a merge between DIRDEPS_BUILD output and the NetBSD
build output makes sense and removes these --- lines entirely.  It would
hide the command output but we could optionally show it with a VERBOSE
flag, or using meta mode (the very light version which only requires the
CMD ran in a .meta file) we could use the meta file to see what command
failed.

Some examples:

NetBSD (prototyped into FreeBSD):

> ~/git/freebsd/bin/sh # NO_SUBDIR=3Dyes make MAKEVERBOSE=3D1
>     compile  sh/mknodes.o
>     compile  sh/mksyntax.o
>     compile  sh/alias.o
>     compile  sh/arith_yacc.o
>     compile  sh/arith_yylex.o
>     compile  sh/cd.o
>     compile  sh/echo.o
>     compile  sh/error.o
>     compile  sh/eval.o
>     compile  sh/exec.o
>     compile  sh/expand.o
>     compile  sh/histedit.o
>     compile  sh/input.o
>     compile  sh/jobs.o
>     compile  sh/kill.o
>     compile  sh/mail.o
>     compile  sh/main.o
>     compile  sh/memalloc.o
>     compile  sh/miscbltin.o
>     compile  sh/mystring.o
>     compile  sh/options.o
>     compile  sh/output.o
>     compile  sh/parser.o
>     compile  sh/printf.o
>     compile  sh/redir.o
>     compile  sh/show.o
>     compile  sh/test.o
>     compile  sh/trap.o
>     compile  sh/var.o
>     compile  sh/builtins.o
>     compile  sh/nodes.o
>     compile  sh/syntax.o
>        link  sh/sh.full
>      create  sh/sh.debug
>      create  sh/sh

DIRDEPS_BUILD output:

> ~/git/freebsd # WITH_DIRDEPS_BUILD=3Dyes make -C bin/sh -j15
...
> --- /root/git/freebsd/bin/sh.amd64,amd64 1334 ---
> @ 1456524548 [2016-02-26 14:09:08] Checking /root/git/freebsd/bin/sh fo=
r amd64,amd64 ...
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/.dirdep
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/builtins.c
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/mknodes.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/mksyntax.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/token.h
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/stage_incs
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/mksyntax
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/mknodes
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/syntax.c
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/nodes.c
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/alias.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/arith_yacc.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/arith_yylex.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/cd.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/echo.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/error.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/eval.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/exec.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/expand.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/histedit.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/input.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/jobs.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/kill.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/mail.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/main.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/memalloc.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/miscbltin.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/mystring.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/options.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/output.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/parser.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/printf.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/redir.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/show.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/test.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/trap.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/var.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/builtins.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/nodes.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/syntax.o
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/sh.1.gz
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/sh.full
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/sh.debug
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/sh
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/stage_files.man1
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/stage_as.prog
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/stage_libs
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/stage_symlinks.ma=
n1
> Building /usr/obj/root/git/freebsd/amd64.amd64/bin/sh/stage_links.man1
> Checking /root/git/freebsd/bin/sh/Makefile.depend: .dirdep.meta builtin=
s.c.meta mknodes.o.meta mksyntax.o.meta token.h.meta stage_incs.meta mksy=
ntax.meta mknodes.meta
> @ 1456524550 [2016-02-26 14:09:10] Finished bin/sh.amd64,amd64 seconds=3D=
2 meta=3D49  created=3D49


--=20
Regards,
Bryan Drewery



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?56D0CD68.606>