restrict.ads:145:07: "SPARK_05" is undefined (more references follow) gnatmake: "/home/rth/work/gcc/git-4.9/gcc/ada/ali-util.adb" compilation error make[3]: *** [gnatmake-re] Error 4 make[3]: Leaving directory `/home/rth/work/gcc/bld-arm/gcc/ada/tools' make[2]: *** [gnattools-cross] Error 2 make[2]: Leaving directory `/home/rth/work/gcc/bld-arm/gnattools' make[1]: *** [all-gnattools] Error 2 make[1]: Leaving directory `/home/rth/work/gcc/bld-arm' make: *** [all] Error 2 While this specific case is x86_64 cross arm, it happens with several other cross-compilation targets as well.
You need a matching (built with same sources) native first to build a cross, I suspect that's the issue here.
While that does allow me to proceed further, I think you're dismissing an actual problem somewhere. If gnat 4.8.2 can compile gnat 4.9.0 for native, then I do not understand why it can't compile 4.9.0 for cross. It seems like you've got a search path problem somewhere.
The build of GNAT cross is designed to rely on a matching native, to simplify the set up, so this is really as designed here, and not just a 'search path problem'. The coupling between the Ada runtime and the Ada compiler is very strong, and trying to support this combination would simply lead to lots of complexity, hence the choice of not trying to address this combination, as per the documentation. So: this is as designed and as documented. Arno
> The build of GNAT cross is designed to rely on a matching native, to > simplify the > set up, so this is really as designed here, and not just a 'search path > problem'. More specifically, the gnattools must be compiled by the same version of the compiler; for native, this doesn't depend on the base compiler, since the compiler is bootstrapped but, for cross, the base compiler must be the same version.
Ah, now that's a good answer. Thanks, Eric.