Parallel build on SMP is even more broken.
H . J . Lu
hjl@lucon.org
Wed Sep 6 10:58:00 GMT 2000
On Wed, Sep 06, 2000 at 10:28:56AM -0700, Mike Stump wrote:
> > Date: Wed, 6 Sep 2000 08:51:41 -0700
> > From: "H . J . Lu" <hjl@lucon.org>
>
> > It won't work with any parallel build since "make -j 4 bootstrap-lean"
> > will start stage_a, stage_b, stage_c and stage_d at the same time. Do
> > I have any hope for parallel build in gcc?
>
> If the maintainers would insist that any change to any makefile or
> fragment there of, would be tested by a clean make -j4 bootstrap, we
> could solve most of the problem. They obviously don't do that.
> Please consider not allowing Make changes from people that aren't
> known to be parallel make people, without such testing.
>
The parallel build has been broken way too often.
BTW, this patch seems to work for me. But I now got
Bootstrap comparison failure!
*.o differs
make[2]: *** [compare-lean] Error 1
H.J.
----
2000-09-06 H.J. Lu (hjl@gnu.org)
* Makefile.in (stage_b): Depend on stage_a.
(stage_c): Depend on stage_b.
(stage_d): Depend on stage_c.
(stage_e): Depend on stage_d.
(stage_f): Depend on stage_e.
(bootstrap-lean_c): Remove clean_s1.
(bootstrap-lean_f): Remove clean_s2.
(bootstrap2-lean_e): Likewise.
--- gcc/Makefile.in.parallel Wed Sep 6 09:31:21 2000
+++ gcc/Makefile.in Wed Sep 6 09:44:30 2000
@@ -2778,7 +2778,7 @@ stage_a:
+$(MAKE) CC="$(CC)" libdir=$(libdir) LANGUAGES="$(BOOT_LANGUAGES)" LANG_LIB2FUNCS=
touch stage_a
-stage_b:
+stage_b: stage_a
$(MAKE) stage1
touch stage_b
@@ -2787,20 +2787,20 @@ stage_b:
# To prevent `make install' from compiling alloca.o and then relinking cc1
# because alloca.o is newer, we permit these recursive makes to compile
# alloca.o. Then cc1 is newer, so it won't have to be relinked.
-stage_c:
+stage_c: stage_b
+$(MAKE) CC="stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" CFLAGS="$(BOOT_CFLAGS)" WARN_CFLAGS="$(WARN2_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) STAGE_PREFIX=stage1/ LANGUAGES="$(LANGUAGES)"
touch stage_c
-stage_d:
+stage_d: stage_c
+$(MAKE) stage2
touch stage_d
-stage_e:
+stage_e: stage_d
+$(MAKE) CC="stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" CFLAGS="$(BOOT_CFLAGS)" WARN_CFLAGS="$(WARN2_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) STAGE_PREFIX=stage2/ LANGUAGES="$(LANGUAGES)"
touch stage_e
# For bootstrap4:
-stage_f:
+stage_f: stage_e
+$(MAKE) CC="stage3/xgcc$(exeext) -B$(build_tooldir)/bin/ -Bstage3/" CFLAGS="$(WARN_CFLAGS) $(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) STAGE_PREFIX=stage3/ LANGUAGES="$(LANGUAGES)"
touch stage_f
@@ -2826,10 +2826,13 @@ bootstrap: force bootstrap_e
bootstrap-lean_a: stage_a
bootstrap-lean_b: bootstrap-lean_a stage_b
-bootstrap-lean_c: bootstrap-lean_b clean_s1
+bootstrap-lean_c: bootstrap-lean_b
+ -cd stage1; rm -f $(VOL_FILES)
bootstrap-lean_d: bootstrap-lean_c stage_c
bootstrap-lean_e: bootstrap-lean_d stage_d
-bootstrap-lean_f: bootstrap-lean_e clean_s2
+bootstrap-lean_f: bootstrap-lean_e
+ -rm -rf stage1
+ -cd stage2; rm -f $(VOL_FILES)
bootstrap-lean_g: bootstrap-lean_f stage_e
bootstrap-lean: force bootstrap-lean_f
@@ -2840,7 +2843,9 @@ bootstrap2: force bootstrap2_e
bootstrap2-lean_c: stage_c
bootstrap2-lean_d: bootstrap2-lean_c stage_d
-bootstrap2-lean_e: bootstrap2-lean_d clean_s2
+bootstrap2-lean_e: bootstrap2-lean_d
+ -rm -rf stage1
+ -cd stage2; rm -f $(VOL_FILES)
bootstrap2-lean_f: bootstrap2-lean_e stage_e
bootstrap2-lean: force bootstrap2-lean_f
More information about the Gcc-bugs
mailing list