[coreboot] coreboot build of seabios payload broken

Peter Stuge peter at stuge.se
Fri May 23 08:05:58 CEST 2014


Kevin O'Connor wrote:
> I've received a few reports of people having problems building seabios
> within the coreboot build system.  In my investigation I've uncovered
> at least two problems:

Thank you for identifying these problems!

I would suggest that we add two simple tests to coreboot to catch
these problems, until the problems can be completely avoided if that
is at all possible.


> 1 - on my machine, (with CONFIG_ANY_TOOLCHAIN=y) I can't build seabios
> from corebooat at all because of the LD definition.  The .xcompile
> file gets created with:
> 
> LD_x86_32:=ld.bfd -b elf32-i386 -melf_i386
> 
> and this gets passed to SeaBIOS as:
> 
> make -C payloads/external/SeaBIOS [...] LD="ld.bfd -b elf32-i386 -melf_i386"
> 
> unfortunately, the seabios build expects the LD variable to be a
> program - not the combination of a program and parameters.  This
> breaks the build.  (This also seems to happen with AS="as --32".)

If you think it's acceptable for SeaBIOS these variables could be
split into two; LD+LDFLAGS, AS+ASFLAGS, etc.


> 2 - others are reporting problems with python3 even on seabios master
> (when using coreboot's build chain).  This is actually a symptom of a
> much larger issue - for some reason section names are being corrupted
> by the tool chain.  Here's a quick test case:
> 
> echo 'int Foo __attribute__((section( ".data.varfseg." __FILE__ "." "123"  )));' > foo.c ; gcc -c foo.c -o foo.o ; objdump -x foo.o | grep varfseg
> 
> this should show section names like ".data.varfseg.foo.c.123", but on
> impacted machines the section names are actually showing up as
> ".data.varfseg.".  This truncation of the section names results in
> SeaBIOS not being able to weed out unneeded content from the final
> binary, and it results in the seabios build getting confused on build
> options.

We should test for this as early as possible; ie. in buildgcc.

Great if SeaBIOS tests for it too.


//Peter



More information about the coreboot mailing list