mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 18:59:33 +03:00
a3588c68f7
Kernel commits 39f75da7bcc8 ("isystem: trim/fixup stdarg.h and other headers") c0891ac15f04 ("isystem: ship and use stdarg.h") 564f963eabd1 ("isystem: delete global -isystem compile option") (for now can be found in linux-next.git tree, will land into the Linus' tree during the ongoing 5.15 cycle with one of akpm merges) removed the -isystem flag and disallowed the inclusion of any compiler header files. They also introduced a minimal <linux/stdarg.h> as a replacement for <stdarg.h>. include/os/linux/spl/sys/cmn_err.h in the ZFS source tree includes <stdarg.h> unconditionally. Introduce a test for <linux/stdarg.h> and include it instead of the compiler's one to prevent module build breakage. Reviewed-by: Tony Nguyen <tony.nguyen@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Alexander Lobakin <alobakin@pm.me> Closes #12531
33 lines
1.0 KiB
Plaintext
33 lines
1.0 KiB
Plaintext
dnl #
|
|
dnl # Linux 5.15 gets rid of -isystem and external <stdarg.h> inclusion
|
|
dnl # and ships its own <linux/stdarg.h>. Check if this header file does
|
|
dnl # exist and provide all necessary definitions for variable argument
|
|
dnl # functions. Adjust the inclusion of <stdarg.h> according to the
|
|
dnl # results.
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_STANDALONE_LINUX_STDARG], [
|
|
ZFS_LINUX_TEST_SRC([has_standalone_linux_stdarg], [
|
|
#include <linux/stdarg.h>
|
|
|
|
#if !defined(va_start) || !defined(va_end) || \
|
|
!defined(va_arg) || !defined(va_copy)
|
|
#error "<linux/stdarg.h> is invalid"
|
|
#endif
|
|
],[])
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_STANDALONE_LINUX_STDARG], [
|
|
dnl #
|
|
dnl # Linux 5.15 ships its own stdarg.h and doesn't allow to
|
|
dnl # include compiler headers.
|
|
dnl #
|
|
AC_MSG_CHECKING([whether standalone <linux/stdarg.h> exists])
|
|
ZFS_LINUX_TEST_RESULT([has_standalone_linux_stdarg], [
|
|
AC_MSG_RESULT([yes])
|
|
AC_DEFINE(HAVE_STANDALONE_LINUX_STDARG, 1,
|
|
[standalone <linux/stdarg.h> exists])
|
|
],[
|
|
AC_MSG_RESULT([no])
|
|
])
|
|
])
|