Bug 866664

Summary: SeaBIOS should build with a cross-compiler
Product: [Fedora] Fedora Reporter: Brent Baude <bbaude>
Component: seabiosAssignee: Fedora Virtualization Maintainers <virt-maint>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 18CC: aliguori, amit.shah, berrange, cfergeau, crobinso, dwmw2, itamar, knoel, pbonzini, rjones, scottt.tw, virt-maint
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-10-17 07:50:38 EDT Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Bug Depends On:    
Bug Blocks: 846990    
Attachments:
Description Flags
patch to cross-compile SeaBIOS none

Description Brent Baude 2012-10-15 16:12:32 EDT
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 16:45:51 EDT
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 16:46:09 EDT
Gaa, stupid Firefox.
Comment 3 Paolo Bonzini 2012-10-16 08:23:22 EDT
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 09:19:00 EDT
(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 09:25:15 EDT
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 09:47:59 EDT
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 10:05:35 EDT
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 03:40:05 EDT
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 07:50:38 EDT
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.