> As far as I know, toolchain is built in this order: > > 1. binutils > 2. C compiler > 3. libc
No. That usually only works if you already have the toolchain installed. In which case ordering is irelevant, you can just build whichever component you want to update. A full bootstrap process looks more like: 1) Binutils 2) Whatever bits of compiler are required to produce... 3) libc headers 4) A basic C compiler+libgcc that is sufficient to build... 5) libc 6) A full compiler+runtime, c++, fortran, etc. The exact details of steps 2-4 are rather murky (see also crostool). gcc needs libc headers to build its runtime libraries, and the C library needs a working gcc to build, so you've got a bootstrapping problem. The trick is getting the right set of partial builds/configure options to break this cyclic dependency. Toplevel libgcc actually makes this easier to achieve, though there may still be some work to do. The failures you're seeing probably mean your previous toolchains were misconfigured, and worked mainly by chance. Paul