[Letux-kernel] Compile failure on Debian bullseye
H. Nikolaus Schaller
hns at goldelico.com
Wed Sep 15 15:35:20 CEST 2021
Hi Stefan,
> Am 15.09.2021 um 14:07 schrieb Stefan Leichter <sle85276 at gmx.de>:
>
> Hello Nikolaus,
>
> after the OS upgrade from Debian buster to Debian bullseye the build of letux-kernel fails with:
>
> make -f /home/sle/letux-kernel/scripts/Makefile.build obj=scripts/dtc
> gcc -Wp,-MD,scripts/dtc/.yamltree.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -I /home/sle/letux-kernel/scripts/dtc/libfdt -I ./scripts/dtc -c -o scripts/dtc/yamltree.o /home/sle/letux-kernel/scripts/dtc/yamltree.c
> /home/sle/letux-kernel/scripts/dtc/yamltree.c:9:10: fatal error: yaml.h: Datei oder Verzeichnis nicht gefunden
> 9 | #include <yaml.h>
> | ^~~~~~~~
> compilation terminated.
>
> Removing the backslash in scripts/dtc/Makefile in the line:
>
> ifeq ($(shell sh -c 'echo "\#include <yaml.h>" | ${HOSTCC} -E - 2>/dev/null >&2 && echo yes'),)
>
> fixes the problem for Debian bullseye, but breaks the build in Debian buster. My current assumptions is that the make utility itself behaves differently for the different OS versions (buster: GNU Make 4.2.1; bullseye: GNU Make 4.3).
Hm. For me it looks more as if gcc does not find yaml.h and not a make error.
Especially the \#include has been (properly) replaced by #include in the error message.
Removing the backslash may simply make the ifeq fail. Or helps the make command not think that a comment starts.
Maybe the dev library must be reinstalled? Or some search path has changed?
https://packages.debian.org/bullseye/libyaml-dev
This yaml.h isn't part of the kernel tree but the build system.
It should be in /usr/include/yaml.h
The patched line you found above is from an attempt to check if the compiler
can find yaml.h - and (unlike the upstream version) to assume that a toolchain
comes with pkg-config.
I think we have removed that from newer kernels and I have added a fake pkg-config
script that knows what the kernel is looking for...
So you should probably git revert caaaec7d2977ac. If it works I can include that
in the next letux upgrades.
> Do you have any idea how to resolve the problem?
Not yet... I am currently in the middle of expanding my cross-toolchains
to mimick Debian jessie, stretch, buster, bullseye etc. compile environments.
Currently I am fixing glibc for buster and bullseye isn't done yet :)
But from that I know that version dependencies can be a nightmare.
BR,
Nikolaus
More information about the Letux-kernel
mailing list