Of course in this case HOST_WIDE_INT is 64. I think we do guarantee that, or cross compilation would be in big trouble.
No, it wouldn't be in big trouble: it didn't used to be 64 and it wasn't in big trouble. The issue isn't if it *works*, but if the two compilers do the identical thing with the same source and that's not something we guarantee. The point is that 32->64 is a cross-compiler and it's only meaningful to talk about "bootstrapping" a native compiler. Comparing: cd gcc make stage1-bubble (*) make cd gcc <<< debug >>> <<< debug >>> make bootstrap cd .. make gnatlib_and_tools make I'm confused as to exactly what the "make" on the right side builds. Of course I forgot about the upper-level "make" before the "check", but it's not needed before "check-ada": for that all I want is "make gnatlib_and_tools", but you don't show the equivalent for that. (**) Thanks to other Ada build improvements by Nathanael Nerode, this subsumes both "make bootstrap" within the gcc directory plus "make gnatlib_and_tools". But I don't *want* to use the libada mechanism: I need to use the present mechanism where the Ada library and tools are built within the gcc/ directory. It's indeed nice to have the libada mechanism as an option when a full build is done, but it's not what's wanted during a development cycle.