------- Additional Comments From ro at techfak dot uni-bielefeld dot de 2005-06-09 23:09 ------- Subject: Re: [4.0/4.1 Regression] Cannot build gnattools on Tru64 UNIX V5.1B
I've done some further debugging and found what's going on: running the failing gnatmake invokation % ../../gnatmake -c -I../rts -I. -I/vol/gnu/src/gcc/gcc-dist/gcc/ada gnatchop --GCC="../../xgcc -B../../ -O2 -g -O2 -mieee -gnatpg -gnata" gnatmake: "gnatchop" not found under truss reveals that with gnatmake from the 3.4 branch, there are several calls to stat() for gnatchop.adb in different directories. With the 4.0 gnatmake, the stat() calls only look for gnatchop (which of course doesn't exist yet). Those calls ultimately come from Osint.Next_Main_File. Running gnatmake under a debugger, I find that in 4.0, neither the case Running_Program is entered nor the if Running_Program = Make then block that does the adding of .adb and .ads. It turns out that Osint.Running_Program = 4 at that point (debugging seems considerably broken on 4.0: with the 3.4 binaries and current CVS gdb, I get symbolic values here, while the 4.0 binaries only give numeric ones), i.e. Unspecified. Running gnatmake again under gdb with a watchpoint on Osint.Running_Program, I find that * for the 3.4 binary, the variable is set only once via Osint.Set_Program (to Osint.Make, as expected) and never touched afterwards, whereas * for the 4.0 binary, the variable is set once in the same place, and later overwritten in osint___elabb (obviously the Osint initialization code), where it is set to 4 (Unspecified) as observed above. So maybe this is an Ada bug after all, not really target specific. Rainer -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18434