[solved] Kernel 5.15 failing to compile for x86_64

Tried using a build server with Almalinux 8.5 and openSUSE Tumbleweed, both give the same error of "missing libelf.h". Fresh clones from today's master. Has anyone else encountered this yet? Yes, I know 5.15 is still a testing kernel for x86. I am trying to test it.

matt@buildbox:~/openwrt> make V=s
make[2]: Entering directory '/home/matt/openwrt/scripts/config'
make[2]: 'conf' is up to date.
make[2]: Leaving directory '/home/matt/openwrt/scripts/config'
make[1]: Entering directory '/home/matt/openwrt'
make[2]: Entering directory '/home/matt/openwrt'
make[3]: Entering directory '/home/matt/openwrt/target/linux'
make[4]: Entering directory '/home/matt/openwrt/target/linux/x86'
rm -f /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/localversion
/home/matt/openwrt/scripts/kconfig.pl  + + /home/matt/openwrt/target/linux/generic/config-5.15 /home/matt/openwrt/target/linux/x86/config-5.15 /home/matt/o
awk '/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}' /home/matt/openwrt/.config >> /home/matt/openwrt/build_dir/target-x86_64_musl
echo "# CONFIG_KALLSYMS_EXTRA_PASS is not set" >> /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/.config.target
echo "# CONFIG_KALLSYMS_ALL is not set" >> /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/.config.target
echo "CONFIG_KALLSYMS_UNCOMPRESSED=y" >> /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/.config.target
/home/matt/openwrt/scripts/package-metadata.pl kconfig /home/matt/openwrt/tmp/.packageinfo /home/matt/openwrt/.config 5.15 > /home/matt/openwrt/build_dir/t
/home/matt/openwrt/scripts/kconfig.pl 'm+' '+' /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/.config.target /dev/null /home/maconfig.set
mv /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/.config.set /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linu
grep -v INITRAMFS /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/.config.old > /home/matt/openwrt/build_dir/target-x86_64_musl/
echo 'CONFIG_INITRAMFS_SOURCE=""' >> /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/.config.set
echo '# CONFIG_INITRAMFS_FORCE is not set' >> /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/.config.set
rm -rf /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/modules
cmp -s /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/.config.set /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/64_musl/linux-x86_64/linux-5.15.34/.config; cp /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/.config.set /home/matt/openwrt/bu
export MAKEFLAGS= ; [ -d /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/user_headers ] || make -C /home/matt/openwrt/build_dir/ome/matt/openwrt/staging_dir/host/include  -Wall -Wmissing-prototypes -Wstrict-prototypes" CROSS_COMPILE="x86_64-openwrt-linux-musl-" ARCH="x86" KBUILD_HAV/staging_dir/host/lib" KBUILD_HOSTLDLIBS="-L/home/matt/openwrt/staging_dir/host/lib" CONFIG_SHELL="bash" V=''  cmd_syscalls=  KERNELRELEASE=5.15.34 CC="x86
grep '=[ym]' /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/.config.set | LC_ALL=C sort | /home/matt/openwrt/staging_dir/host/b
touch /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/.configured
rm -f /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/vmlinux /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux
make -C /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34 KCFLAGS="-fmacro-prefix-map=/home/matt/openwrt/build_dir/target-x86_64_mrt-linux-musl-" ARCH="x86" KBUILD_HAVE_NLS=no KBUILD_BUILD_USER="" KBUILD_BUILD_HOST="" KBUILD_BUILD_TIMESTAMP="Tue Apr 19 20:59:50 2022" KBUILD_BUILD_VERScalls=  KERNELRELEASE=5.15.34 CC="x86_64-openwrt-linux-musl-gcc" bzImage modules
make[5]: Entering directory '/home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34'
  CALL    scripts/checksyscalls.sh
  CALL    scripts/atomic/check-atomics.sh
  DESCEND objtool
<stdin>:1:10: fatal error: libelf.h: No such file or directory
compilation terminated.
  CC      /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/tools/objtool/arch/x86/special.o
In file included from /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/tools/objtool/include/objtool/objtool.h:13,
                 from /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/tools/objtool/include/objtool/arch.h:11,
                 from /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/tools/objtool/include/objtool/check.h:11,
                 from /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/tools/objtool/include/objtool/special.h:10,
                 from arch/x86/special.c:4:
/home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/tools/objtool/include/objtool/elf.h:10:10: fatal error: gelf.h: No such file or
   10 | #include <gelf.h>
      |          ^~~~~~~~
compilation terminated.
make[9]: *** [/home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/tools/build/Makefile.build:97: /home/matt/openwrt/build_dir/target
make[8]: *** [/home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/tools/build/Makefile.build:139: arch/x86] Error 2
make[7]: *** [Makefile:56: /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/tools/objtool/objtool-in.o] Error 2
make[6]: *** [Makefile:69: objtool] Error 2
make[5]: *** [Makefile:1371: tools/objtool] Error 2
make[5]: Leaving directory '/home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34'
make[4]: *** [Makefile:23: /home/matt/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-5.15.34/.modules] Error 2
make[4]: Leaving directory '/home/matt/openwrt/target/linux/x86'
make[3]: *** [Makefile:11: compile] Error 2
make[3]: Leaving directory '/home/matt/openwrt/target/linux'
time: target/linux/compile#0.89#0.33#1.17
    ERROR: target/linux failed to build.
make[2]: *** [target/Makefile:30: target/linux/compile] Error 1
make[2]: Leaving directory '/home/matt/openwrt'
make[1]: *** [target/Makefile:23: /home/matt/openwrt/staging_dir/target-x86_64_musl/stamp/.target_compile] Error 2
make[1]: Leaving directory '/home/matt/openwrt'
make: *** [/home/matt/openwrt/include/toplevel.mk:230: world] Error 2

That would be a missing host (build-)dependency, at least on Debian gelf.h is provided by the libelf-dev package.

Thanks @slh that was indeed the problem. I added the libelf-devel package for openSUSE to the build server and kernel 5.15 now compiles without error.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.