[coreboot] coreboot build of seabios payload broken

Kevin O'Connor kevin at koconnor.net
Fri May 23 00:29:25 CEST 2014


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:


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".)


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.


-Kevin



More information about the coreboot mailing list