Correct configure magic for building a MIPS cross compiler

Alex Bennee kernel-hacker@bennee.com
Tue Dec 4 14:12:00 GMT 2007


On Tue, 2007-12-04 at 05:24 -0800, Brian Dessent wrote:
> Alex Bennee wrote:
> 
> <snip>
>
> Philosophically there seems to be a divide as to which route to take. 
> Personally I think if you're targeting a common system (like linux) then
> you're better off taking a sysroot from an existing system (i.e.
> unpacking a distro's packages) because they are guaranteed to be tested,
> stable, and correct -- even better if you plan to use that distro on
> your actual target hardware eventually because you know there won't be
> any hidden ABI gotchas.

I'd like to build everything from scratch (and document the process). My
plan was along the lines of:

* Build Cross Binutils
* Build Cross GCC (for kernel building)
* Build a MIPS Linux kernel 
* Build a libc/newlib (TBD) - based on the user space headers of the
kernel
* Build a Cross GCC (for MIPS userspace)
* Build a MIPS userspace

Somewhere in there I'll be building a MIPS emulator as well, probably
QEMU.

> > Also should libmudflap be needed for building kernels?
> 
> If your only intent for this cross compiler is to build linux kernels,
> and that is all, then you don't have to worry about any of this.  The
> kernel is standalone, so it doesn't matter if you don't have a libc
> yet.

I assume I can use the kernel compiler to build the libs so I can build
the full userspace compiler?

>   You can --disable-libmudflap and any other target libraries that
> require link tests.  One thing you may run into is libgcc, which cannot
> be disabled as it's always required (except for kernels.)  You can
> however bypass building it by using "make all-gcc" instead of "make". 
> The all-gcc target means just build the compiler itself, don't build gcc
> plus target libraries.  (There are similarly prefixed versions of all
> makefile targets.)  

Ok, thanks I shall give this approach a go.

-- 
Alex, homepage: http://www.bennee.com/~alex/
Mais espalhado que espirro em farofa.



More information about the Gcc-help mailing list