On Fri, Nov 25, 2022 at 3:09 PM Paul Koning via Gcc <gcc@gcc.gnu.org> wrote: > But in any case, how does that relate to the error messages I got? They > don't seem to have anything to do with missing compilers, but rather with the > use of language features too new for the available (downloadable) Gnat.
Generally speaking, the reason is that with a normal compiler build, where build = host = target, gcc can build itself and then run the newly built self to build the language runtimes. So if you're using gcc 5 to build gcc 12, you're actually not using gcc 5 for all that much. The new gcc 12 is used to build for instance libX. With a cross compiler, it's possible that the build != host, and so you can't use the newly built GCC in your build environment to build the language runtimes. For instance, say your cross compiler is hosted on Windows, but you are building it on Linux. You can't run the newly built gcc 12, so you have to use the original gcc 5 instead. That's why you have to start with a new native compiler, and then use that to build the cross compiler.