Bug 866664 - SeaBIOS should build with a cross-compiler
Summary: SeaBIOS should build with a cross-compiler
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: seabios
Version: 18
Hardware: All
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Fedora Virtualization Maintainers
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F18Betappc
TreeView+ depends on / blocked
 
Reported: 2012-10-15 20:12 UTC by Brent Baude
Modified: 2013-01-09 12:10 UTC (History)
12 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-10-17 11:50:38 UTC


Attachments (Terms of Use)
patch to cross-compile SeaBIOS (2.51 KB, patch)
2012-10-17 07:40 UTC, Paolo Bonzini
no flags Details | Diff

Description Brent Baude 2012-10-15 20:12:32 UTC
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.

Comment 1 Richard W.M. Jones 2012-10-15 20:45:51 UTC
As I said on IRC, you need to start discussion on the Fedora
packaging list:

https://lists.fedoraproject.org/mailman/listinfo/packaging

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.

Comment 2 Richard W.M. Jones 2012-10-15 20:46:09 UTC
Gaa, stupid Firefox.

Comment 3 Paolo Bonzini 2012-10-16 12:23:22 UTC
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.

Comment 4 Cole Robinson 2012-10-16 13:19:00 UTC
(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
> host.

So not sure if cross compilers will solve the problem today. I'll follow up with getting the packaging exception.

Comment 5 Richard W.M. Jones 2012-10-16 13:25:15 UTC
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 ...

Comment 6 Paolo Bonzini 2012-10-16 13:47:59 UTC
Cool! :)

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.

Comment 7 Richard W.M. Jones 2012-10-16 14:05:35 UTC
Since no one else is going to do this, I am going to
now send a message to the packaging list.

Comment 9 Paolo Bonzini 2012-10-17 07:40:05 UTC
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]).

Comment 10 Paolo Bonzini 2012-10-17 11:50:38 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.