This is the mail archive of the
mailing list for the GCC project.
Missing dependency in Ada build?
- From: Alan Lawrence <alan dot lawrence at arm dot com>
- To: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Wed, 7 Oct 2015 14:49:57 +0100
- Subject: Missing dependency in Ada build?
- Authentication-results: sourceware.org; auth=none
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
-o ada/trans.o -MT ada/trans.o -MMD -MP -MF ada/.deps/trans.TPo
../../gcc/gcc/ada/gcc-interface/trans.c:67:19: fatal error: sinfo.h: No such
file or directory
(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
Check for function consistency
Check for missing functions
Check for set procedure consistency
Check for missing set procedures
Check pragma Inlines are all for existing subprograms
Check no pragma Inlines were omitted
Check references in functions in body
Check for missing functions in body
Check Set procedures in body
Check for missing set procedures in body
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,