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

Reply via email to