[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Cross-compilers.



David Woodhouse wrote:
Perhaps we could build all the Fedora cross-toolchains in a loop like
that, but let people take it and do more esoteric targets individually
in Extras.

Sure.  It would be great if core's gcc and binutils made the mesh already.

Binutils doesn't need it. I can build kernels quite happily without.

That's fine if all you want to do is build a kernel, but any package is a candidate for cross compilation.

If it's our own packages then we're already shipping the source, so the
GPL shouldn't be an issue if we repackage them.

This doesn't sound right. We're talking about two different repositories (core vs extras).

I don't actually think we _do_ want to repackage them. If I want to be
able to install the proper i686 acrobat reader packages in to my i686
qemu/gcc sysroot, I want to just use yum -- or at _least_ RPM. I don't
want to have to repackage everything as noarch. We should be able to use
them directly, even if we have to modify rpm a little.

Modifying rpm may be the best long term option. If RPM had a magic incantation like 'rpm -i --sysroot somepackage.mipsel.rpm' that knew to put it under /usr/sysroots/mipsel-linux-gnu that'd be great.

Or we could abolish /usr/include and /usr/lib in favor of sys-roots from the ground-up. Any takers? :-)

I don't want to require it _prior_ to building. That might be OK for
Fedora where we _have_ the sysroot prior to building the compiler, but
when we don't have a pre-existing sysroot, we need to build the compiler
first.

How about seeding the build system with a hand-made sys-root for the first generation? After that you can iterate using previous builds.

See rants elsewhere over the last decade or so about dependencies and
building everything three times :)

Please, no...

You'll never do that until we ban autoconf in packaging. Packages in
_general_ won't cross-compile. We'll always have to have a "native"
environment, although qemu can fake that and your _compiler_ binary can
be a real native binary in the middle of a target-sysroot, so it's nice
and fast. See scratchbox, for example.


Autoconf and cross compilation can work just fine together. That said, there are plenty of auto* tests that are cross-ignorant and need fixing. It's not insurmountable, but it does require every package to play nicely.

I haven't looked at scratchbox before.  Will do that now.

-Brendan (blc redhat com)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]