Date: Mon, 15 Dec 1997 02:24:04 -0800 (PST) From: asami@cs.berkeley.edu (Satoshi Asami) To: bde@zeta.org.au Cc: jkh@FreeBSD.ORG, nnd@nnd.itfs.nsk.su, stable@FreeBSD.ORG Subject: Re: make buildworld -j2 problems Message-ID: <199712151024.CAA14443@baloon.mimi.com> In-Reply-To: <199712140945.UAA11602@godzilla.zeta.org.au> (message from Bruce Evans on Sun, 14 Dec 1997 20:45:05 %2B1100)
next in thread | previous in thread | raw e-mail | index | archive | help
* .ORDER is needed to prevent `make' from executing two copies of the rule
* concurrently.
Oh, I see.
* Removing the `scanner.o: tokdefs.h' line in rev.1.13 was a mistake.
* scanner.o really does depend on tokdefs.h, and the dependency is not
* otherwise given in the Makefile. It worked in the non-parallel case
* because grammar.c is before scanner.c in ${SRCS}. It works for `make
* depend' because tokdefs.h is in ${SRCS} (and also because grammar.c is
* in ${SRCS} and building grammar.c builds tokdefs.h; perhaps tokdefs.h
* doesn't need to be in ${SRCS} because of this). Of course, it works for
* `make' after `make depend', but `make depend' should not be necessary
* in clean obj directories.
Umm. Well it's not me that made that change. So what do you propose,
revert it back?
* See sh/Makefile for more instructive examples. There, created files
* like tokdefs.h are included in more than one .c file. This makes it
* more likely for parallel makes to fail unless lots of dependencies
* are listed explicitly.
Eek. That's one hairy beast. I'll see if I can digest that one....
* I think it was also mistake to override the default rule for creating
* grammar.c from grammar.y. The default rule creates y.tab.h as a side
* effect, and I don't see any additional problems for creating tokdefs.h by
* mv'ing y.tab.h as in the old rule. Then .ORDER would not be required.
* There might be problems with concurrent yaccs clobbering each other's
* y.tab.[ch], but only one yacc is necessary here (since there is only
* one yacc source file), and multiple ones would have to be handled more
* carefully anyway (e.g., using .ORDER or yacc -b or yacc -o).
Um, so should be back it out?
Satoshi
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712151024.CAA14443>
