On 02/19/16 16:38, Kevin O'Connor wrote:
On Thu, Feb 18, 2016 at 05:49:39PM +0200, XJDHDR
I am currently trying to compile Seabios for Arch Linux ARM and I've
encountered an error during the compilation
SeaBIOS implements an x86 legacy BIOS. As such, it requires an x86
compiler. So, you need to either compile on an x86 machine or setup
and use an x86 cross compilation toolchain.
Thank you for the response Kevin. Correct me if I'm wrong but won't
x86 binaries not work on an ARM system as ARM processors don't
I am attempting to get QEMU compiled and working on my ARM system
and SeaBIOS is a dependency for QEMU, hence my need to have the
former compiled for ARM. Do you know if QEMU on ARM is okay with
SeaBIOS' binaries being x86? If so, I think this will make things a
lot easier for me.
QEMU uses SeaBIOS when it emulates an x86 machine. SeaBIOS is always
compiled with an x86 compiler.
To repeat the same thing, just in a different coating:
SeaBIOS is always built with an x86 compiler -- if you are on a non-x86
build host, then you either need a cross compiler to build it, or a
working virtual machine that has (emulated) x86 architecture, and build
SeaBIOS within it natively.
Once you have it built, it is usually packaged up (for QEMU's purposes)
as a "noarch" package -- installable on any kind of host. That's because
you never run SeaBIOS natively on the host. On the host, the SeaBIOS
binaries are only *data*.
QEMU loads the SeaBIOS binary (+ the SeaVGABIOS oprom) from the host
data files, if it emulates or virtualizes an x86 target. SeaBIOS runs
within the guest.
Note, if you don't build qemu-system-i386 / qemu-system-x86_64 from
QEMU, only qemu-system-arm / qemu-system-aarch64, then you won't need
SeaBIOS at all. The packaging of QEMU might not reflect this on your
distro, but that's a packaging problem then.