[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.

Roger.



More information about the SeaBIOS mailing list