Missing dependency in Ada build?

Alan Lawrence alan.lawrence@arm.com
Wed Oct 7 13:50:00 GMT 2015


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



More information about the Gcc mailing list