mirror of
				https://git.proxmox.com/git/mirror_zfs
				synced 2025-11-04 14:26:57 +00:00 
			
		
		
		
	Certain versions of gcc generate an 'unrecognized command
line option' error message when -Wunused-but-set-variable
is used unconditionally.  This in turn can cause several
of the autoconf tests to misdetect an interface.
Now, the use of -Wunused-but-set-variable in the autoconf
tests was introduced by commit b9c59ec8 to address a gcc
4.6 compatibility problem.  So we really only need to pass
this option for version of gcc which are known to support it.
Therefore, the tests have been updated to use the result of
the existing ZFS_AC_CONFIG_ALWAYS_NO_UNUSED_BUT_SET_VARIABLE
which determines if gcc supports this option.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1004
		
	
			
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
dnl #
 | 
						|
dnl # 2.6.31 API change
 | 
						|
dnl # In 2.6.29 kernels blk_end_request() was a GPL-only symbol, this was
 | 
						|
dnl # changed in 2.6.31 so it may be used by non-GPL modules.
 | 
						|
dnl #
 | 
						|
AC_DEFUN([ZFS_AC_KERNEL_BLK_END_REQUEST], [
 | 
						|
	AC_MSG_CHECKING([whether blk_end_request() is available])
 | 
						|
	tmp_flags="$EXTRA_KCFLAGS"
 | 
						|
	EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}"
 | 
						|
	ZFS_LINUX_TRY_COMPILE([
 | 
						|
		#include <linux/blkdev.h>
 | 
						|
	],[
 | 
						|
		struct request *req = NULL;
 | 
						|
		(void) blk_end_request(req, 0, 0);
 | 
						|
	],[
 | 
						|
		AC_MSG_RESULT(yes)
 | 
						|
		AC_DEFINE(HAVE_BLK_END_REQUEST, 1,
 | 
						|
		          [blk_end_request() is available])
 | 
						|
	],[
 | 
						|
		AC_MSG_RESULT(no)
 | 
						|
	])
 | 
						|
 | 
						|
	AC_MSG_CHECKING([whether blk_end_request() is GPL-only])
 | 
						|
	ZFS_LINUX_TRY_COMPILE([
 | 
						|
		#include <linux/module.h>
 | 
						|
		#include <linux/blkdev.h>
 | 
						|
		
 | 
						|
		MODULE_LICENSE("CDDL");
 | 
						|
	],[
 | 
						|
		struct request *req = NULL;
 | 
						|
		(void) blk_end_request(req, 0, 0);
 | 
						|
	],[
 | 
						|
		AC_MSG_RESULT(no)
 | 
						|
	],[
 | 
						|
		AC_MSG_RESULT(yes)
 | 
						|
		AC_DEFINE(HAVE_BLK_END_REQUEST_GPL_ONLY, 1,
 | 
						|
		          [blk_end_request() is GPL-only])
 | 
						|
	])
 | 
						|
	EXTRA_KCFLAGS="$tmp_flags"
 | 
						|
])
 |