Red Hat Bugzilla – Bug 866664
SeaBIOS should build with a cross-compiler
Last modified: 2013-01-09 07:10:10 EST
Currently, qemu in Fedora is not installable because qemu deps qemu-system-x86 which deps the SeaBIOS package. The SeaBIOS binaries do not build on ppc64 due them being designed for x86-based architectures—results in endianess and other x86-centric build issues. Therefore, we'd like to request an exception that we use the prebuilt x86-based SeaBIOS binary and package it to resolve the dependency.
As I said on IRC, you need to start discussion on the Fedora
That may or may not mean that you need to get an exception
from the committee using their trac. However first you need
to start the discussion on the packaging list.
Gaa, stupid Firefox.
This is due to the separation of Koji servers for Fedora. qemu-system-x86 actually requires seabios-bin, which is a noarch package.
But rather than doing this, seabios should be modified to use the cross binutils, similar to what was done e.g. to build SLOF on x86.
(In reply to comment #3)
> This is due to the separation of Koji servers for Fedora. qemu-system-x86
> actually requires seabios-bin, which is a noarch package.
> But rather than doing this, seabios should be modified to use the cross
> binutils, similar to what was done e.g. to build SLOF on x86.
There was some offline discussion prior to this bug being filed. Here's Anthony's quote:
> As I understand it, the QEMU package isn't building on Power for F18.
> This is because of a dependency on SeaBIOS for qemu-system-x86_64.
> SeaBIOS cannot build on PPC (even with cross compilers) because it
> depends on iasl. iasl currently fails spectacularly on a big endian
So not sure if cross compilers will solve the problem today. I'll follow up with getting the packaging exception.
Yup, the problem is that iasl (used to build ACPI tables)
doesn't put any thought into endianness issues. When you use
it on a big-endian (ie. non-Intel) architecture it builds
ACPI tables that have big-endian data, which wouldn't be
readable by the guest OS.
We could fix iasl but it's a giant program, and I have no
idea what the scope of the fix would be. I mean, it may
be trivial, or it may involve auditing every line of code ...
Can you get a generic packaging exception for iasl output? Then we can just package the iasl output as a SOURCE and use it instead of running iasl.
Making the exception generic will be useful because QEMU will soon start shipping the DSDTs instead of SeaBIOS.
Since no one else is going to do this, I am going to
now send a message to the packaging list.
Created attachment 628585 [details]
patch to cross-compile SeaBIOS
This patch seems to work if iasl endianness issues are fixed with the patches from Debian (attachment 628571 [details]).
SeaBIOS is now cross-compiled in both f18 and rawhide. A big-endian-friendly version of iasl (courtesy of Debian) is already in f18 and on its way to rawhide.