Am 16.10.2012 16:19, schrieb Richard W.M. Jones:
>
> [Bug:
https://bugzilla.redhat.com/show_bug.cgi?id=866664]
>
> Here's the situation, since the bug doesn't explain it well.
>
> (1) qemu can run any architecture on any other architecture, using
> software emulation. eg. It can run x86_64 guest operating systems on
> top of ppc64 hosts (albeit not at full speed).
>
> (2) In order to run guests, you have to provide a BIOS (or some sort
> of other boot ROM), since most guests wouldn't be able to boot without
> BIOS services. This applies for all guests, but of particular
> interest to us are i686/x86_64 guests.
>
> (3) SeaBIOS is a free, open source PC BIOS implementation. It is what
> we use to provide services to i686/x86_64 PC guests.
>
> (4) Although qemu itself bundles some binary BIOSes, in Fedora we have
> chosen to recompile these from source. We now (on i686/x86_64)
> compile or cross-compile all ROMs from source.
>
> (5) 'seabios-bin' is the name of the RPM package that contains the
> SeaBIOS ROMs. I have no idea why (historical?) this package has
> '-bin' in the name, but the important point is that it is NOT a
> binary-only package. It is built from source.
>
> (6) In order to compile SeaBIOS you need a program called 'iasl' (part
> of the
ACPICA.org project). This program is needed to compile the
> ACPI tables which are an integral part of the ROM data that is needed
> for i686/x86_64 guests to boot.
>
> (7) Unfortunately the iasl program, which runs fine on little-endian
> platforms, has endianness issues. Such that when you run it on a
> ppc64 host it produces big-endian ACPI tables, which are of course
> completely broken. 'iasl' itself is a very large program, and I do
> not know the scope of the fix for this issue -- it may be trivial, or
> it may require auditing every line of code.
>
> Therefore:
>
> We would like a packaging exception which would allow us to import the
> seabios-bin package (built on little-endian) into the ppc & ppc64
> buildroots.
I'm all for it. We wouldn't ship a binary without sources, just one that
got compiled on a x86 Fedora builder and got repackaged for PPC.
As you can see in bugzillas 866664, 856856 and 865013, fixing iasl might
become a major effort and the other option of dropping x86 support in
the PPC qemu doesn't seem the right thing to do here.
Alternatively, it would also be good to get a generic exception that
would let us distribute pre-compiled .dsl files as RPM sources. I'll
try to get ppc & ppc64 to use a cross-compiled SeaBIOS.
One advantage of this is that upstream we're going to move the
iasl-compiled files from SeaBIOS to QEMU. Such a generic exception
would cause less problems once this actually happens.
Paolo