From owner-freebsd-arch@freebsd.org Fri Feb 26 22:10:52 2016 Return-Path: Delivered-To: freebsd-arch@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7CA09AB6980 for ; Fri, 26 Feb 2016 22:10:52 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 69B4D1DBC for ; Fri, 26 Feb 2016 22:10:52 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: by mailman.ysv.freebsd.org (Postfix) id 65E57AB697F; Fri, 26 Feb 2016 22:10:52 +0000 (UTC) Delivered-To: arch@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 65745AB697E for ; Fri, 26 Feb 2016 22:10:52 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 5756B1DBA for ; Fri, 26 Feb 2016 22:10:52 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id 47E471A95 for ; Fri, 26 Feb 2016 22:10:52 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id AE3F514150 for ; Fri, 26 Feb 2016 22:10:51 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id drvqXynmEWO5 for ; Fri, 26 Feb 2016 22:10:48 +0000 (UTC) To: arch@FreeBSD.org DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com 2A62F14149 From: Bryan Drewery Subject: Build -j target tags and command output X-Enigmail-Draft-Status: N1110 Organization: FreeBSD Message-ID: <56D0CD68.606@FreeBSD.org> Date: Fri, 26 Feb 2016 14:10:48 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Feb 2016 22:10:52 -0000 > --- 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