r163773 doesn't want to bootstrap with Ada because of dependency problems. I think I've tracked it down to ultimately '-I-' not working as described. The symptom during make is while building gnattools in gcc/ada/tools:
error: "make.adb" must be recompiled ("a-except.ads" has been modified) error: "ali.adb" must be recompiled ("a-except.ads" has been modified) error: "output.adb" must be recompiled ("a-except.ads" has been modified) (and many more about a-except.ads being out-of-date) This is because there are conflicting entries for a-except.ads (and for Richi also a-strunb.ads) in the different .ali files. In a-except.ali: D a-except.ads 20090806060045 34786013 But for instance in make.ali: D a-except.ads 20090419230738 d4161513 Clearly two different files. This is because compiling a-except.adb uses the file from ../rts/a-except.ads which in turn is a symlink to a-except-2005.ads. But compiling make.adb from the same directory uses not that symlink but the copy in $srcdir/ada/a-except.ads. Can be easily seen with strace. From inside the builddir: % cd gcc/ada/tools % strace ../../gnat1 -I- -I ../rts -I . \ -I /matz/gcc/svn/real-trunk/gcc/gcc/ada -gnatwa -dumpbase \ a-except.adb -auxbase-strip \ a-except.o -O2 -O1 -Wextra -Wall -Wwrite-strings -Wstrict-prototypes \ -Wmissing-prototypes -fno-inline -fno-toplevel-reorder -g -gnatpg -gnata \ -g -mtune=generic -march=x86-64 -gnatO a-except.o ../rts/a-except.adb 2>&1 | grep a-except.ads stat("../rts/a-except.ads", {st_mode=S_IFREG|0644, st_size=17275, ...}) = 0 stat("../rts/a-except.ads", {st_mode=S_IFREG|0644, st_size=17275, ...}) = 0 open("../rts/a-except.ads", O_RDONLY) = 4 % ls -l ../rts/a-except.ads lrwxrwxrwx 1 matz suse 54 2010-09-02 15:20 ../rts/a-except.ads -> /matz/gcc/svn/real-trunk/gcc/gcc/ada/a-except-2005.ads whereas: % ../../gnat1 -I- -I../rts -I . -I /matz/gcc/svn/real-trunk/gcc/gcc/ada \ -gnatwa -quiet -dumpbase make.adb -auxbase-strip \ make.o -O2 -Wextra -Wall -Wwrite-strings -Wstrict-prototypes \ -Wmissing-prototypes -g -gnatpg -gnata -mtune=generic -march=x86-64 -gnatO \ make.o /matz/gcc/svn/real-trunk/gcc/gcc/ada/make.adb -o bla.s 2>&1 | grep a-except.ads stat("/matz/gcc/svn/real-trunk/gcc/gcc/ada/a-except.ads", {st_mode=S_IFREG|0644, st_size=15580, ...}) = 0 stat("/matz/gcc/svn/real-trunk/gcc/gcc/ada/a-except.ads", {st_mode=S_IFREG|0644, st_size=15580, ...}) = 0 open("/matz/gcc/svn/real-trunk/gcc/gcc/ada/a-except.ads", O_RDONLY) = 4 So, when compiling make.adb it uses the a-except.ads file from the sourcedir of make.adb. This is contrary to the documentation of '-I-' which is used here for a reason I guess. -- Summary: Ada bootstrap broken Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: matz at gcc dot gnu dot org GCC host triplet: x86_64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45499