CFLAGS="$CFLAGS -Werror"
AC_COMPILE_IFELSE([
#include <linux/types.h>
+ #include <linux/stddef.h>
int main(void) {
unsigned long long *data1;
- __u64 *data2;
-
+ __u64 *data2 = NULL;
+
data1 = data2;
return 0;
}
],[
unsigned long long *data1;
__u64 *data2 = NULL;
-
+
data1 = data2;
],[
AC_MSG_RESULT([yes])
EXTRA_KCFLAGS="$tmp_flags"
])
+# check userland size_t type
+AC_DEFUN([LIBCFS_SIZE_T_LONG],
+[AC_MSG_CHECKING([size_t is unsigned long type])
+tmp_flags="$CFLAGS"
+CFLAGS="$CFLAGS -Werror"
+AC_COMPILE_IFELSE([
+ #include <linux/types.h>
+ #include <linux/stddef.h>
+ int main(void) {
+ unsigned long *data1;
+ size_t *data2 = NULL;
+
+ data1 = data2;
+ return 0;
+ }
+],[
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE_SIZE_T_LONG, 1,
+ [size_t is long type])
+],[
+ AC_MSG_RESULT([no])
+])
+CFLAGS="$tmp_flags"
+])
+
+AC_DEFUN([LIBCFS_SSIZE_T_LONG],
+[AC_MSG_CHECKING([ssize_t is signed long type])
+tmp_flags="$CFLAGS"
+CFLAGS="$CFLAGS -Werror"
+AC_COMPILE_IFELSE([
+ #include <linux/types.h>
+ #include <linux/stddef.h>
+ int main(void) {
+ long *data1;
+ ssize_t *data2 = NULL;
+
+ data1 = data2;
+ return 0;
+ }
+],[
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE_SSIZE_T_LONG, 1,
+ [ssize_t is long type])
+],[
+ AC_MSG_RESULT([no])
+])
+CFLAGS="$tmp_flags"
+])
+
+
# check if task_struct with rcu memeber
AC_DEFUN([LIBCFS_TASK_RCU],
[AC_MSG_CHECKING([if task_struct has a rcu field])
LIBCFS_STRUCT_SIGHAND
LIBCFS_FUNC_SHOW_TASK
LIBCFS_U64_LONG_LONG
+LIBCFS_SSIZE_T_LONG
+LIBCFS_SIZE_T_LONG
LIBCFS_TASK_RCU
# 2.6.18
LIBCFS_TASKLIST_LOCK