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>