Fedora and Cross Compiling

David Woodhouse dwmw2 at infradead.org
Sat Jun 9 08:20:14 UTC 2007


On Fri, 2007-06-08 at 13:56 -0600, Brendan Conoboy wrote:
> Building a cross binutils requires kernel headers for the target 
> architecture.  Building gcc requires kernel headers and glibc.  There 
> are scripts to solve the initial chicken/egg problem of where to get 
> that glibc for a new arch.  At some point in the future gcc might not 
> require glibc to build, but we aren't there yet.

Before we get to actually cross-compiling something for release, it
would be good to get cross-compilers into Fedora.

Making a cross-binutils package isn't hard; it's a relatively
modification to our existing binutils package to make it build for
multiple %targets.

Making a cross-gcc package which targets linux-elf is harder, because of
the evil recursive dependencies to which you refer above. It would be
good if we could get that working though.

Unfortunately the scripts to which you refer just 'solve' the problem by
throwing everything together into one huge lump and building gcc, then
glibc, then rebuilding gcc again. That's not really very useful for us
when we want the compiler and glibc to be entirely separate packages --
and in fact glibc would be a .$TARGET.rpm to be installed into the
sysroot, while the compiler is a native package.

I haven't looked at this for a while, but IIRC we can build gcc and
libgcc.a directly, using 'only' header files which can be provided in
advance. The problem is that we have to dynamically link libgcc.so with
libc.so? We don't actually need a _real_ libc.so for that though, do we?
We could just make a dummy DSO with the functions we want, and link
against that? If we do that, what else still has recursive dependencies?

-- 
dwmw2




More information about the fedora-devel-list mailing list