mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	 a3588c68f7
			
		
	
	
		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])
 | |
| 	])
 | |
| ])
 |