0

I'm adding a generic-package to Buildroot 2019.02.1. This package (fbi) includes <asm/page.h> in the fbtools.c, but the headers are not available in output/target. Compiling the package causes the following error:

$ make fbi-rebuild
[...]
  CC      fbi.o
  CC      fbtools.o
fbtools.c:24:30: fatal error: asm/page.h: No such file or directory
 #include <asm/page.h>
                              ^
compilation terminated.
[...]

I've added patches to and selected necessary packages for fbi:

$ grep -E '^[^#].*(HEADERS|FBI|JPEG)' .config
 BR2_KERNEL_HEADERS_VERSION=y
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y
 BR2_DEFAULT_KERNEL_HEADERS="4.9.17"
 BR2_PACKAGE_LINUX_HEADERS=y
 BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0=y
 [...]
 BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9=y
 BR2_TOOLCHAIN_HEADERS_AT_LEAST="4.9"
 BR2_PACKAGE_FBI=y
 BR2_PACKAGE_JPEG=y
 BR2_PACKAGE_JPEG_SIMD_SUPPORT=y
 BR2_PACKAGE_LIBJPEG=y
 BR2_PACKAGE_HAS_JPEG=y
 BR2_PACKAGE_PROVIDES_JPEG="libjpeg" 

$ for i in `ls package/fbi/000*`; do echo $i; cat $i | grep -E '^[-+][^-+]'; done
 package/fbi/0001-fix-verion.patch
 -    fprintf(stderr, "fbi version " VERSION
 +    fprintf(stderr, "fbi version 1.32 " 
 package/fbi/0002-fix-makefile.patch
 -       @echo -e "$(make-config-q)" > $@
 +       @echo "$(make-config-q)" > $@

$ find output/ -name page.h
 output/build/linux-headers-4.9.17/fs/nilfs2/page.h
 output/build/linux-headers-4.9.17/include/asm-generic/page.h
 [...]
 output/build/linux-headers-4.9.17/arch/score/include/asm/page.h

The kernel I use (also 4.9.17) is not part of Buildroot, but I think that shouldn't be a problem.

What is the correct way to compile against the kernel headers within Buildroot?

https://www.kraxel.org/releases/fbida/fbi_1.31.tar.gz

Bayou
  • 155
  • 7

1 Answers1

0

It seems impossible to compile against the headers without integrating them into the root file system. I tried to compile fbi out of the Buildroot tree, but this takes too much effort.

I'm trying fbv instead of fbi, because it's already in Buildroot.

Bayou
  • 155
  • 7