])
dnl General feature options.
-AC_ARG_ENABLE([gtx],
- [AS_HELP_STRING([--disable-gtx], [disable gtx curses-based terminal tools])])
-
AC_ARG_ENABLE([namei-fileserver],
[AS_HELP_STRING([--enable-namei-fileserver],
[force compilation of namei fileserver in preference to inode
[enable_linux_syscall_probing="maybe"])
AC_ARG_ENABLE([linux-d_splice_alias-extra-iput],
[AS_HELP_STRING([--enable-linux-d_splice_alias-extra-iput],
- [Linux has introduced an incompatible behavior change in the
- d_splice_alias function with no reliable way to determine which
- behavior will be produced. If Linux commit
- 51486b900ee92856b977eacfc5bfbe6565028070 (or equivalent) has been
- applied to your kernel, disable this option. If that commit is
- not present in your kernel, enable this option. We apologize
- that you are required to know this about your running kernel.])],
+ [Linux kernels in the 3.17 series prior to 3.17.3 had a bug
+ wherein error returns from the d_splice_alias() function were
+ leaking a reference on the inode. The bug was fixed for the
+ 3.17.3 kernel, and the possibility of an error return was only
+ introduced in kernel 3.17, so only the narrow range of kernels
+ is affected. Enable this option for builds on systems with
+ kernels affected by this bug, to manually release the reference
+ on error returns and correct the reference counting.
+ Linux commit 51486b900ee92856b977eacfc5bfbe6565028070 (or
+ equivalent) is the fix for the upstream bug, so if such a commit
+ is present, leave this option disabled. We apologize
+ that you are required to know this about your running kernel,
+ but luckily only a narrow range of versions is affected.])],
[],
- [case $system in
- *-linux*)
- AS_IF([test "x$LOGNAME" != "xbuildslave" &&
- test "x$LOGNAME" != "xbuildbot"],
- [AC_ERROR([Linux users must specify either
- --enable-linux-d_splice_alias-extra-iput or
- --disable-linux-d_splice_alias-extra-iput])],
- [enable_linux_d_splice_alias_extra_iput="no"])
- esac
- ])
+ [enable_linux_d_splice_alias_extra_iput="no"])
AC_ARG_WITH([crosstools-dir],
[AS_HELP_STRING([--with-crosstools-dir=path],
[use path for native versions of rxgen, compile_et and config])
AFS_SYSNAME="x86_darwin_140"
OSXSDK="macosx10.10"
;;
+ x86_64-apple-darwin15.*)
+ AFS_SYSNAME="x86_darwin_150"
+ OSXSDK="macosx10.11"
+ ;;
+ i?86-apple-darwin15.*)
+ AFS_SYSNAME="x86_darwin_150"
+ OSXSDK="macosx10.11"
+ ;;
sparc-sun-solaris2.8)
AFS_SYSNAME="sun4x_58"
;;
LINUX_KBUILD_USES_EXTRA_CFLAGS
LINUX_KERNEL_COMPILE_WORKS
+ dnl Operation signature checks
+ AC_CHECK_LINUX_OPERATION([inode_operations], [follow_link], [no_nameidata],
+ [#include <linux/fs.h>],
+ [const char *],
+ [struct dentry *dentry, void **link_data])
+ AC_CHECK_LINUX_OPERATION([inode_operations], [put_link], [no_nameidata],
+ [#include <linux/fs.h>],
+ [void],
+ [struct inode *inode, void *link_data])
+
dnl Check for header files
AC_CHECK_LINUX_HEADER([config.h])
AC_CHECK_LINUX_HEADER([completion.h])
AC_CHECK_LINUX_STRUCT([task_struct], [sigmask_lock], [sched.h])
AC_CHECK_LINUX_STRUCT([task_struct], [tgid], [sched.h])
AC_CHECK_LINUX_STRUCT([task_struct], [thread_info], [sched.h])
+ AC_CHECK_LINUX_STRUCT([task_struct], [total_link_count], [sched.h])
LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
dnl Check for typed structure elements
dnl Function existence checks
+ AC_CHECK_LINUX_FUNC([__vfs_read],
+ [#include <linux/fs.h>],
+ [__vfs_read(NULL, NULL, 0, NULL);])
AC_CHECK_LINUX_FUNC([bdi_init],
[#include <linux/backing-dev.h>],
[bdi_init(NULL);])
AC_CHECK_LINUX_FUNC([sock_create_kern],
[#include <linux/net.h>],
[sock_create_kern(0, 0, 0, NULL);])
+ AC_CHECK_LINUX_FUNC([sock_create_kern_ns],
+ [#include <linux/net.h>],
+ [sock_create_kern(NULL, 0, 0, 0, NULL);])
AC_CHECK_LINUX_FUNC([splice_direct_to_actor],
[#include <linux/splice.h>],
[splice_direct_to_actor(NULL,NULL,NULL);])
fi
AC_SUBST(XBSA_CFLAGS)
AC_SUBST(XBSA_XLIBS)
+XLIBS="$XBSA_XLIBS $XLIBS"
dnl checks for header files.
AC_HEADER_STDC
dnl see what struct stat has for timestamps
AC_CHECK_MEMBERS([struct stat.st_ctimespec, struct stat.st_ctimensec])
-dnl check for curses-lib
-AS_IF([test "x$enable_gtx" != "xno"],
- [save_LIBS=$LIBS
- AC_CHECK_LIB( [ncurses], [setupterm],
- [LIB_curses=-lncurses],
- [AC_CHECK_LIB([Hcurses], [setupterm], [LIB_curses=-lHcurses],
- [AC_CHECK_LIB([curses], [setupterm], [LIB_curses=-lcurses])])
- ])
- LIBS=$save_LIBS
- AC_SUBST(LIB_curses)])
-
OPENAFS_TEST_PACKAGE(libintl,[#include <libintl.h>],[-lintl],,,INTL)
if test "$enable_debug_locks" = yes; then
OPENAFS_ROKEN()
OPENAFS_HCRYPTO()
+OPENAFS_CURSES()
OPENAFS_C_ATTRIBUTE()
+OPENAFS_C_PRAGMA()
dnl Functions that Heimdal's libroken provides, but that we
dnl haven't found a need for yet, and so haven't imported