svn commit: r187132 - head/usr.bin/make

Dmitry Marakasov amdmi3 at amdmi3.ru
Fri Jan 30 06:55:37 PST 2009


* David O'Brien (obrien at freebsd.org) wrote:

> I'm sorry I disagree.  You're complaining about something that is
> a feature of FreeBSD 1.x, 2.0 - 3.0, 4.4BSD, all NetBSD versions,
> all OpenBSD versions, Sprite, and the Open Group's Open Development
> Environment make.

Nice. Well I've been using FreeBSD since 4.7, and I don't believe I've
seen this once.

> Looking at my CSRG archive for usr.bin/make/job.c, all the back to:
> ----------------------------
> revision 5.1
> date: 1990/03/11 15:27:28;  author: bostic;  state: Exp;
> Initial revision
> ----------------------------
> 
> So I'm not sure how it violates POLA for a BSD user.

Not `BSD user', but just `user'. We can't take somethink that was
used back in FreBSD 3.0 as common and expected thing. By least
astonishment I mean:

- I do not expect to see difference between plain make and parallel
  make.
- I do not expect extra messages
- I do not expect behaviour change compared to previous version

Remember, make is not only used in FreeBSD kernel, but also in ports
(I know -j is not widely used there, but I believe it will someday)
and by users themselves. Common knowledge is that make does echo
commands executed by default. Then command's stdout/stderr may follow.
But there are NO extra messages by default.

> They are quite valuable when you have to unwind a broken parallel build.
> 
> The UNIX way is also not hiding information.  For folks reporting
> build problems, it is valuable to be able to triag their log rather
> than continuously telling folks to re-run their build non -j.
> 
> If you want "silence is golden" then all the multitude of lines of
> compiler invocation must really bug you.  Perhaps we should have the
> quiet out put of the ncftp3 build where every complication takes only
> 1 line:
> 
>     Compiling DStrCat.so:                                     [OK]
>     Compiling DStrFree.so:                                    [OK]
>     Compiling Dynscpy.so:                                     [OK]
>     Compiling Strncpy.so:                                     [OK]
>     Compiling strtokc.so:                                     [OK]
>     ..snip..

Have they modified make to display these? I doubt. I agree that
such logs are more readable, but it should be done in a way that
- does not affect third parties
- still is more customizable and verbose than --- $TARGETNAME ---

That is, change sys.mk:

.c:
        ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.IMPSRC}

.c:
.if defined (KERNEL_BUILDING) || defined (WORLD_BUILDING) # or how's that checked
	@echo "CC	${.TARGET}"
.endif
        ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.IMPSRC}

so it's only conditional for system compilation.

-- 
Dmitry Marakasov   .   55B5 0596 FF1E 8D84 5F56  9510 D35A 80DD F9D2 F77D
amdmi3 at amdmi3.ru  ..:  jabber: amdmi3 at jabber.ru    http://www.amdmi3.ru


More information about the svn-src-head mailing list