This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
3.2 PATCH: Ada parallel bootstrap fixes
- From: Rainer Orth <ro at TechFak dot Uni-Bielefeld dot DE>
- To: gcc-patches at gcc dot gnu dot org
- Date: Tue, 14 May 2002 12:26:04 +0200 (MEST)
- Subject: 3.2 PATCH: Ada parallel bootstrap fixes
This patch allows a parallel bootstrap on sparc-sun-solaris2.8 with ada
included (make -j4 on a 2-processor E250) to succeed.
It consists of three parts:
* It restores the dependencies of gnat1 etc. on $(CONFIG_H) and prefix.o,
otherwise insn-constants.h and insn-flags.h may not exist before they are
used. An equivalent patch by Richard Henderson has been lost in the last
ACT merge and not been restored yet ;-(
* ada.stage? needs to depend on stage?-start: without this, moving the
ada/* files to stage?/ada may fail
mv ada/*.o ada/*.ali ada/b_*.c stage1/ada
mv: when moving multiple files, last argument must be a directory
make[2]: [ada.stage1] Error 1 (ignored)
mv ada/stamp-* stage1/ada
This causes a bootstrap failure later if the bootstrap GNAT is an older
version (like 3.13p), since gnatbind will complain about incompatible
versions.
* b_gnatb.c needs to depend on interfac.o:
../stage1/gnatbind -C -I- -I. -I/vol/gnu/src/gcc/gcc-dist/gcc/ada -o b_gnatb.c gnatbind.ali
error: "interfac.ali" not found, "interfac.ads" must be compiled
make[3]: *** [b_gnatb.c] Error 5
I'm not really sure where this dependency on interfac.ali comes from.
Successfully bootstrapped on sparc-sun-solaris2.8. While this is certainly
not sufficient to fully support parallel bootstraps with ada included,
it's a necessary first step.
Ok for mainline?
Rainer
Tue May 14 02:08:47 2002 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
Restore $(CONFIG_H) and prefix.o dependencies.
(ada.stage[1-4]): Depend on stage?-start.
* Makefile.in (b_gnatb.c): Depend on interfac.o.
Index: Make-lang.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/Make-lang.in,v
retrieving revision 1.8
diff -u -p -r1.8 Make-lang.in
--- Make-lang.in 8 Mar 2002 20:10:30 -0000 1.8
+++ Make-lang.in 14 May 2002 10:18:54 -0000
@@ -86,12 +86,12 @@ gnat1$(exeext): prefix.o attribs.o $(LIB
$(MAKE) -C ada $(SUBDIR_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
../gnat1$(exeext)
-gnatbind$(exeext): force
+gnatbind$(exeext): $(CONFIG_H) prefix.o force
$(MAKE) -C ada $(SUBDIR_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
../gnatbind$(exeext)
# use target-gcc target-gnatmake target-gnatbind target-gnatlink
-gnattools: $(GCC_PARTS) force
+gnattools: $(GCC_PARTS) $(CONFIG_H) prefix.o force
$(MAKE) -C ada $(FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
ADA_INCLUDES="-I- -I../rts"\
CC="../../xgcc -B../../" STAGE_PREFIX=../../ gnattools1
@@ -563,16 +563,16 @@ ada.maintainer-clean:
# Stage hooks:
# The main makefile has already created stage?/ada
-ada.stage1:
+ada.stage1: stage1-start
-$(MV) ada/*$(objext) ada/*.ali ada/b_*.c stage1/ada
-$(MV) ada/stamp-* stage1/ada
-ada.stage2:
+ada.stage2: stage2-start
-$(MV) ada/*$(objext) ada/*.ali ada/b_*.c stage2/ada
-$(MV) ada/stamp-* stage2/ada
-ada.stage3:
+ada.stage3: stage3-start
-$(MV) ada/*$(objext) ada/*.ali ada/b_*.c stage3/ada
-$(MV) ada/stamp-* stage3/ada
-ada.stage4:
+ada.stage4: stage4-start
-$(MV) ada/*$(objext) ada/*.ali ada/b_*.c stage4/ada
-$(MV) ada/stamp-* stage4/ada
Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/Makefile.in,v
retrieving revision 1.29
diff -u -p -r1.29 Makefile.in
--- Makefile.in 2 May 2002 15:07:08 -0000 1.29
+++ Makefile.in 14 May 2002 10:18:54 -0000
@@ -2109,7 +2109,7 @@ b_gnat1.c : $(GNAT1_ADA_OBJS)
$(GNATBIND) $(ADA_INCLUDES) -o b_gnat1.c -n gnat1drv.ali
b_gnat1.o : b_gnat1.c
-b_gnatb.c : $(GNATBIND_OBJS)
+b_gnatb.c : $(GNATBIND_OBJS) interfac.o
$(GNATBIND) $(ADA_INCLUDES) -o b_gnatb.c gnatbind.ali
b_gnatb.o : b_gnatb.c