Hi Ben,

Thanks for detecting and reporting the build errors.
I'm a bit confused as to how this is "grave", though -- I would have
classified it as merely "serious" as for, e.g., 970258 and 995134.

For upstream, we went with a slightly different patch owing to the
unreliability of the linux version macros due to distros backporting many
patches --
https://github.com/openafs/openafs/commit/3daa6e97330d23ae46c4389e4041c61c1a1d76d9

I will take this as a trigger to package upstream 1.8.8.1 that includes the
fix.

-Ben

On Sat, Feb 12, 2022 at 10:53:31PM +0100, Ben Hutchings wrote:
> 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

Reply via email to