This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: native cc re-used after 3-stage now
H . J . Lu wrote:
> Thanks for taking it up. In fact, you don't need parallel build on
> a SMP machine to see the bug. Since there are no dependencies on
> s-libi77, s-libf77, s-libu77 and s-libe77, with "make -j 100000" in
> libf2c, GNU make will start to build s-libi77, s-libf77, s-libu77 and
> s-libe77 at the same time along with other targets. Since there are
> no rules for them, the build will fail.
Well, the build will fail if s-lib[ifu]77 are *absent*, because there
are no rules to build them. They are supposed to be present when you
hit the target (from .../egcs/libf2c/Makefile.in):
$(LIBG2C): s-libi77 s-libf77 s-libu77 s-libe77
because the sequence of events is as follows:
all: all-unilib
$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO="all-unilib"
all-unilib: i77 f77 u77 s-libe77
$(MAKE) $(FLAGS_TO_PASS) $(LIBG2C)
i77:
cd libI77; $(MAKE) $(FLAGS_TO_PASS) all
f77:
cd libF77; $(MAKE) $(FLAGS_TO_PASS) all
u77:
cd libU77; $(MAKE) $(FLAGS_TO_PASS) all
s-libe77: f2cext.c
blah...blah...blah
and it is the responsibility of targets [ifu]77 to generate the stamp
files s-lib[ifu]77.
So by the time $MAKE ... $(LIBG2C) is called, [ifu]77 and s-libe77 have
been satisfied, which means that s-lib[ifu]77 and s-libe77 should be
present.
PS: Parallel builds are really fun ! I managed to get the load on my
laptop as high as 14.x while building three frontends 4-way parallel :-)
Fortunately, the build just managed to miss my swap file limit by about
8 % ...
--
Toon Moene - mailto:toon@moene.indiv.nluug.nl - phoneto: +31 346 214290
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
GNU Fortran 95: http://g95.sourceforge.net/ (under construction)