[SeaBIOS] Issues building SeaBIOS with gcc > 4.8
Roger Pau Monné
roger.pau at citrix.com
Wed Jul 6 18:06:12 CEST 2016
On Tue, Jul 05, 2016 at 10:32:15AM -0400, Kevin O'Connor wrote:
> On Tue, Jul 05, 2016 at 03:49:34PM +0200, Roger Pau Monné wrote:
> > Hello,
> > I'm seeing the following issue when building SeaBIOS with gcc > 4.8:
> > Compiling whole program out/ccode32flat.o
> > Compiling whole program out/code32seg.o
> > Compiling whole program out/ccode16.o
> > /tmp//ccecsJuF.s: Assembler messages:
> > /tmp//ccecsJuF.s:539: Error: register save offset not a multiple of 8
> > /tmp//ccecsJuF.s:27692: Error: register save offset not a multiple of 8
> > Makefile:154: recipe for target 'out/ccode16.o' failed
> > gmake: *** [out/ccode16.o] Error 1
> > This works fine when using gcc 4.8, but fails in the same way with gcc 5.4.
> > The assembler version used is:
> > GNU assembler version 2.25.1 (x86_64-portbld-freebsd11.0) using BFD version (GNU Binutils) 2.25.1
> > What causes this issue seems to be the usage of the "-m16" gcc flag, which
> > was introduced in gcc 4.9 AFAICT. The following workaround solves the issue,
> > but I would like to know if anyone else has seen this with newer gcc
> > versions, or if the gcc version from FreeBSD ports is broken.
> I normally compile with gcc v5.3.1. SeaBIOS is known to compile on
> gcc v6 also. I guess this is something strange in FreeBSD.
Turns out gcc > 4.8 have a bug in FreeBSD when -m16 is used, sorry for the
noise, I've already sent a patch upstream to try to address this.
More information about the SeaBIOS