On Sunday 08 June 2008 16:27, Paul Brook wrote: > > 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.
Thanks. I added --disable-decimal-float --disable-libgomp to configure. Just --disable-decimal-float threw a warning that libgomp needs threading. Why it didn't complain before I have no idea. Then, running "make all-target-libgcc" built them, but I finally settled for just "make" - it didn't error out. Then, I have to do "make install" instead of "make install-gcc" in order for these files to be copied to install tree. Whew. Cross-compiling continues to be a bit of black magic. -- vda