This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fix broken 3.4.x Ada bootstrap when 3.4 is used
- From: Laurent GUERBY <laurent at guerby dot net>
- To: Arnaud Charlet <charlet at ACT-Europe dot FR>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Tue, 31 Aug 2004 19:33:02 +0200
- Subject: Fix broken 3.4.x Ada bootstrap when 3.4 is used
- References: <10408301022.AA24170@vlsi1.ultra.nyu.edu> <1093863754.17130.27.camel@pc.site> <20040830090622.GD30497@sunsite.ms.mff.cuni.cz> <1093888894.17130.45.camel@pc.site> <20040830162459.GF30497@sunsite.ms.mff.cuni.cz> <1093896175.17130.92.camel@pc.site> <20040831105958.A9522@dublin.act-europe.fr>
> That being said, if this change can make more people able to test Ada
> that would be a good reason to put this change in, although I'd rather
> only do a minimal change (e.g. only do a gnatmake -f -a on the first file to
> be built, and not do a -f -a on others, since they should use the newly
> compiled files anyway) with proper documentation on why this peculiar
> change is done.
Changing the makefile to do the build only once seems more
complicated and error-prone to me (limited Makefile hacking capability
:).
I tested the following patch on 3.4.2-20040829 using 3.3.3 and 3.4.1 to
bootstrap with no c,ada regression on x86-linux and x86_64-linux
(4 bootstraps plus tests in total).
If it's not in 3.4.2 - probably too late - we'll have to add something
to the release notes.
Laurent
2004-07-07 Laurent GUERBY <laurent@guerby.net>
* Make-lang.in (bldtools): force rebuild of
runtime with no optimizations for bltools to workaround
a code generation bug in 3.4.2.
--- Make-lang.in.orig 2004-08-30 23:32:01.000000000 +0200
+++ Make-lang.in 2004-08-30 23:32:10.000000000 +0200
@@ -988,27 +988,32 @@
ada/treeprs.ads : ada/treeprs.adt ada/sinfo.ads ada/xtreeprs.adb
-$(MKDIR) ada/bldtools
$(CP) $^ ada/bldtools
- (cd ada/bldtools; gnatmake -q xtreeprs ; ./xtreeprs ../treeprs.ads )
+ (cd ada/bldtools; gnatmake -q -a -f xtreeprs ; \
+ ./xtreeprs ../treeprs.ads )
ada/einfo.h : ada/einfo.ads ada/einfo.adb ada/xeinfo.adb
-$(MKDIR) ada/bldtools
$(CP) $^ ada/bldtools
- (cd ada/bldtools; gnatmake -q xeinfo ; ./xeinfo ../einfo.h )
+ (cd ada/bldtools; gnatmake -q -a -f xeinfo ; \
+ ./xeinfo ../einfo.h )
ada/sinfo.h : ada/sinfo.ads ada/xsinfo.adb
-$(MKDIR) ada/bldtools
$(CP) $^ ada/bldtools
- (cd ada/bldtools; gnatmake -q xsinfo ; ./xsinfo ../sinfo.h )
+ (cd ada/bldtools; gnatmake -q -a -f xsinfo ; \
+ ./xsinfo ../sinfo.h )
ada/nmake.adb : ada/sinfo.ads ada/nmake.adt ada/xnmake.adb
-$(MKDIR) ada/bldtools
$(CP) $^ ada/bldtools
- (cd ada/bldtools; gnatmake -q xnmake ; ./xnmake -b ../nmake.adb )
+ (cd ada/bldtools; gnatmake -q -a -f xnmake ; \
+ ./xnmake -b ../nmake.adb )
ada/nmake.ads : ada/sinfo.ads ada/nmake.adt ada/xnmake.adb ada/nmake.adb
-$(MKDIR) ada/bldtools
$(CP) $^ ada/bldtools
- (cd ada/bldtools; gnatmake -q xnmake ; ./xnmake -s ../nmake.ads )
+ (cd ada/bldtools; gnatmake -q -a -f xnmake ; \
+ ./xnmake -s ../nmake.ads )
update-sources : ada/treeprs.ads ada/einfo.h ada/sinfo.h ada/nmake.adb \
ada/nmake.ads