[coreboot] FILO fails to build via coreboot

Thomas Gstädtner thomas at gstaedtner.net
Tue Oct 11 16:28:47 CEST 2011

Hi everyone,

FILO (0.6 and SVN tested) fails to build as a coreboot payload with
the following error:

    MAKE       FILO HEAD
Found Libpayload
  CC      build/i386/context.o
  CC      build/i386/segment.o
  CC      build/i386/timer.o
  CC      build/i386/sys_info.o
  CC      build/i386/linux_load.o
  CC      build/main/filo.o
  CC      build/main/strtox.o
  CC      build/main/elfload.o
  CC      build/main/ipchecksum.o
  CC      build/main/grub/grub.o
  CC      build/main/grub/builtins.o
warning: #warning "FIND not implemented yet."
  CC      build/main/grub/cmdline.o
  CC      build/main/grub/char_io.o
  CC      build/main/grub/completions.o
  CC      build/main/grub/md5.o
  CC      build/fs/blockdev.o
  CC      build/fs/vfs.o
  CC      build/fs/eltorito.o
  CC      build/fs/fsys_ext2fs.o
  CC      build/fs/fsys_fat.o
  CC      build/fs/fsys_reiserfs.o
  CC      build/fs/fsys_iso9660.o
  CC      build/fs/fsys_cbfs.o
  CC      build/fs/cbfs.o
error: conflicting types for ‘cbfs_find_file’
note: previous declaration of ‘cbfs_find_file’ was here
make[2]: *** [/home/thomasg/sources/coreboot/payloads/external/FILO/filo/build/fs/cbfs.o]
Error 1
make[1]: *** [filo] Error 2
make: *** [filo] Error 2

The reason is, that cbfs_find_file is defined in coreboot as "void
*cbfs_find_file(const char *name, int type)"
while FILO defines it as "struct cbfs_stage *cbfs_find_file(const char
*name, int type)".
As far as I can tell it works either way as the void is cast to the
right type where used, but I assume it got changed somewhere for a
reason, I just don't know which way it should be.

I could provide a patch, but I suggest that someone who actually knows
the code take a look.

If you need any more information, let me know.


More information about the coreboot mailing list