Source: openafs Version: 1.8.2-1+deb10u1 Severity: grave Tags: patch upstream
The openafs modules fail to build, with the compiler reporting that "stdarg.h" is not found. This is due to an intentional change in Linux 5.16 removing user-space headers from the kernel include path: <https://git.kernel.org/linus/04e85bbf71c9072dcf0ad9a7150495d72461105c>. Kernel code must use <linux/stdarg.h> instead of <stdarg.h>. The attached patch fixes this and allows the build to complete. Ben. -- System Information: Debian Release: bookworm/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'oldstable-updates'), (500, 'unstable'), (500, 'oldstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.15.0-3-amd64 (SMP w/2 CPU threads) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
From: Ben Hutchings <b...@debian.org> Date: Sat, 12 Feb 2022 22:25:47 +0100 Subject: openafs: Fix <stdarg.h> inclusion on Linux There was an intentional change in Linux 5.16 removing user-space headers from the kernel include path: <https://git.kernel.org/linus/04e85bbf71c9072dcf0ad9a7150495d72461105c>. Kernel code must use <linux/stdarg.h> instead of <stdarg.h>. --- --- a/src/rx/rx_kcommon.h +++ b/src/rx/rx_kcommon.h @@ -145,6 +145,8 @@ typedef unsigned short etap_event_t; /* if sys/systm.h includes varargs.h some versions of solaris have conflicts */ # if defined(AFS_FBSD_ENV) # include "machine/stdarg.h" +# elif defined(AFS_LINUX26_ENV) && LINUX_VERSION_CODE >= KERNEL_VERSION(5,16,0) +# include <linux/stdarg.h> # else # include "stdarg.h" # endif