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