79713039a2
Newer versions of gcc are getting smart enough to detect the sloppy syntax used for the autoconf tests. It is now generating warnings for unused/undeclared variables. Newer version of gcc even have the -Wunused-but-set-variable option set by default. This isn't a problem except when -Werror is set and they get promoted to an error. In this case the autoconf test will return an incorrect result which will result in a build failure latter on. To handle this I'm tightening up many of the autoconf tests to explicitly mark variables as unused to suppress the gcc warning. Remember, all of the autoconf code can never actually be run we just want to get a clean build error to detect which APIs are available. Never using a variable is absolutely fine for this. Closes #176
30 lines
921 B
Plaintext
30 lines
921 B
Plaintext
dnl #
|
|
dnl # 2.6.24 API change
|
|
dnl # Size argument dropped from bio_endio and bi_end_io, because the
|
|
dnl # bi_end_io is only called once now when the request is complete.
|
|
dnl # There is no longer any need for a size argument. This also means
|
|
dnl # that partial IO's are no longer possibe and the end_io callback
|
|
dnl # should not check bi->bi_size. Finally, the return type was updated
|
|
dnl # to void.
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_KERNEL_BIO_END_IO_T_ARGS], [
|
|
AC_MSG_CHECKING([whether bio_end_io_t wants 2 args])
|
|
tmp_flags="$EXTRA_KCFLAGS"
|
|
EXTRA_KCFLAGS="-Werror"
|
|
ZFS_LINUX_TRY_COMPILE([
|
|
#include <linux/bio.h>
|
|
],[
|
|
void (*wanted_end_io)(struct bio *, int) = NULL;
|
|
bio_end_io_t *local_end_io __attribute__ ((unused));
|
|
|
|
local_end_io = wanted_end_io;
|
|
],[
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_2ARGS_BIO_END_IO_T, 1,
|
|
[bio_end_io_t wants 2 args])
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
EXTRA_KCFLAGS="$tmp_flags"
|
|
])
|