David Woodhouse wrote:
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?
Notice that I have spends weeks on fixing exactly the problems, with creating a
cross compiling gcc targeting linux with glibc, described here to build an
cross arm toolchain for the gp2x handheld for Fedora.
Please check:
http://people.atrpms.net/~hdegoede/
For all my SRPMS / SPECS for this, with regards to solving the above metioned
problems esp arm-gp2x-linux-gcc.spec is interesting. I think I've got this one
nailed, so before other people start pouring time into this please first check
my work, doing this for other linux-glibc targets, using Fedora sources instead
of the open2x sources I'm using should be mostly identical. I'll gladly answer
any questions.
Reviews would be welcome to, see:
http://fedoraproject.org/wiki/SIGs/Embedded
For links to all the review tickets.
Regards,
Hans
--
fedora-devel-list mailing list
fedora-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-devel-list