I've been erratically seeing my Ada builds (bootstrap or even with --disable-bootstrap) on an arm-none-linux-gnueabihf system, with errors like this:

g++ -fno-PIE -c -DIN_GCC_FRONTEND -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common -DHAVE_CONFIG_H -I. -Iada -I../../gcc/gcc -I../../gcc/gcc/ada -I../../gcc/gcc/../include -I../../gcc/gcc/../libcpp/include -I/home/alalaw01/boot_f800d24b/./gmp -I/home/alalaw01/gcc/gmp -I/home/alalaw01/boot_f800d24b/./mpfr -I/home/alalaw01/gcc/mpfr -I/home/alalaw01/gcc/mpc/src -I../../gcc/gcc/../libdecnumber -I../../gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I../../gcc/gcc/../libbacktrace -I/home/alalaw01/boot_f800d24b/./isl/include -I/home/alalaw01/gcc/isl/include -o ada/trans.o -MT ada/trans.o -MMD -MP -MF ada/.deps/trans.TPo ../../gcc/gcc/ada/gcc-interface/trans.c ../../gcc/gcc/ada/gcc-interface/trans.c:67:19: fatal error: sinfo.h: No such file or directory
 #include "sinfo.h"
                   ^
compilation terminated.

(and similarly on a bunch of other files).

However, other times builds under "identical" conditions succeed. If I try a single-threaded build (make -j1), I find it sometimes hangs on this line:

(cd ada/bldtools/sinfo; gnatmake -q xsinfo ; ./xsinfo sinfo.h)

which produces output:
=====
Check for field name consistency
     OK

Check for function consistency
     OK

Check for missing functions
     OK

Check for set procedure consistency
     OK

Check for missing set procedures
     OK

Check pragma Inlines are all for existing subprograms
     OK

Check no pragma Inlines were omitted
     OK

Check references in functions in body
     OK

Check for missing functions in body
     OK

Check Set procedures in body
     OK

Check for missing set procedures in body
     OK

All tests completed successfully, no errors detected
=====
...but then sits forever at 100% of the CPU. Looking at build/gcc/ada/bldtools/sinfo/sinfo.h, the file has been partially written (but not flushed). In a successful build, that step terminates (no further terminal output), the file is flushed, and next comes
mv -f ada/bldtools/sinfo/sinfo.h ada/sinfo.h
from where the g++ steps pick it up.

So it looks like there are two problems here:
(1) xsinfo not terminating;
(2) a missing dependency, that the g++ steps should depend upon the step producing sinfo.h (i.e. the mv that comes after problem (1))

I'm going to look at (1), but I'm hoping someone more familiar with the Ada build system might be able to help with regards to (2)....?

Thanks for any help,
Alan

Reply via email to