diff -Nru openafs-1.8.0~pre4/acinclude.m4 openafs-1.8.0~pre5/acinclude.m4 --- openafs-1.8.0~pre4/acinclude.m4 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/acinclude.m4 2018-02-19 14:40:36.000000000 +0000 @@ -5,345 +5,13 @@ dnl parameters must be done like $[]1 instead of $1 AC_DEFUN([OPENAFS_CONFIGURE_COMMON],[ -AH_BOTTOM([ -#undef HAVE_RES_SEARCH -#undef STRUCT_SOCKADDR_HAS_SA_LEN -#if !defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) -# if ENDIANESS_IN_SYS_PARAM_H -# ifndef KERNEL -# include -# include -# if BYTE_ORDER == BIG_ENDIAN -# define WORDS_BIGENDIAN 1 -# endif -# else -# if defined(AUTOCONF_FOUND_BIGENDIAN) -# define WORDS_BIGENDIAN 1 -# else -# undef WORDS_BIGENDIAN -# endif -# endif -# else -# if defined(AUTOCONF_FOUND_BIGENDIAN) -# define WORDS_BIGENDIAN 1 -# else -# undef WORDS_BIGENDIAN -# endif -# endif -#else -# if defined(__BIG_ENDIAN__) -# define WORDS_BIGENDIAN 1 -# else -# undef WORDS_BIGENDIAN -# endif -#endif -#ifdef UKERNEL -/* - * Always use 64-bit file offsets for UKERNEL code. Needed for UKERNEL stuff to - * play nice with some other interfaces like FUSE. We technically only would - * need to define this when building for such interfaces, but set it always to - * try and reduce potential confusion. - */ -# define _FILE_OFFSET_BITS 64 -# define AFS_CACHE_VNODE_PATH -#endif - -#undef AFS_NAMEI_ENV -#undef BITMAP_LATER -#undef FAST_RESTART -#undef DEFINED_FOR_EACH_PROCESS -#undef DEFINED_PREV_TASK -#undef EXPORTED_SYS_CALL_TABLE -#undef EXPORTED_IA32_SYS_CALL_TABLE -#undef IRIX_HAS_MEM_FUNCS -#undef RECALC_SIGPENDING_TAKES_VOID -#undef STRUCT_FS_HAS_FS_ROLLED -#undef ssize_t -/* glue for RedHat kernel bug */ -#undef ENABLE_REDHAT_BUILDSYS -#if defined(ENABLE_REDHAT_BUILDSYS) && defined(KERNEL) && defined(REDHAT_FIX) -# include "redhat-fix.h" -#endif]) - +OPENAFS_AUTOHEADER_BOTTOM AC_CANONICAL_HOST SRCDIR_PARENT=`pwd` #BOZO_SAVE_CORES pam - -dnl System identity. -AC_ARG_WITH([afs-sysname], - [AS_HELP_STRING([--with-afs-sysname=sys], [use sys for the afs sysname]) -]) - -dnl General feature options. -AC_ARG_ENABLE([namei-fileserver], - [AS_HELP_STRING([--enable-namei-fileserver], - [force compilation of namei fileserver in preference to inode - fileserver])], - [], - [enable_namei_fileserver="default"]) -AC_ARG_ENABLE([supergroups], - [AS_HELP_STRING([--enable-supergroups], - [enable support for nested pts groups])], - [], - [enable_supergroups="no"]) -AC_ARG_ENABLE([bitmap-later], - [AS_HELP_STRING([--enable-bitmap-later], - [enable fast startup of file server by not reading bitmap till - needed])], - [AS_IF([test x"$withval" = xyes], - [AC_MSG_WARN([bitmap-later is only used by non-demand-attach - fileservers. Please migrate to demand-attach instead.])])], - [enable_bitmap_later="no"]) -AC_ARG_ENABLE([unix-sockets], - [AS_HELP_STRING([--disable-unix-sockets], - [disable use of unix domain sockets for fssync (defaults to enabled)])], - [], - [enable_unix_sockets="yes"]) -AC_ARG_ENABLE([tivoli-tsm], - [AS_HELP_STRING([--enable-tivoli-tsm], - [enable use of the Tivoli TSM API libraries for butc support])], - [], - [enable_tivoli_tsm="no"]) -AC_ARG_ENABLE([pthreaded-ubik], - [AS_HELP_STRING([--disable-pthreaded-ubik], - [disable installation of pthreaded ubik applications (defaults to - enabled)])], - [], - [enable_pthreaded_ubik="yes"]) -AC_ARG_ENABLE([ubik-read-while-write], - [AS_HELP_STRING([--enable-ubik-read-while-write], - [enable vlserver read from db cache during write locks (EXPERIMENTAL)])], - [], - [enable_ubik_read_while_write="no"]) - -dnl Kernel module build options. -AC_ARG_WITH([linux-kernel-headers], - [AS_HELP_STRING([--with-linux-kernel-headers=path], - [use the kernel headers found at path (optional, defaults to - /lib/modules/`uname -r`/build, then /lib/modules/`uname -r`/source, - then /usr/src/linux-2.4, and lastly /usr/src/linux)]) -]) -AC_ARG_WITH([linux-kernel-build], - [AS_HELP_STRING([--with-linux-kernel-build=path], - [use the kernel build found at path(optional, defaults to - kernel headers path)] -)]) -AC_ARG_WITH([bsd-kernel-headers], - [AS_HELP_STRING([--with-bsd-kernel-headers=path], - [use the kernel headers found at path (optional, defaults to - /usr/src/sys)]) -]) -AC_ARG_WITH([bsd-kernel-build], - [AS_HELP_STRING([--with-bsd-kernel-build=path], - [use the kernel build found at path (optional, defaults to - KSRC/i386/compile/GENERIC)]) -]) -AC_ARG_WITH([linux-kernel-packaging], - [AS_HELP_STRING([--with-linux-kernel-packaging], - [use standard naming conventions to aid Linux kernel build packaging - (disables MPS, sets the kernel module name to openafs.ko, and - installs kernel modules into the standard Linux location)])], - [AC_SUBST([LINUX_KERNEL_PACKAGING], [yes]) - AC_SUBST([LINUX_LIBAFS_NAME], [openafs])], - [AC_SUBST([LINUX_LIBAFS_NAME], [libafs]) -]) -AC_ARG_ENABLE([kernel-module], - [AS_HELP_STRING([--disable-kernel-module], - [disable compilation of the kernel module (defaults to enabled)])], - [], - [enable_kernel_module="yes"]) -AC_ARG_ENABLE([redhat-buildsys], - [AS_HELP_STRING([--enable-redhat-buildsys], - [enable compilation of the redhat build system kernel (defaults to - disabled)])], - [], - [enable_redhat_buildsys="no"]) - -dnl Installation locations. -AC_ARG_ENABLE([transarc-paths], - [AS_HELP_STRING([--enable-transarc-paths], - [use Transarc style paths like /usr/afs and /usr/vice])], - [], - [enable_transarc_paths="no"]) - -dnl Deprecated crypto -AC_ARG_ENABLE([kauth], - [AS_HELP_STRING([--enable-kauth], - [install the deprecated kauth server, pam modules, and utilities - (defaults to disabled)])], - [enable_pam="yes"], - [enable_kauth="no" - enable_pam="no"]) - -dnl Optimization and debugging flags. -AC_ARG_ENABLE([strip-binaries], - [AS_HELP_STRING([--disable-strip-binaries], - [disable stripping of symbol information from binaries (defaults to - enabled)])], - [], - [enable_strip_binaries="maybe"]) -AC_ARG_ENABLE([debug], - [AS_HELP_STRING([--enable-debug], - [enable compilation of the user space code with debugging information - (defaults to disabled)])], - [], - [enable_debug="no"]) -AC_ARG_ENABLE([optimize], - [AS_HELP_STRING([--disable-optimize], - [disable optimization for compilation of the user space code (defaults - to enabled)])], - [], - [enable_optimize="yes"]) -AC_ARG_ENABLE([warnings], - [AS_HELP_STRING([--enable-warnings], - [enable compilation warnings when building with gcc (defaults to - disabled)])], - [], - [enable_warnings="no"]) -AC_ARG_ENABLE([checking], - [AS_HELP_STRING([--enable-checking], - [turn compilation warnings into errors when building with gcc (defaults - to disabled)])], - [enable_checking="$enableval"], - [enable_checking="no"]) -AC_ARG_ENABLE([debug-locks], - [AS_HELP_STRING([--enable-debug-locks], - [turn on lock debugging assertions (defaults to disabled)])], - [enable_debug_locks="$enableval"], - [enable_debug_locks="no"]) -AC_ARG_ENABLE([debug-kernel], - [AS_HELP_STRING([--enable-debug-kernel], - [enable compilation of the kernel module with debugging information - (defaults to disabled)])], - [], - [enable_debug_kernel="no"]) -AC_ARG_ENABLE([optimize-kernel], - [AS_HELP_STRING([--disable-optimize-kernel], - [disable compilation of the kernel module with optimization (defaults - based on platform)])], - [], - [enable_optimize_kernel=""]) -AC_ARG_ENABLE([debug-lwp], - [AS_HELP_STRING([--enable-debug-lwp], - [enable compilation of the LWP code with debugging information - (defaults to disabled)])], - [], - [enable_debug_lwp="no"]) -AC_ARG_ENABLE([optimize-lwp], - [AS_HELP_STRING([--disable-optimize-lwp], - [disable optimization for compilation of the LWP code (defaults to - enabled)])], - [], - [enable_optimize_lwp="yes"]) -AC_ARG_ENABLE([debug-pam], - [AS_HELP_STRING([--enable-debug-pam], - [enable compilation of the PAM code with debugging information - (defaults to disabled)])], - [], - [enable_debug_pam="no"]) -AC_ARG_ENABLE([optimize-pam], - [AS_HELP_STRING([--disable-optimize-pam], - [disable optimization for compilation of the PAM code (defaults to - enabled)])], - [], - [enable_optimize_pam="yes"]) -AC_ARG_ENABLE([linux-syscall-probing], - [AS_HELP_STRING([--enable-linux-syscall-probing], - [enable Linux syscall probing (defaults to autodetect)])], - [], - [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 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.])], - [], - [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]) -]) - -AC_ARG_WITH([xslt-processor], - AS_HELP_STRING([--with-xslt-processor=ARG], - [which XSLT processor to use (possible choices are: libxslt, saxon, xalan-j, xsltproc)]), - [XSLTPROC="$withval"], - [AC_CHECK_PROGS([XSLTPROC], [libxslt saxon xalan-j xsltproc], [echo])]) - -AC_ARG_WITH([html-xsl], - AS_HELP_STRING([--with-html-xsl], - [build HTML documentation using this stylesheet (default is html/chunk.dsl; specify either html/chunk.xsl or html/docbook.xsl)]), - [HTML_XSL="$withval"], - [HTML_XSL="html/chunk.xsl"]) - -AC_ARG_WITH([docbook2pdf], - AS_HELP_STRING([--with-docbook2pdf=ARG], - [which Docbook to PDF utility to use (possible choices are: fop, dblatex, docbook2pdf)]), - [DOCBOOK2PDF="$withval"], - [AC_CHECK_PROGS([DOCBOOK2PDF], [fop dblatex docbook2pdf], [echo])]) - -AC_ARG_WITH([docbook-stylesheets], - AS_HELP_STRING([--with-docbook-stylesheets=ARG], - [location of DocBook stylesheets (default is to search a set of likely paths)]), - [DOCBOOK_STYLESHEETS="$withval"], - [OPENAFS_SEARCH_DIRLIST([DOCBOOK_STYLESHEETS], - [/usr/share/xml/docbook/stylesheet/nwalsh/current \ - /usr/share/xml/docbook/stylesheet/nwalsh \ - /usr/share/xml/docbook/xsl-stylesheets \ - /usr/share/sgml/docbook/docbook-xsl-stylesheets \ - /usr/share/sgml/docbook/xsl-stylesheets \ - /usr/share/docbook-xsl \ - /usr/share/sgml/docbkxsl \ - /usr/local/share/xsl/docbook \ - /sw/share/xml/xsl/docbook-xsl \ - /opt/local/share/xsl/docbook-xsl], - [$HTML_XSL]) - AS_IF([test "x$DOCBOOK_STYLESHEETS" = "x"], - [AC_WARN([Docbook stylesheets not found; some documentation can't be built]) - ]) - ]) - -AC_ARG_WITH([dot], - AS_HELP_STRING([--with-dot@<:@=PATH@:>@], - [use graphviz dot to generate dependency graphs with doxygen (defaults to autodetect)]), - [], [with_dot="maybe"]) - -enable_login="no" - -dnl Check whether kindlegen exists. If not, we'll suppress that part of the -dnl documentation build. -AC_CHECK_PROGS([KINDLEGEN], [kindlegen]) -AC_CHECK_PROGS([DOXYGEN], [doxygen]) - -dnl Optionally generate graphs with doxygen. -case "$with_dot" in -maybe) - AC_CHECK_PROGS([DOT], [dot]) - AS_IF([test "x$DOT" = "x"], [HAVE_DOT="no"], [HAVE_DOT="yes"]) - ;; -yes) - HAVE_DOT="yes" - ;; -no) - HAVE_DOT="no" - ;; -*) - HAVE_DOT="yes" - DOT_PATH=$with_dot -esac -AC_SUBST(HAVE_DOT) -AC_SUBST(DOT_PATH) +OPENAFS_OPTIONS +OPENAFS_DOC dnl Checks for UNIX variants. AC_ISC_POSIX @@ -357,1777 +25,59 @@ AC_PROG_LN_S AC_PROG_RANLIB AC_PROG_YACC -AM_PROG_LEX -dnl if we are flex, be lex-compatible -OPENAFS_LEX_IS_FLEX([AC_SUBST([LEX], ["$LEX -l"])]) +OPENAFS_LEX +dnl Checks OPENAFS_FORCE_ABS_INSTALL OPENAFS_CHECK_BIGENDIAN OPENAFS_PRINTF_TAKES_Z_LEN - -AC_MSG_CHECKING(your OS) -system=$host -case $system in - *-linux*) - - MKAFS_OSTYPE=LINUX - if test "x$enable_redhat_buildsys" = "xyes"; then - AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem]) - fi - if test "x$enable_kernel_module" = "xyes"; then - if test "x$with_linux_kernel_headers" != "x"; then - LINUX_KERNEL_PATH="$with_linux_kernel_headers" - else - for utsdir in "/lib/modules/`uname -r`/build" \ - "/lib/modules/`uname -r`/source" \ - "/usr/src/linux-2.4" \ - "/usr/src/linux"; do - LINUX_KERNEL_PATH="$utsdir" - for utsfile in "include/generated/utsrelease.h" \ - "include/linux/utsrelease.h" \ - "include/linux/version.h" \ - "include/linux/version-up.h"; do - if grep "UTS_RELEASE" "$utsdir/$utsfile" >/dev/null 2>&1; then - break 2 - fi - done - done - fi - if test "x$with_linux_kernel_build" != "x"; then - LINUX_KERNEL_BUILD="$with_linux_kernel_build" - else - LINUX_KERNEL_BUILD=$LINUX_KERNEL_PATH - fi - if test -f "$LINUX_KERNEL_BUILD/include/generated/utsrelease.h"; then - linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/generated/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1` - LINUX_VERSION="$linux_kvers" - else - if test -f "$LINUX_KERNEL_BUILD/include/linux/utsrelease.h"; then - linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1` - LINUX_VERSION="$linux_kvers" - else - if test -f "$LINUX_KERNEL_BUILD/include/linux/version.h"; then - linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1` - if test "x$linux_kvers" = "x"; then - if test -f "$LINUX_KERNEL_BUILD/include/linux/version-up.h"; then - linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1` - if test "x$linux_kvers" = "x"; then - AC_MSG_ERROR(Linux headers lack version definition [2]) - exit 1 - else - LINUX_VERSION="$linux_kvers" - fi - else - AC_MSG_ERROR(Linux headers lack version definition) - exit 1 - fi - else - LINUX_VERSION="$linux_kvers" - fi - else - enable_kernel_module="no" - fi - fi - fi - if test ! -f "$LINUX_KERNEL_BUILD/include/generated/autoconf.h" && - test ! -f "$LINUX_KERNEL_BUILD/include/linux/autoconf.h"; then - enable_kernel_module="no" - fi - if test "x$enable_kernel_module" = "xno"; then - if test "x$with_linux_kernel_headers" != "x"; then - AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH) - exit 1 - else - AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module) - fi - fi - dnl do we need to determine SUBARCH from autoconf.h - SUBARCH=default - fi - AC_MSG_RESULT(linux) - GUESS_LINUX_VERSION= - if test "x$enable_kernel_module" = "xyes"; then - GUESS_LINUX_VERSION=${LINUX_VERSION} - else - GUESS_LINUX_VERSION=`uname -r` - fi - case "$GUESS_LINUX_VERSION" in - 2.2.*) AFS_SYSKVERS=22 ;; - 2.4.*) AFS_SYSKVERS=24 ;; - [2.6.* | [3-9]* | [1-2][0-9]*]) AFS_SYSKVERS=26 ;; - *) AC_MSG_ERROR(Couldn't guess your Linux version [2]) ;; - esac - ;; - *-solaris*) - MKAFS_OSTYPE=SOLARIS - AC_MSG_RESULT(sun4) - SOLARIS_PATH_CC - SOLARIS_CC_TAKES_XVECTOR_NONE - AC_SUBST(SOLARIS_CC_KOPTS) - SOLARIS_UFSVFS_HAS_DQRWLOCK - SOLARIS_FS_HAS_FS_ROLLED - SOLARIS_SOLOOKUP_TAKES_SOCKPARAMS - SOLARIS_HAVE_VN_RENAMEPATH - ;; - *-sunos*) - MKAFS_OSTYPE=SUNOS - enable_kernel_module=no - AC_MSG_RESULT(sun4) - ;; - *-hpux*) - MKAFS_OSTYPE=HPUX - AC_MSG_RESULT(hp_ux) - if test -f "/usr/old/usr/include/ndir.h"; then - AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h]) - fi - ;; - *-irix*) - if test -d /usr/include/sys/SN/SN1; then - IRIX_BUILD_IP35="IP35" - fi - MKAFS_OSTYPE=IRIX - AC_MSG_RESULT(sgi) - ;; - *-aix*) - MKAFS_OSTYPE=AIX - AC_MSG_RESULT(rs_aix) - ;; - arm-*-darwin*) - MKAFS_OSTYPE=DARWIN - AC_MSG_RESULT(arm_darwin) - ;; - powerpc-*-darwin*) - MKAFS_OSTYPE=DARWIN - AC_MSG_RESULT(ppc_darwin) - ;; - i386-*-darwin*) - MKAFS_OSTYPE=DARWIN - AC_MSG_RESULT(x86_darwin) - ;; - x86_64-*-darwin*) - MKAFS_OSTYPE=DARWIN - AC_MSG_RESULT(x86_darwin) - ;; - i386-*-freebsd*) - MKAFS_OSTYPE=FBSD - AC_MSG_RESULT(i386_fbsd) - ;; - x86_64-*-freebsd*) - MKAFS_OSTYPE=FBSD - AC_MSG_RESULT(amd64_fbsd) - ;; - *-netbsd*) - MKAFS_OSTYPE=NBSD - AC_MSG_RESULT(nbsd) - ;; - x86_64-*-openbsd*) - MKAFS_OSTYPE=OBSD - AC_MSG_RESULT(amd64_obsd) - ;; - i386-*-openbsd*) - MKAFS_OSTYPE=OBSD - AC_MSG_RESULT(i386_obsd) - ;; - *-dragonfly*) - MKAFS_OSTYPE=DFBSD - AC_MSG_RESULT(i386_dfbsd) - ;; - *) - AC_MSG_RESULT($system) - ;; -esac - -if test "x$with_afs_sysname" != "x"; then - AFS_SYSNAME="$with_afs_sysname" -else - AC_MSG_CHECKING(your AFS sysname) - case $host in - i?86-*-openbsd?.?) - v=${host#*openbsd} - vM=${v%.*} - vm=${v#*.} - AFS_SYSNAME="i386_obsd${vM}${vm}" - ;; - sparc64-*-openbsd?.?) - v=${host#*openbsd} - vM=${v%.*} - vm=${v#*.} - AFS_SYSNAME="sparc64_obsd${vM}${vm}" - ;; - x86_64-*-openbsd?.?) - v=${host#*openbsd} - vM=${v%.*} - vm=${v#*.} - AFS_SYSNAME="amd64_obsd${vM}${vm}" - ;; - i?86-*-freebsd*.*) - v=${host#*freebsd} - vM=${v%.*} - vm=${v#*.} - AFS_SYSNAME="i386_fbsd_${vM}${vm}" - ;; - x86_64-*-freebsd*.*) - v=${host#*freebsd} - vM=${v%.*} - vm=${v#*.} - AFS_SYSNAME="amd64_fbsd_${vM}${vm}" - ;; - i386-*-dragonfly?.*) - v=${host#*dragonfly} - vM=${v%.*} - vm=${v#*.} - AFS_SYSNAME="i386_dfbsd_${vM}${vm}" - ;; - i?86-*-netbsd*1.6[[M-Z]]*) - AFS_SYSNAME="i386_nbsd20" - ;; - powerpc-*-netbsd*1.6[[M-Z]]*) - AFS_SYSNAME="ppc_nbsd20" - ;; - *-*-netbsd*) - arch=${host%%-unknown*} - arch=$(echo $arch |sed -e 's/x86_64/amd64/g' \ - -e 's/powerpc/ppc/g') - v=${host#*netbsd} - v=${v#*aout} - v=${v#*ecoff} - v=${v#*elf} - vM=${v%%.*} - vM=${vM%.*} - v=${v#*.} - vm=${v%%.*} - vm=${vm%.*} - vm=${vm%%[[_A-Z]]*} - if test $vm -eq 99 ; then - vM=$((vM+1)) - fi - if test $vM -gt 1 ; then - vm=0 - fi - AFS_SYSNAME="${arch}_nbsd${vM}${vm}" - ;; - hppa*-hp-hpux11.0*) - AFS_SYSNAME="hp_ux110" - ;; - hppa*-hp-hpux11.11) - AFS_SYSNAME="hp_ux11i" - ;; - hppa*-hp-hpux11.23) - AFS_SYSNAME="hp_ux1123" - ;; - ia64-hp-hpux11.22) - AFS_SYSNAME="ia64_hpux1122" - ;; - ia64-hp-hpux*) - AFS_SYSNAME="ia64_hpux1123" - ;; - hppa*-hp-hpux10*) - AFS_SYSNAME="hp_ux102" - ;; - powerpc-apple-darwin7*) - AFS_SYSNAME="ppc_darwin_70" - OSXSDK="macosx10.3" - ;; - powerpc-apple-darwin8.*) - AFS_SYSNAME="ppc_darwin_80" - OSXSDK="macosx10.4" - ;; - i386-apple-darwin8.*) - AFS_SYSNAME="x86_darwin_80" - OSXSDK="macosx10.4" - ;; - powerpc-apple-darwin9.*) - AFS_SYSNAME="ppc_darwin_90" - OSXSDK="macosx10.5" - ;; - i386-apple-darwin9.*) - AFS_SYSNAME="x86_darwin_90" - OSXSDK="macosx10.5" - ;; - i?86-apple-darwin10.*) - AFS_SYSNAME="x86_darwin_100" - OSXSDK="macosx10.6" - ;; - x86_64-apple-darwin10.*) - AFS_SYSNAME="x86_darwin_100" - OSXSDK="macosx10.6" - ;; - arm-apple-darwin10.*) - AFS_SYSNAME="arm_darwin_100" - OSXSDK="iphoneos4.0" - ;; - x86_64-apple-darwin11.*) - AFS_SYSNAME="x86_darwin_110" - OSXSDK="macosx10.7" - ;; - i?86-apple-darwin11.*) - AFS_SYSNAME="x86_darwin_110" - OSXSDK="macosx10.7" - ;; - x86_64-apple-darwin12.*) - AFS_SYSNAME="x86_darwin_120" - OSXSDK="macosx10.8" - ;; - i?86-apple-darwin12.*) - AFS_SYSNAME="x86_darwin_120" - OSXSDK="macosx10.8" - ;; - x86_64-apple-darwin13.*) - AFS_SYSNAME="x86_darwin_130" - OSXSDK="macosx10.9" - ;; - i?86-apple-darwin13.*) - AFS_SYSNAME="x86_darwin_130" - OSXSDK="macosx10.9" - ;; - x86_64-apple-darwin14.*) - AFS_SYSNAME="x86_darwin_140" - OSXSDK="macosx10.10" - ;; - i?86-apple-darwin14.*) - 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" - ;; - x86_64-apple-darwin16.*) - AFS_SYSNAME="x86_darwin_160" - OSXSDK="macosx10.12" - ;; - i?86-apple-darwin16.*) - AFS_SYSNAME="x86_darwin_160" - OSXSDK="macosx10.12" - ;; - x86_64-apple-darwin17.*) - AFS_SYSNAME="x86_darwin_170" - OSXSDK="macosx10.13" - ;; - i?86-apple-darwin17.*) - AFS_SYSNAME="x86_darwin_170" - OSXSDK="macosx10.13" - ;; - sparc-sun-solaris2.8) - AFS_SYSNAME="sun4x_58" - ;; - sparc-sun-solaris2.9) - AFS_SYSNAME="sun4x_59" - ;; - sparc-sun-solaris2.10) - AFS_SYSNAME="sun4x_510" - ;; - sparc-sun-solaris2.11) - AFS_SYSNAME="sun4x_511" - ;; - i386-pc-solaris2.8) - AFS_SYSNAME="sunx86_58" - ;; - i386-pc-solaris2.9) - AFS_SYSNAME="sunx86_59" - ;; - i386-pc-solaris2.10) - AFS_SYSNAME="sunx86_510" - ;; - i386-pc-solaris2.11) - AFS_SYSNAME="sunx86_511" - ;; - alpha*-dec-osf4.0*) - AFS_SYSNAME="alpha_dux40" - ;; - alpha*-dec-osf5.0*) - AFS_SYSNAME="alpha_dux50" - ;; - alpha*-dec-osf5.1*) - AFS_SYSNAME="alpha_dux51" - ;; - mips-sgi-irix6.5) - AFS_SYSNAME="sgi_65" - enable_pam="no" - ;; - ia64-*-linux*) - AFS_SYSNAME="ia64_linuxXX" - ;; - powerpc-*-linux*) - AFS_SYSNAME="`/bin/arch`_linuxXX" - ;; - powerpc64-*-linux*) - AFS_SYSNAME="ppc64_linuxXX" - ;; - alpha*-linux*) - AFS_SYSNAME="alpha_linux_XX" - ;; - s390-*-linux*) - AFS_SYSNAME="s390_linuxXX" - ;; - s390x-*-linux*) - AFS_SYSNAME="s390x_linuxXX" - ;; - sparc-*-linux*) - AFS_SYSNAME="`/bin/arch`_linuxXX" - ;; - sparc64-*-linux*) - AFS_SYSNAME="sparc64_linuxXX" - ;; - i?86-*-linux*) - AFS_SYSNAME="i386_linuxXX" - ;; - arm*-linux*) - AFS_SYSNAME="arm_linuxXX" - ;; - parisc-*-linux-gnu|hppa-*-linux-gnu) - AFS_SYSNAME="parisc_linuxXX" - enable_pam="no" - ;; - power*-ibm-aix4.2*) - AFS_SYSNAME="rs_aix42" - enable_pam="no" - ;; - power*-ibm-aix4.3*) - AFS_SYSNAME="rs_aix42" - enable_pam="no" - ;; - power*-ibm-aix5.1*) - AFS_SYSNAME="rs_aix51" - enable_pam="no" - ;; - power*-ibm-aix5.2*) - AFS_SYSNAME="rs_aix52" - enable_pam="no" - ;; - power*-ibm-aix5.3*) - AFS_SYSNAME="rs_aix53" - enable_pam="no" - ;; - power*-ibm-aix6.1*) - AFS_SYSNAME="rs_aix61" - enable_pam="no" - ;; - x86_64-*-linux-gnu) - AFS_SYSNAME="amd64_linuxXX" - enable_pam="yes" - ;; - *) - AC_MSG_ERROR(An AFS sysname is required) - exit 1 - ;; - esac - case $AFS_SYSNAME in - *_linux* | *_umlinux*) - if test "x${AFS_SYSKVERS}" = "x"; then - AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.) - fi - if test "x${AFS_SYSKVERS}" = "x24" || - test "x${AFS_SYSKVERS}" = "x22"; then - AC_MSG_ERROR([Linux 2.4.x and older are no longer supported by OpenAFS. Please use an OpenAFS 1.6.x release on those systems.]) - fi - _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/` - AFS_SYSNAME="$_AFS_SYSNAME" - AC_TRY_KBUILD( - [], - [#ifndef CONFIG_USERMODE - #error not UML - #endif], - ac_cv_linux_is_uml=yes,) - if test "${ac_cv_linux_is_uml}" = yes; then - _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/` - fi - AFS_SYSNAME="$_AFS_SYSNAME" - ;; - esac - AC_MSG_RESULT($AFS_SYSNAME) -fi - -case $AFS_SYSNAME in - *_darwin*) - AC_CHECK_HEADERS(crt_externs.h) - DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist - DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist - AC_SUBST(OSXSDK) - ;; -esac - -dnl Some hosts have a separate common param file they should include. Figure -dnl out if we're on one of them now that we know the sysname. -case $AFS_SYSNAME in - *_nbsd15) AFS_PARAM_COMMON=param.nbsd15.h ;; - *_nbsd16) AFS_PARAM_COMMON=param.nbsd16.h ;; - *_nbsd20) AFS_PARAM_COMMON=param.nbsd20.h ;; - *_nbsd21) AFS_PARAM_COMMON=param.nbsd21.h ;; - *_nbsd30) AFS_PARAM_COMMON=param.nbsd30.h ;; - *_nbsd40) AFS_PARAM_COMMON=param.nbsd40.h ;; - *_nbsd50) AFS_PARAM_COMMON=param.nbsd50.h ;; - *_nbsd60) AFS_PARAM_COMMON=param.nbsd60.h ;; - *_nbsd70) AFS_PARAM_COMMON=param.nbsd70.h ;; - *_obsd31) AFS_PARAM_COMMON=param.obsd31.h ;; - *_obsd32) AFS_PARAM_COMMON=param.obsd32.h ;; - *_obsd33) AFS_PARAM_COMMON=param.obsd33.h ;; - *_obsd34) AFS_PARAM_COMMON=param.obsd34.h ;; - *_obsd35) AFS_PARAM_COMMON=param.obsd35.h ;; - *_obsd36) AFS_PARAM_COMMON=param.obsd36.h ;; - *_obsd37) AFS_PARAM_COMMON=param.obsd37.h ;; - *_obsd38) AFS_PARAM_COMMON=param.obsd38.h ;; - *_obsd39) AFS_PARAM_COMMON=param.obsd39.h ;; - *_obsd40) AFS_PARAM_COMMON=param.obsd40.h ;; - *_obsd41) AFS_PARAM_COMMON=param.obsd41.h ;; - *_obsd42) AFS_PARAM_COMMON=param.obsd42.h ;; - *_obsd43) AFS_PARAM_COMMON=param.obsd43.h ;; - *_obsd44) AFS_PARAM_COMMON=param.obsd44.h ;; - *_obsd45) AFS_PARAM_COMMON=param.obsd45.h ;; - *_obsd46) AFS_PARAM_COMMON=param.obsd46.h ;; - *_obsd47) AFS_PARAM_COMMON=param.obsd47.h ;; - *_obsd48) AFS_PARAM_COMMON=param.obsd48.h ;; - *_obsd49) AFS_PARAM_COMMON=param.obsd49.h ;; - *_obsd50) AFS_PARAM_COMMON=param.obsd50.h ;; - *_obsd51) AFS_PARAM_COMMON=param.obsd51.h ;; - *_obsd52) AFS_PARAM_COMMON=param.obsd52.h ;; - *_obsd53) AFS_PARAM_COMMON=param.obsd53.h ;; - *_obsd54) AFS_PARAM_COMMON=param.obsd54.h ;; - *_linux26) AFS_PARAM_COMMON=param.linux26.h ;; -# Linux alpha adds an extra underscore for no good reason. - *_linux_26) AFS_PARAM_COMMON=param.linux26.h ;; - *_fbsd_*) AFS_PARAM_COMMON=param.generic_fbsd.h ;; -esac - +OPENAFS_OSTYPE +OPENAFS_SYSNAME OPENAFS_OSCONF - -case $AFS_SYSNAME in *_linux* | *_umlinux*) - - # Add (sub-) architecture-specific paths needed by conftests - case $AFS_SYSNAME in - *_umlinux26) - UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include" - UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include" - UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include" - CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS" - esac - - if test "x$enable_kernel_module" = "xyes"; then - if test "x$enable_debug_kernel" = "xno"; then - LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer" - fi - OPENAFS_GCC_SUPPORTS_MARCH - AC_SUBST(P5PLUS_KOPTS) - OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE - OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING - OPENAFS_GCC_SUPPORTS_NO_COMMON - OPENAFS_GCC_SUPPORTS_PIPE - AC_SUBST(LINUX_GCC_KOPTS) - - dnl Setup the kernel build environment - LINUX_KBUILD_USES_EXTRA_CFLAGS - LINUX_KERNEL_COMPILE_WORKS - - dnl Operation signature checks - AC_CHECK_LINUX_OPERATION([inode_operations], [follow_link], [no_nameidata], - [#include ], - [const char *], - [struct dentry *dentry, void **link_data]) - AC_CHECK_LINUX_OPERATION([inode_operations], [put_link], [no_nameidata], - [#include ], - [void], - [struct inode *inode, void *link_data]) - AC_CHECK_LINUX_OPERATION([inode_operations], [rename], [takes_flags], - [#include ], - [int], - [struct inode *oinode, struct dentry *odentry, - struct inode *ninode, struct dentry *ndentry, - unsigned int flags]) - - dnl Check for header files - AC_CHECK_LINUX_HEADER([cred.h]) - AC_CHECK_LINUX_HEADER([config.h]) - AC_CHECK_LINUX_HEADER([exportfs.h]) - AC_CHECK_LINUX_HEADER([freezer.h]) - AC_CHECK_LINUX_HEADER([key-type.h]) - AC_CHECK_LINUX_HEADER([semaphore.h]) - AC_CHECK_LINUX_HEADER([seq_file.h]) - AC_CHECK_LINUX_HEADER([sched/signal.h]) - AC_CHECK_LINUX_HEADER([uaccess.h]) - - dnl Type existence checks - AC_CHECK_LINUX_TYPE([struct vfs_path], [dcache.h]) - AC_CHECK_LINUX_TYPE([kuid_t], [uidgid.h]) - - dnl Check for structure elements - AC_CHECK_LINUX_STRUCT([address_space], [backing_dev_info], [fs.h]) - AC_CHECK_LINUX_STRUCT([address_space_operations], - [write_begin], [fs.h]) - AC_CHECK_LINUX_STRUCT([backing_dev_info], [name], - [backing-dev.h]) - AC_CHECK_LINUX_STRUCT([cred], [session_keyring], [cred.h]) - AC_CHECK_LINUX_STRUCT([ctl_table], [ctl_name], [sysctl.h]) - AC_CHECK_LINUX_STRUCT([dentry], [d_u.d_alias], [dcache.h]) - AC_CHECK_LINUX_STRUCT([dentry_operations], [d_automount], [dcache.h]) - AC_CHECK_LINUX_STRUCT([group_info], [gid], [cred.h]) - AC_CHECK_LINUX_STRUCT([inode], [i_alloc_sem], [fs.h]) - AC_CHECK_LINUX_STRUCT([inode], [i_blkbits], [fs.h]) - AC_CHECK_LINUX_STRUCT([inode], [i_blksize], [fs.h]) - AC_CHECK_LINUX_STRUCT([inode], [i_mutex], [fs.h]) - AC_CHECK_LINUX_STRUCT([inode], [i_security], [fs.h]) - AC_CHECK_LINUX_STRUCT([file], [f_path], [fs.h]) - AC_CHECK_LINUX_STRUCT([file_operations], [flock], [fs.h]) - AC_CHECK_LINUX_STRUCT([file_operations], [iterate], [fs.h]) - AC_CHECK_LINUX_STRUCT([file_operations], [read_iter], [fs.h]) - AC_CHECK_LINUX_STRUCT([file_operations], [sendfile], [fs.h]) - AC_CHECK_LINUX_STRUCT([file_system_type], [mount], [fs.h]) - AC_CHECK_LINUX_STRUCT([inode_operations], [truncate], [fs.h]) - AC_CHECK_LINUX_STRUCT([inode_operations], [get_link], [fs.h]) - AC_CHECK_LINUX_STRUCT([key], [payload.value], [key.h]) - AC_CHECK_LINUX_STRUCT([key_type], [instantiate_prep], [key-type.h]) - AC_CHECK_LINUX_STRUCT([key_type], [match_preparse], [key-type.h]) - AC_CHECK_LINUX_STRUCT([key_type], [preparse], [key-type.h]) - AC_CHECK_LINUX_STRUCT([msghdr], [msg_iter], [socket.h]) - AC_CHECK_LINUX_STRUCT([nameidata], [path], [namei.h]) - AC_CHECK_LINUX_STRUCT([proc_dir_entry], [owner], [proc_fs.h]) - AC_CHECK_LINUX_STRUCT([super_block], [s_bdi], [fs.h]) - AC_CHECK_LINUX_STRUCT([super_block], [s_d_op], [fs.h]) - AC_CHECK_LINUX_STRUCT([super_operations], [alloc_inode], - [fs.h]) - AC_CHECK_LINUX_STRUCT([super_operations], [evict_inode], - [fs.h]) - AC_CHECK_LINUX_STRUCT([task_struct], [cred], [sched.h]) - AC_CHECK_LINUX_STRUCT([task_struct], [exit_state], [sched.h]) - AC_CHECK_LINUX_STRUCT([task_struct], [parent], [sched.h]) - AC_CHECK_LINUX_STRUCT([task_struct], [real_parent], [sched.h]) - AC_CHECK_LINUX_STRUCT([task_struct], [rlim], [sched.h]) - AC_CHECK_LINUX_STRUCT([task_struct], [sig], [sched.h]) - AC_CHECK_LINUX_STRUCT([task_struct], [sighand], [sched.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 - AC_CHECK_LINUX_TYPED_STRUCT([read_descriptor_t], - [buf], [fs.h]) - - dnl Function existence checks - - AC_CHECK_LINUX_FUNC([__vfs_write], - [#include ], - [__vfs_write(NULL, NULL, 0, NULL);]) - AC_CHECK_LINUX_FUNC([kernel_write], - [#include ], - [kernel_write(NULL, NULL, 0, NULL);]) - AC_CHECK_LINUX_FUNC([bdi_init], - [#include ], - [bdi_init(NULL);]) - AC_CHECK_LINUX_FUNC([super_setup_bdi], - [#include ], - [struct super_block *sb; - super_setup_bdi(sb);]) - AC_CHECK_LINUX_FUNC([PageChecked], - [#include -#include ], - [struct page *_page; - int bchecked = PageChecked(_page);]) - AC_CHECK_LINUX_FUNC([PageFsMisc], - [#include -#include ], - [struct page *_page; - int bchecked = PageFsMisc(_page);]) - AC_CHECK_LINUX_FUNC([clear_inode], - [#include ], - [clear_inode(NULL);]) - AC_CHECK_LINUX_FUNC([current_kernel_time], - [#include ], - [struct timespec s; - s = current_kernel_time();]) - AC_CHECK_LINUX_FUNC([d_alloc_anon], - [#include ], - [d_alloc_anon(NULL);]) - AC_CHECK_LINUX_FUNC([d_count], - [#include ], - [d_count(NULL);]) - AC_CHECK_LINUX_FUNC([d_make_root], - [#include ], - [d_make_root(NULL);]) - AC_CHECK_LINUX_FUNC([do_sync_read], - [#include ], - [do_sync_read(NULL, NULL, 0, NULL);]) - AC_CHECK_LINUX_FUNC([file_dentry], - [#include ], - [struct file *f; file_dentry(f);]) - AC_CHECK_LINUX_FUNC([find_task_by_pid], - [#include ], - [pid_t p; find_task_by_pid(p);]) - AC_CHECK_LINUX_FUNC([generic_file_aio_read], - [#include ], - [generic_file_aio_read(NULL,NULL,0,0);]) - AC_CHECK_LINUX_FUNC([grab_cache_page_write_begin], - [#include ], - [grab_cache_page_write_begin(NULL, 0, 0);]) - AC_CHECK_LINUX_FUNC([hlist_unhashed], - [#include ], - [hlist_unhashed(0);]) - AC_CHECK_LINUX_FUNC([ihold], - [#include ], - [ihold(NULL);]) - AC_CHECK_LINUX_FUNC([i_size_read], - [#include ], - [i_size_read(NULL);]) - AC_CHECK_LINUX_FUNC([inode_setattr], - [#include ], - [inode_setattr(NULL, NULL);]) - AC_CHECK_LINUX_FUNC([iter_file_splice_write], - [#include ], - [iter_file_splice_write(NULL,NULL,NULL,0,0);]) - AC_CHECK_LINUX_FUNC([kernel_setsockopt], - [#include ], - [kernel_setsockopt(NULL, 0, 0, NULL, 0);]) - AC_CHECK_LINUX_FUNC([locks_lock_file_wait], - [#include ], - [locks_lock_file_wait(NULL, NULL);]) - AC_CHECK_LINUX_FUNC([page_follow_link], - [#include ], - [page_follow_link(0,0);]) - AC_CHECK_LINUX_FUNC([page_get_link], - [#include ], - [page_get_link(0,0,0);]) - AC_CHECK_LINUX_FUNC([page_offset], - [#include ], - [page_offset(NULL);]) - AC_CHECK_LINUX_FUNC([pagevec_lru_add_file], - [#include ], - [__pagevec_lru_add_file(NULL);]) - AC_CHECK_LINUX_FUNC([path_lookup], - [#include - #include ], - [path_lookup(NULL, 0, NULL);]) - AC_CHECK_LINUX_FUNC([proc_create], - [#include ], - [proc_create(NULL, 0, NULL, NULL);]) - AC_CHECK_LINUX_FUNC([rcu_read_lock], - [#include ], - [rcu_read_lock();]) - AC_CHECK_LINUX_FUNC([set_nlink], - [#include ], - [set_nlink(NULL, 1);]) - AC_CHECK_LINUX_FUNC([setattr_prepare], - [#include ], - [setattr_prepare(NULL, NULL);]) - AC_CHECK_LINUX_FUNC([sock_create_kern], - [#include ], - [sock_create_kern(0, 0, 0, NULL);]) - AC_CHECK_LINUX_FUNC([sock_create_kern_ns], - [#include ], - [sock_create_kern(NULL, 0, 0, 0, NULL);]) - AC_CHECK_LINUX_FUNC([splice_direct_to_actor], - [#include ], - [splice_direct_to_actor(NULL,NULL,NULL);]) - AC_CHECK_LINUX_FUNC([default_file_splice_read], - [#include ], - [default_file_splice_read(NULL,NULL,NULL, 0, 0);]) - AC_CHECK_LINUX_FUNC([svc_addr_in], - [#include ], - [svc_addr_in(NULL);]) - AC_CHECK_LINUX_FUNC([zero_user_segments], - [#include ], - [zero_user_segments(NULL, 0, 0, 0, 0);]) - AC_CHECK_LINUX_FUNC([noop_fsync], - [#include ], - [void *address = &noop_fsync; printk("%p\n", address)];) - AC_CHECK_LINUX_FUNC([kthread_run], - [#include - #include ], - [kthread_run(NULL, NULL, "test");]) - AC_CHECK_LINUX_FUNC([inode_nohighmem], - [#include ], - [inode_nohighmem(NULL);]) - AC_CHECK_LINUX_FUNC([inode_lock], - [#include ], - [inode_lock(NULL);]) - - dnl Consequences - things which get set as a result of the - dnl above tests - AS_IF([test "x$ac_cv_linux_func_d_alloc_anon" = "xno"], - [AC_DEFINE([AFS_NONFSTRANS], 1, - [define to disable the nfs translator])]) - - dnl Assorted more complex tests - LINUX_AIO_NONVECTOR - LINUX_EXPORTS_PROC_ROOT_FS - LINUX_KMEM_CACHE_INIT - LINUX_HAVE_KMEM_CACHE_T - LINUX_KMEM_CACHE_CREATE_TAKES_DTOR - LINUX_KMEM_CACHE_CREATE_CTOR_TAKES_VOID - LINUX_D_PATH_TAKES_STRUCT_PATH - LINUX_NEW_EXPORT_OPS - LINUX_INODE_SETATTR_RETURN_TYPE - LINUX_IOP_I_CREATE_TAKES_NAMEIDATA - LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA - LINUX_IOP_I_PERMISSION_TAKES_FLAGS - LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA - LINUX_IOP_I_PUT_LINK_TAKES_COOKIE - LINUX_DOP_D_DELETE_TAKES_CONST - LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA - LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T - LINUX_FOP_F_FSYNC_TAKES_DENTRY - LINUX_FOP_F_FSYNC_TAKES_RANGE - LINUX_AOP_WRITEBACK_CONTROL - LINUX_FS_STRUCT_FOP_HAS_SPLICE - LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG - LINUX_KERNEL_PAGEVEC_INIT_COLD_ARG - LINUX_POSIX_TEST_LOCK_RETURNS_CONFLICT - LINUX_POSIX_TEST_LOCK_CONFLICT_ARG - LINUX_KERNEL_SOCK_CREATE - LINUX_EXPORTS_KEY_TYPE_KEYRING - LINUX_NEED_RHCONFIG - LINUX_RECALC_SIGPENDING_ARG_TYPE - LINUX_EXPORTS_TASKLIST_LOCK - LINUX_GET_SB_HAS_STRUCT_VFSMOUNT - LINUX_STATFS_TAKES_DENTRY - LINUX_REFRIGERATOR - LINUX_HAVE_TRY_TO_FREEZE - LINUX_LINUX_KEYRING_SUPPORT - LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK - LINUX_KEY_ALLOC_NEEDS_CRED - LINUX_INIT_WORK_HAS_DATA - LINUX_REGISTER_SYSCTL_TABLE_NOFLAG - LINUX_HAVE_DCACHE_LOCK - LINUX_D_COUNT_IS_INT - LINUX_IOP_GETATTR_TAKES_PATH_STRUCT - LINUX_IOP_MKDIR_TAKES_UMODE_T - LINUX_IOP_CREATE_TAKES_UMODE_T - LINUX_EXPORT_OP_ENCODE_FH_TAKES_INODES - LINUX_KMAP_ATOMIC_TAKES_NO_KM_TYPE - LINUX_DENTRY_OPEN_TAKES_PATH - LINUX_D_ALIAS_IS_HLIST - LINUX_HLIST_ITERATOR_NO_NODE - LINUX_IOP_I_CREATE_TAKES_BOOL - LINUX_DOP_D_REVALIDATE_TAKES_UNSIGNED - LINUX_IOP_LOOKUP_TAKES_UNSIGNED - LINUX_D_INVALIDATE_IS_VOID - LINUX_KERNEL_READ_OFFSET_IS_LAST - - dnl If we are guaranteed that keyrings will work - that is - dnl a) The kernel has keyrings enabled - dnl b) The code is new enough to give us a key_type_keyring - dnl then we just disable syscall probing unless we've been - dnl told otherwise - - AS_IF([test "$enable_linux_syscall_probing" = "maybe"], - [AS_IF([test "$ac_cv_linux_keyring_support" = "yes" -a "$ac_cv_linux_exports_key_type_keyring" = "yes"], - [enable_linux_syscall_probing="no"], - [enable_linux_syscall_probing="yes"]) - ]) - - dnl Syscall probing needs a few tests of its own, and just - dnl won't work if the kernel doesn't export init_mm - AS_IF([test "$enable_linux_syscall_probing" = "yes"], [ - LINUX_EXPORTS_INIT_MM - AS_IF([test "$ac_cv_linux_exports_init_mm" = "no"], [ - AC_MSG_ERROR( - [Can't do syscall probing without exported init_mm]) - ]) - LINUX_EXPORTS_SYS_CHDIR - LINUX_EXPORTS_SYS_OPEN - AC_DEFINE(ENABLE_LINUX_SYSCALL_PROBING, 1, - [define to enable syscall table probes]) - ]) - - dnl Packaging and SMP build - if test "x$with_linux_kernel_packaging" != "xyes" ; then - LINUX_WHICH_MODULES - else - AC_SUBST(MPS,'SP') - fi - - dnl Syscall probing - if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then - AS_IF([test "$enable_linux_syscall_probing" = "yes"], [ - AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported]) - ]) - ac_cv_linux_exports_sys_call_table=no - if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then - ac_cv_linux_exports_ia32_sys_call_table=yes - fi - else - LINUX_EXPORTS_KALLSYMS_ADDRESS - LINUX_EXPORTS_KALLSYMS_SYMBOL - LINUX_EXPORTS_SYS_CALL_TABLE - LINUX_EXPORTS_IA32_SYS_CALL_TABLE - if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then - linux_syscall_method=none - if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then - linux_syscall_method=scan - if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then - linux_syscall_method=scan_with_kallsyms_address - fi - fi - if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then - linux_syscall_method=kallsyms_symbol - fi - if test "x$linux_syscall_method" = "xnone"; then - AC_MSG_WARN([no available sys_call_table access method -- guessing scan]) - linux_syscall_method=scan - fi - fi - fi - if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then - AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file]) - fi - if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then - AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file]) - fi - if test "x$ac_cv_linux_func_page_get_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then - AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API]) - else - AC_MSG_WARN([your kernel does not have a usable symlink cache API]) - fi - if test "x$ac_cv_linux_func_page_get_link" != "xyes" -a "x$ac_cv_linux_struct_inode_operations_has_get_link" = "xyes"; then - AC_MSG_ERROR([Your kernel does not use follow_link - not supported without symlink cache API]) - exit 1 - fi - : - fi - if test "x$enable_linux_d_splice_alias_extra_iput" = xyes; then - AC_DEFINE(D_SPLICE_ALIAS_LEAK_ON_ERROR, 1, [for internal use]) - fi -dnl Linux-only, but just enable always. - AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client]) -esac - -AC_CACHE_CHECK([if compiler has __sync_add_and_fetch], - [ac_cv_sync_fetch_and_add], - [AC_TRY_LINK(, [int var; return __sync_add_and_fetch(&var, 1);], - [ac_cv_sync_fetch_and_add=yes], - [ac_cv_sync_fetch_and_add=no]) -]) -AS_IF([test "$ac_cv_sync_fetch_and_add" = "yes"], - [AC_DEFINE(HAVE_SYNC_FETCH_AND_ADD, 1, - [define if your C compiler has __sync_add_and_fetch])]) - -AC_CACHE_CHECK([if struct sockaddr has sa_len field], - [ac_cv_sockaddr_len], - [AC_TRY_COMPILE( [#include -#include ], - [struct sockaddr *a; a->sa_len=0;], - [ac_cv_sockaddr_len=yes], - [ac_cv_sockaddr_len=no]) -]) -AS_IF([test "$ac_cv_sockaddr_len" = "yes"], - [AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, - [define if you struct sockaddr sa_len])]) - -if test "x${MKAFS_OSTYPE}" = "xIRIX"; then - echo Skipping library tests because they confuse Irix. -else - AC_SEARCH_LIBS([socket], [socket inet]) - AC_SEARCH_LIBS([connect], [nsl]) - AC_SEARCH_LIBS([gethostbyname], [dns nsl resolv]) - - dnl darwin wants it, aix hates it - AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h) - AC_TRY_COMPILE([ - #include - #include - #include - #include - #include - #include - #include - #include - #include - ], [static int i; i = 0;], - [AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H, 1, [define if arpa/nameser_compat.h exists])], - [AC_MSG_RESULT(no) - ]) - - openafs_save_libs="$LIBS" - AC_MSG_CHECKING([for res_search]) - AC_FUNC_RES_SEARCH - - if test "$ac_cv_func_res_search" = no; then - for lib in dns nsl resolv; do - if test "$ac_cv_func_res_search" != yes; then - LIBS="-l$lib $LIBS" - AC_FUNC_RES_SEARCH - LIBS="$openafs_save_libs" - fi - done - if test "$ac_cv_func_res_search" = yes; then - LIB_AFSDB="-l$lib" - AC_DEFINE(HAVE_RES_SEARCH, 1, []) - AC_MSG_RESULT([yes, in lib$lib]) - else - AC_MSG_RESULT(no) - fi - else - AC_DEFINE(HAVE_RES_SEARCH, 1, []) - AC_MSG_RESULT(yes) - fi - -fi -XLIBS="$LIB_AFSDB $XLIBS" - +OPENAFS_LINUX_CHECKS +OPENAFS_C_ATOMIC_CHECKS +OPENAFS_SOCKET_CHECKS +OPENAFS_LIBRARY_CHECKS AC_CHECK_RESOLV_RETRANS - -AC_CACHE_CHECK([for setsockopt(, SOL_IP, IP_RECVERR)], - [ac_cv_setsockopt_iprecverr], - [AC_TRY_COMPILE( [ -#include -#include -#include ], -[int on=1; -setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], - [ac_cv_setsockopt_iprecverr=yes], - [ac_cv_setsockopt_iprecverr=no])]) - -AS_IF([test "$ac_cv_setsockopt_iprecverr" = "yes"], - [AC_DEFINE([HAVE_SETSOCKOPT_IP_RECVERR], [1], - [define if we can receive socket errors via IP_RECVERR])]) - -PTHREAD_LIBS=error -if test "x$MKAFS_OSTYPE" = OBSD; then - PTHREAD_LIBS="-pthread" -fi -if test "x$MKAFS_OSTYPE" = xDFBSD; then - PTHREAD_LIBS="-pthread" -fi -if test "x$PTHREAD_LIBS" = xerror; then - AC_CHECK_LIB(pthread, pthread_attr_init, - PTHREAD_LIBS="-lpthread") -fi -if test "x$PTHREAD_LIBS" = xerror; then - AC_CHECK_LIB(pthreads, pthread_attr_init, - PTHREAD_LIBS="-lpthreads") -fi -if test "x$PTHREAD_LIBS" = xerror; then - AC_CHECK_LIB(c_r, pthread_attr_init, - PTHREAD_LIBS="-lc_r") -fi -if test "x$PTHREAD_LIBS" = xerror; then - AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="") -fi -if test "x$PTHREAD_LIBS" = xerror; then - # pthread_attr_init is a macro under HPUX 11.0 and 11.11 - AC_CHECK_LIB(pthread, pthread_attr_destroy, - PTHREAD_LIBS="-lpthread") -fi -if test "x$PTHREAD_LIBS" = xerror; then - AC_MSG_WARN(*** Unable to locate working posix thread library ***) -fi -AC_SUBST(PTHREAD_LIBS) - +OPENAFS_SOCKOPT_CHECK +OPENAFS_PTHREAD_CHECKS HOST_CPU="$host_cpu" - -if test "x$with_bsd_kernel_headers" != "x"; then - BSD_KERNEL_PATH="$with_bsd_kernel_headers" -else - BSD_KERNEL_PATH="/usr/src/sys" -fi - -if test "x$with_bsd_kernel_build" != "x"; then - BSD_KERNEL_BUILD="$with_bsd_kernel_build" -else - case $AFS_SYSNAME in - *_fbsd_*) - BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC" - ;; - *_nbsd*) - BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/arch/${HOST_CPU}/compile/GENERIC" - esac -fi - -# Fast restart -if test "$enable_supergroups" = "yes"; then - AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups]) -fi - -if test "$enable_bitmap_later" = "yes"; then - AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later]) -fi - -if test "$enable_unix_sockets" = "yes"; then - AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.]) - USE_UNIX_SOCKETS="yes" -else - USE_UNIX_SOCKETS="no" -fi -AC_SUBST(USE_UNIX_SOCKETS) - -if test "$enable_ubik_read_while_write" = "yes"; then - AC_DEFINE(UBIK_READ_WHILE_WRITE, 1, [define if you want to enable ubik read while write]) -fi - -if test "$enable_namei_fileserver" = "yes"; then - AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver]) - VFSCK="" -else - if test "$enable_namei_fileserver" = "default"; then - case $host in - *-solaris2.10*) - AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver) - AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver]) - VFSCK="" - ;; - *-solaris2.11*) - AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver) - AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver]) - VFSCK="" - ;; - *) - VFSCK="vfsck" - ;; - esac - else - VFSCK="vfsck" - fi -fi - -dnl check for tivoli -AC_MSG_CHECKING(for tivoli tsm butc support) -XBSA_CFLAGS="" -if test "$enable_tivoli_tsm" = "yes"; then - XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen - XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen - XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample - XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample - XBSADIR5=/usr/tivoli/tsm/client/api/bin64/sample - XBSADIR6=/opt/tivoli/tsm/client/api/bin64/sample - - if test -r "$XBSADIR3/dsmapifp.h"; then - XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3" - XBSA_XLIBS="-ldl" - AC_MSG_RESULT([yes, $XBSA_CFLAGS]) - elif test -r "$XBSADIR4/dsmapifp.h"; then - XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4" - XBSA_XLIBS="-ldl" - AC_MSG_RESULT([yes, $XBSA_CFLAGS]) - elif test -r "$XBSADIR5/dsmapifp.h"; then - XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR5" - XBSA_XLIBS="-ldl" - AC_MSG_RESULT([yes, $XBSA_CFLAGS]) - elif test -r "$XBSADIR6/dsmapifp.h"; then - XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR6" - XBSA_XLIBS="-ldl" - AC_MSG_RESULT([yes, $XBSA_CFLAGS]) - elif test -r "$XBSADIR1/xbsa.h"; then - XBSA_CFLAGS="-Dxbsa -I$XBSADIR1" - XBSA_XLIBS="" - AC_MSG_RESULT([yes, $XBSA_CFLAGS]) - elif test -r "$XBSADIR2/xbsa.h"; then - XBSA_CFLAGS="-Dxbsa -I$XBSADIR2" - XBSA_XLIBS="" - AC_MSG_RESULT([yes, $XBSA_CFLAGS]) - else - AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files]) - fi -else - AC_MSG_RESULT([no]) -fi -AC_SUBST(XBSA_CFLAGS) -AC_SUBST(XBSA_XLIBS) -XLIBS="$XBSA_XLIBS $XLIBS" - -dnl checks for header files. -AC_HEADER_STDC -AC_HEADER_SYS_WAIT -AC_HEADER_DIRENT -AC_CHECK_HEADERS([ \ - arpa/inet.h \ - arpa/nameser.h \ - curses.h\ - direct.h \ - errno.h \ - fcntl.h \ - grp.h \ - math.h \ - mntent.h \ - ncurses.h \ - ncurses/ncurses.h \ - netdb.h \ - netinet/in.h \ - pthread_np.h \ - pwd.h \ - regex.h \ - security/pam_appl.h \ - signal.h \ - stdint.h \ - stdio_ext.h \ - stdlib.h \ - string.h \ - strings.h \ - sys/bitypes.h \ - sys/bswap.h \ - sys/dk.h \ - sys/fcntl.h \ - sys/file.h \ - sys/fs_types.h \ - sys/fstyp.h \ - sys/ioctl.h \ - sys/ipc.h \ - sys/lockf.h \ - sys/map.h \ - sys/mount.h \ - sys/mntent.h \ - sys/mnttab.h \ - sys/pag.h \ - sys/param.h \ - sys/resource.h \ - sys/select.h \ - sys/statfs.h \ - sys/statvfs.h \ - sys/socket.h \ - sys/sysctl.h \ - sys/time.h \ - sys/types.h \ - sys/uio.h \ - sys/un.h \ - sys/vfs.h \ - syslog.h \ - termios.h \ - time.h \ - ucontext.h \ - unistd.h \ - windows.h \ - ]) - -AC_CHECK_HEADERS([resolv.h], [], [], [AC_INCLUDES_DEFAULT -#ifdef HAVE_NETINET_IN_H -# include -#endif]) - -AC_CHECK_HEADERS([net/if.h],[],[],[AC_INCLUDES_DEFAULT -#ifdef HAVE_SYS_SOCKET_H -# include -#endif]) - -AC_CHECK_HEADERS([netinet/if_ether.h],[],[],[AC_INCLUDES_DEFAULT -#ifdef HAVE_SYS_SOCKET_H -# include -#endif -#ifdef HAVE_NETINET_IN_H -# include -#endif -#ifdef HAVE_NET_IF_H -# include -#endif]) - -AC_CHECK_HEADERS([security/pam_modules.h],[],[],[AC_INCLUDES_DEFAULT -#ifdef HAVE_SECURITY_PAM_APPL_H -# include -#endif]) - -AC_CHECK_HEADERS(linux/errqueue.h,,,[#include ]) - -AC_CHECK_TYPES([fsblkcnt_t],,,[ -#include -#ifdef HAVE_SYS_BITYPES_H -#include -#endif -#ifdef HAVE_SYS_STATFS_H -#include -#endif -#ifdef HAVE_SYS_STATVFS_H -#include -#endif -]) - -dnl see what struct stat has for timestamps -AC_CHECK_MEMBERS([struct stat.st_ctimespec, struct stat.st_ctimensec]) - -OPENAFS_TEST_PACKAGE(libintl,[#include ],[-lintl],,,INTL) - -if test "$enable_debug_locks" = yes; then - AC_DEFINE(OPR_DEBUG_LOCKS, 1, [turn on lock debugging in opr]) -fi - -if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then - HAVE_PAM="yes" -else - HAVE_PAM="no" -fi -AC_SUBST(HAVE_PAM) - -if test "$enable_login" = yes; then - BUILD_LOGIN="yes" -else - BUILD_LOGIN="no" -fi -AC_SUBST(BUILD_LOGIN) - -if test "$enable_kauth" = yes; then - INSTALL_KAUTH="yes" -else - INSTALL_KAUTH="no" -fi -AC_SUBST(INSTALL_KAUTH) - -AC_CHECK_FUNCS([ \ - arc4random \ - closelog \ - fcntl \ - fseeko64 \ - ftello64 \ - getcwd \ - getegid \ - geteuid \ - getgid \ - getuid \ - getrlimit \ - issetugid \ - mkstemp \ - openlog \ - poll \ - pread \ - preadv \ - preadv64 \ - pwrite \ - pwritev \ - pwritev64 \ - regcomp \ - regerror \ - regexec \ - setitimer \ - setvbuf \ - sigaction \ - strcasestr \ - strerror \ - sysconf \ - sysctl \ - syslog \ - tdestroy \ - timegm \ -]) - -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 -AC_CHECK_FUNCS([ \ - chown \ - fchown \ - gethostname \ - lstat \ - inet_aton \ - putenv \ - readv \ - setenv \ - strdup \ - strftime \ - strndup \ - strsep \ - unsetenv \ -]) - -dnl Functions that are in objects that we always build from libroken -AC_CHECK_FUNCS([ \ - asprintf \ - asnprintf \ - vasprintf \ - vasnprintf \ - vsnprintf \ - snprintf \ -]) - -dnl Functions that we're going to try and get from libroken -AC_REPLACE_FUNCS([ \ - daemon \ - ecalloc \ - emalloc \ - erealloc \ - err \ - errx \ - flock \ - freeaddrinfo \ - gai_strerror \ - getaddrinfo \ - getdtablesize \ - getnameinfo \ - getopt \ - getprogname \ - gettimeofday \ - inet_ntop \ - inet_pton \ - localtime_r \ - mkstemp \ - setenv \ - setprogname \ - strcasecmp \ - strlcat \ - strnlen \ - strlcpy \ - strsep \ - tdelete \ - tfind \ - tsearch \ - twalk \ - unsetenv \ - verr \ - verrx \ - vsyslog \ - vwarn \ - vwarnx \ - warn \ - warnx \ -]) - -dnl Headers that we're going to try and get from libroken -AC_CHECK_HEADERS([ \ - err.h \ - search.h \ -]) - -AC_CHECK_DECLS([h_errno], [], [], [ -#include -#ifdef HAVE_NETDB_H -#include -#endif -]) - +OPENAFS_BSD_CHECKS +OPENAFS_OPTION_TESTS +OPENAFS_TIVOLI_TESTS +OPENAFS_HEADER_CHECKS +OPENAFS_MEMBER_CHECKS +OPENAFS_LIBINTL_CHECKS +OPENAFS_MORE_OPTION_TESTS +OPENAFS_FUNCTION_CHECKS +OPENAFS_ROKEN +OPENAFS_HCRYPTO +OPENAFS_CURSES +OPENAFS_C_ATTRIBUTE +OPENAFS_C_PRAGMA +OPENAFS_MORE_ROKEN_CHECKS +OPENAFS_NETDB_CHECKS AC_HEADER_TIME - -ROKEN_HEADERS= -AS_IF([test "$ac_cv_header_err_h" != "yes" ], - [ROKEN_HEADERS="$ROKEN_HEADERS \$(TOP_INCDIR)/err.h"], - []) -AC_SUBST(ROKEN_HEADERS) - -dnl Stuff that's harder ... -AC_MSG_CHECKING([for bswap16]) -AC_LINK_IFELSE([AC_LANG_PROGRAM([ -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_BSWAP_H -#include -#endif -], -[short a, b; b = bswap16(a); ])], -[AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_BSWAP16, 1, [Define to 1 if you have the bswap16 function]) -], -[AC_MSG_RESULT(no)]) - -AC_MSG_CHECKING([for bswap32]) -AC_LINK_IFELSE([AC_LANG_PROGRAM([#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_BSWAP_H -#include -#endif -], -[int a, b; b = bswap32(a); ])], -[AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_BSWAP32, 1, [Define to 1 if you have the bswap32 function]) -], -[AC_MSG_RESULT(no)]) - -case $AFS_SYSNAME in -*hp_ux* | *hpux*) - AC_MSG_WARN([Some versions of HP-UX have a buggy positional I/O implementation. Forcing no positional I/O.]) - ;; -*) - AC_MSG_CHECKING([for positional I/O]) - if test "$ac_cv_func_pread" = "yes" && \ - test "$ac_cv_func_pwrite" = "yes"; then - AC_DEFINE(HAVE_PIO, 1, [define if you have pread() and pwrite()]) - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi - AC_MSG_CHECKING([for vectored positional I/O]) - AS_IF([test "$ac_cv_func_preadv" = "yes" -a \ - "$ac_cv_func_pwritev" = "yes" -a \ - "$ac_cv_func_preadv64" = "yes" -a \ - "$ac_cv_func_pwritev64" = "yes"], - [AC_DEFINE(HAVE_PIOV, 1, [define if you have preadv() and pwritev()]) - AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no)]) - ;; -esac - -AC_MSG_CHECKING([for POSIX regex library]) -if test "$ac_cv_header_regex_h" = "yes" && \ - test "$ac_cv_func_regcomp" = "yes" && \ - test "$ac_cv_func_regexec" = "yes" && \ - test "$ac_cv_func_regerror" = "yes"; then - AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library]) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -dnl Look for "non-portable" pthreads functions. -save_LIBS="$LIBS" -LIBS="$LIBS $PTHREAD_LIBS" -AC_CHECK_FUNCS([ \ - pthread_set_name_np \ - pthread_setname_np \ -]) - -dnl Sadly, there are three different versions of pthread_setname_np. -dnl Try to cater for all of them. -if test "$ac_cv_func_pthread_setname_np" = "yes" ; then - AC_MSG_CHECKING([for signature of pthread_setname_np]) - AC_TRY_COMPILE([ -#include -#ifdef HAVE_PTHREAD_NP_H -#include -#endif -], [pthread_setname_np(pthread_self(), "test", (void *)0)], [ - AC_MSG_RESULT([three arguments]) - pthread_setname_np_args=3], [ - AC_TRY_COMPILE([ -#include -#ifdef HAVE_PTHREAD_NP_H -#include -#endif -], [pthread_setname_np(pthread_self(), "test")], [ - AC_MSG_RESULT([two arguments]) - pthread_setname_np_args=2], [ - AC_TRY_COMPILE([ -#include -#ifdef HAVE_PTHREAD_NP_H -#include -#endif -], [pthread_setname_np("test")], [ - AC_MSG_RESULT([one argument]) - pthread_setname_np_args=1], [pthread_setname_np_args=0]) -]) -]) -AC_DEFINE_UNQUOTED([PTHREAD_SETNAME_NP_ARGS], $pthread_setname_np_args, [Number of arguments required by pthread_setname_np() function]) -fi -LIBS="$save_LIBS" - -openafs_cv_saved_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS $XCFLAGS_NOCHECKING" - -AC_TYPE_SIGNAL -OPENAFS_RETSIGTYPE -AC_CHECK_SIZEOF(void *) -AC_CHECK_SIZEOF(unsigned long long) -AC_CHECK_SIZEOF(unsigned long) -AC_CHECK_SIZEOF(unsigned int) -AC_TYPE_INTPTR_T -AC_TYPE_UINTPTR_T -AC_TYPE_SSIZE_T -AC_CHECK_TYPE([sig_atomic_t],[], - [AC_DEFINE([sig_atomic_t], [int], - [Define to int if does not define.])], -[#include -#include ]) -AC_CHECK_TYPE([socklen_t],[], - [AC_DEFINE([socklen_t], [int], - [Define to int if does not define.])], -[#include -#include ]) -AC_CHECK_TYPES(off64_t) -AC_CHECK_TYPES([ssize_t], [], [], [#include ]) -AC_CHECK_TYPES([struct winsize], [], [], [ -#ifdef HAVE_TERMIOS_H -# include -#else -# include -#endif -#include ]) -AC_CHECK_TYPES([sa_family_t, socklen_t, struct sockaddr, - struct sockaddr_storage], - [], [], [ -#include -#include -]) -AC_CHECK_TYPES([sa_family_t], [], [], [ -#include -#include -]) -AC_CHECK_TYPES([struct addrinfo], [], [], [ -#include -#ifdef HAVE_NETDB_H -#include -#endif -]) -AC_CHECK_TYPES([long long], [], [], []) - -AC_SIZEOF_TYPE(long) - -CFLAGS="$openafs_cv_saved_CFLAGS" - +OPENAFS_ROKEN_HEADERS +OPENAFS_BSWAP_CHECKS +OPENAFS_HPUX_CHECKS +OPENAFS_REGEX_CHECKS +OPENAFS_MORE_PTHREAD_CHECKS +OPENAFS_TYPE_CHECKS RRA_HEADER_PAM_CONST - - -dnl Directory PATH handling -if test "x$enable_transarc_paths" = "xyes" ; then - afsconfdir=${afsconfdir=/usr/afs/etc} - viceetcdir=${viceetcdir=/usr/vice/etc} - afskerneldir=${afskerneldir=${viceetcdir}} - afssrvbindir=${afssrvbindir=/usr/afs/bin} - afssrvsbindir=${afssrvsbindir=/usr/afs/bin} - afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin} - afsdbdir=${afsdbdir=/usr/afs/db} - afslogsdir=${afslogsdir=/usr/afs/logs} - afslocaldir=${afslocaldir=/usr/afs/local} - afsbackupdir=${afsbackupdir=/usr/afs/backup} - afsbosconfigdir=${afsbosconfigdir=/usr/afs/local} - afsdatadir=${afsdatadir=/usr/vice/etc} -else - afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'} - viceetcdir=${viceetcdir='${sysconfdir}/openafs'} - afskerneldir=${afskerneldir='${libdir}/openafs'} - afssrvbindir=${afssrvbindir='${bindir}'} - afssrvsbindir=${afssrvsbindir='${sbindir}'} - afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'} - afsdbdir=${afsdbdir='${localstatedir}/openafs/db'} - afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'} - afslocaldir=${afslocaldir='${localstatedir}/openafs'} - afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'} - afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'} - afsdatadir=${afsdatadir='${datadir}/openafs'} -fi -AC_SUBST(afsconfdir) -AC_SUBST(viceetcdir) -AC_SUBST(afskerneldir) -AC_SUBST(afssrvbindir) -AC_SUBST(afssrvsbindir) -AC_SUBST(afssrvlibexecdir) -AC_SUBST(afsdbdir) -AC_SUBST(afslogsdir) -AC_SUBST(afslocaldir) -AC_SUBST(afsbackupdir) -AC_SUBST(afsbosconfigdir) -AC_SUBST(afsdatadir) - -if test "x$enable_kernel_module" = "xyes"; then -ENABLE_KERNEL_MODULE=libafs -fi - -if test "x$enable_pthreaded_ubik" = "xyes"; then -ENABLE_PTHREADED_UBIK=yes -fi - -AC_SUBST(VFSCK) -AC_SUBST(AFS_SYSNAME) -AC_SUBST(AFS_PARAM_COMMON) -AC_SUBST(ENABLE_KERNEL_MODULE) -AC_SUBST(ENABLE_PTHREADED_UBIK) -AC_SUBST(LIB_AFSDB) -AC_SUBST(LINUX_KERNEL_PATH) -AC_SUBST(LINUX_KERNEL_BUILD) -AC_SUBST(HOST_CPU) -AC_SUBST(BSD_KERNEL_PATH) -AC_SUBST(BSD_KERNEL_BUILD) -AC_SUBST(LINUX_VERSION) -AC_SUBST(MKAFS_OSTYPE) -AC_SUBST(TOP_OBJDIR) -AC_SUBST(TOP_SRCDIR) -AC_SUBST(TOP_INCDIR) -AC_SUBST(TOP_LIBDIR) -AC_SUBST(DEST) -AC_SUBST(DARWIN_INFOFILE) -AC_SUBST(IRIX_BUILD_IP35) -AC_SUBST(HTML_XSL) -AC_SUBST(XSLTPROC) -AC_SUBST(DOCBOOK2PDF) -AC_SUBST(DOCBOOK_STYLESHEETS) - +OPENAFS_DIRECTORY_PATHS +OPENAFS_YET_MORE_OPTION_TESTS +OPENAFS_OUTPUT_VARIABLES OPENAFS_FUSE OPENAFS_SWIG - -TOP_SRCDIR="${srcdir}/src" -dnl -dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere -dnl -case $TOP_SRCDIR in - /*) - ;; - *) - TOP_SRCDIR=`cd $TOP_SRCDIR; pwd` - ;; -esac - -TOP_OBJDIR="${SRCDIR_PARENT}" -TOP_INCDIR="${SRCDIR_PARENT}/include" -TOP_LIBDIR="${SRCDIR_PARENT}/lib" -if test "${DEST}x" = "x"; then - DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest" -fi - -if test "x$with_crosstools_dir" != "x"; then - if test -f "$with_crosstools_dir/rxgen" -a -f "$with_crosstools_dir/compile_et" -a -f "$with_crosstools_dir/config"; then - COMPILE_ET_PATH=$with_crosstools_dir/compile_et - CONFIGTOOL_PATH=$with_crosstools_dir/config - RXGEN_PATH=$with_crosstools_dir/rxgen - else - AC_MSG_ERROR(Tools not found in $with_crosstools_dir) - exit 1 - fi -else - COMPILE_ET_PATH="${SRCDIR_PARENT}/src/comerr/compile_et" - CONFIGTOOL_PATH="${SRCDIR_PARENT}/src/config/config" - RXGEN_PATH="${SRCDIR_PARENT}/src/rxgen/rxgen" -fi -AC_SUBST(COMPILE_ET_PATH) -AC_SUBST(CONFIGTOOL_PATH) -AC_SUBST(RXGEN_PATH) - -HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh" -HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg" -AC_SUBST(HELPER_SPLINT) -AC_SUBST(HELPER_SPLINTCFG) - -mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs - -dnl Check to see if crypt lives in a different library -AC_CHECK_LIB(crypt, crypt, LIB_crypt="-lcrypt") -AC_SUBST(LIB_crypt) - -dnl Check to see if the compiler support labels in structs -AC_MSG_CHECKING(for label support in structs) -AC_TRY_COMPILE([], [ -extern void osi_UFSOpen(void); -struct labeltest { - void (*open) (void); -}; -struct labeltest struct_labeltest = { - .open = osi_UFSOpen, -} -], -[AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_STRUCT_LABEL_SUPPORT, 1, [Define to 1 if your compiler supports labels in structs.]) -], -[AC_MSG_RESULT(no) -]) - -AC_MSG_CHECKING([checking for dirfd]) -AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include -#ifdef HAVE_DIRENT_H -#include -#endif -]], - [[DIR *d = 0; dirfd(d);]])], - [ac_rk_have_dirfd=yes], [ac_rk_have_dirfd=no]) -if test "$ac_rk_have_dirfd" = "yes" ; then - AC_DEFINE_UNQUOTED(HAVE_DIRFD, 1, [have a dirfd function/macro]) -fi -AC_MSG_RESULT($ac_rk_have_dirfd) - -OPENAFS_HAVE_STRUCT_FIELD(DIR, dd_fd, [#include -#ifdef HAVE_DIRENT_H -#include -#endif]) - -OPENAFS_HAVE_STRUCT_FIELD(struct rusage, ru_idrss, -[#ifdef HAVE_SYS_RESOURCE_H -#include -#endif]) - -dnl Check for UUID library -AC_CHECK_HEADERS([uuid/uuid.h]) -AC_CHECK_LIB(uuid, uuid_generate, LIBS_uuid="-luuid") -AC_CHECK_FUNCS([uuid_generate]) +OPENAFS_TOPDIRS +OPENAFS_CROSSTOOLS +OPENAFS_LINT +OPENAFS_JAVA +OPENAFS_CRYPT_CHECKS +OPENAFS_C_STRUCT_LABEL_CHECK +OPENAFS_DIRENT_CHECKS +OPENAFS_SYS_RESOURCE_CHECKS +OPENAFS_UUID_CHECKS +OPENAFS_CTF_TOOLS_CHECKS ]) - - diff -Nru openafs-1.8.0~pre4/configure.ac openafs-1.8.0~pre5/configure.ac --- openafs-1.8.0~pre4/configure.ac 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/configure.ac 2018-02-19 14:40:36.000000000 +0000 @@ -9,8 +9,8 @@ AM_INIT_AUTOMAKE([foreign]) AC_CONFIG_HEADER([src/config/afsconfig.h]) -MACOS_VERSION=1.8.0fc4 -LINUX_PKGREL=1.8.0pre4 +MACOS_VERSION=1.8.0fc5 +LINUX_PKGREL=1.8.0pre5 AC_SUBST([MACOS_VERSION]) diff -Nru openafs-1.8.0~pre4/configure-libafs.ac openafs-1.8.0~pre5/configure-libafs.ac --- openafs-1.8.0~pre4/configure-libafs.ac 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/configure-libafs.ac 2018-02-19 14:40:36.000000000 +0000 @@ -8,7 +8,7 @@ AM_INIT_AUTOMAKE([foreign]) AC_CONFIG_HEADER([src/config/afsconfig.h]) -MACOS_VERSION=1.8.0fc4 +MACOS_VERSION=1.8.0fc5 AC_SUBST([MACOS_VERSION]) diff -Nru openafs-1.8.0~pre4/debian/changelog openafs-1.8.0~pre5/debian/changelog --- openafs-1.8.0~pre4/debian/changelog 2018-01-04 04:14:49.000000000 +0000 +++ openafs-1.8.0~pre5/debian/changelog 2018-02-19 16:51:08.000000000 +0000 @@ -1,3 +1,24 @@ +openafs (1.8.0~pre5-1) unstable; urgency=low + + [ Russ Allbery ] + * Remove myself from Uploaders. + + [ Benjamin Kaduk ] + * New upstream release candidate: + - Update CellServDB from grand.central.org (2017-03-14) + - Avoid rare deadlock condition when recreating a deleted file/directory + on old Linux kernels + - Clean up ubik DISK_ RPC behavior with respect to sending updates to + sites that would reject the update + - Remove includes of , for compatibility with glibc 2.26 + - Do not include RXGEN_OPCODE when throttling clients that generate too + many abort replies + * Update Vcs- entries in control to reflect the move from alioth to salsa + * Correct 1.8.0~pre4-1 changelog entry to reflect that it closed one more + Mayhem-reported bug. (Closes: #716446) + + -- Benjamin Kaduk Mon, 19 Feb 2018 10:51:08 -0600 + openafs (1.8.0~pre4-1) unstable; urgency=low [ Benjamin Kaduk ] @@ -26,7 +47,7 @@ - Improve ubik safety for relabels and writes shortly after an election - Preserve volume stats during reclone and restore operations - Improve command-line parsing for various utilities. - (Closes: #715623, #715787, #716144, #716234, #716444) + (Closes: #715623, #715787, #716144, #716234, #716444, #716446) - Fix for OPENAFS-SA-2017-001. (Closes: #883602) - Many other generic improvements throughout the tree; consult the upstream changelog for details. diff -Nru openafs-1.8.0~pre4/debian/control openafs-1.8.0~pre5/debian/control --- openafs-1.8.0~pre4/debian/control 2018-01-04 03:29:31.000000000 +0000 +++ openafs-1.8.0~pre5/debian/control 2018-02-19 16:42:55.000000000 +0000 @@ -2,8 +2,7 @@ Section: net Priority: optional Maintainer: Benjamin Kaduk -Uploaders: Russ Allbery , Sam Hartman , - Anders Kaseorg +Uploaders: Sam Hartman , Anders Kaseorg Build-Depends: debhelper (>= 9.20160709~), autoconf, automake, bison, comerr-dev, cpio, flex, libfuse-dev, libkrb5-dev, libncurses5-dev, libpam0g-dev, libxml2-utils, perl, pkg-config, @@ -12,8 +11,8 @@ xsltproc Standards-Version: 4.1.3 Homepage: http://www.openafs.org/ -Vcs-Git: git://anonscm.debian.org/pkg-k5-afs/openafs.git -Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-k5-afs/openafs.git +Vcs-Git: https://salsa.debian.org/debian/openafs.git +Vcs-Browser: https://salsa.debian.org/debian/openafs Package: openafs-client Architecture: alpha amd64 arm armel armhf i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc diff -Nru openafs-1.8.0~pre4/.gitignore openafs-1.8.0~pre5/.gitignore --- openafs-1.8.0~pre4/.gitignore 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/.gitignore 2018-02-19 14:40:36.000000000 +0000 @@ -40,6 +40,7 @@ !.mailmap !.gitignore +!.gitreview !.cvsignore !.splintrc diff -Nru openafs-1.8.0~pre4/.gitreview openafs-1.8.0~pre5/.gitreview --- openafs-1.8.0~pre4/.gitreview 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/.gitreview 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,4 @@ +[gerrit] +host=gerrit.openafs.org +port=29418 +project=openafs diff -Nru openafs-1.8.0~pre4/INSTALL openafs-1.8.0~pre5/INSTALL --- openafs-1.8.0~pre4/INSTALL 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/INSTALL 2018-02-19 14:40:36.000000000 +0000 @@ -499,6 +499,13 @@ xsltproc. By default, the user's path is searched for those programs in that order, and the first one found is used. + --with-ctf-tools[=DIR] + Location of ctfconvert and ctfmerge. Defaults to detect. These + tools create a reduced form of debug information that describes + types and function prototypes. This option is only relevant to + platforms that provide CTF tools and, at the moment, it is only + functional on Solaris (onbld package must be installed). + There are also some environment variables that you can set to control aspects of the build. They can be set either on the configure command line (preferred) or in the environment. diff -Nru openafs-1.8.0~pre4/NEWS openafs-1.8.0~pre5/NEWS --- openafs-1.8.0~pre4/NEWS 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/NEWS 2018-02-19 14:40:36.000000000 +0000 @@ -1,6 +1,6 @@ User-Visible OpenAFS Changes -OpenAFS 1.8.0pre3 +OpenAFS 1.8.0pre5 All Platforms @@ -80,6 +80,7 @@ - Support the SOURCE_DATE_EPOCH environment variable to improve build reproducibility. - Modernize language specific SWIG typemaps for libuafs Perl bindings. + - Refactor acinclude.m4 into a set of smaller m4 files (12876, 12877, 12878) * Improvements to documentation: - Document the new KeyFileExt file. @@ -115,12 +116,18 @@ - Add tool to find Unix cache manager lock identification numbers. - Add an option for pretty build output. - * RPM packaging updated: + * RPM packaging updates: - Update the spec file to keep up with accumulated changes. - Move the klog.krb5 man page to the openafs-krb5 sub-package. + - Remove stray man pages. (12870, 12871) - Prevent double-starting client on RHEL7 - Convert rpm spec file from deprecated 'make dest' to 'make install'. - Fix rpmbuild command line option default handling. + - Support older versions of rpmbuild which do not support the + rpmbuild %exclude directive. (12873) + - Move the legacy kaserver and related programs to separate sub-packages, + which are only built when rpmbuild is given the '--with kauth' option + (12600, 12872) * Add a new protection error code (PRNAMETOOLONG) instead of silently truncating names which exceed the maximum name length (PR_MAXNAMELEN). @@ -159,6 +166,8 @@ * Add user and build host in the version string returned by rxdebug -version. + * Support recent versions of gcc (7.2.1) (12897) + All Server Platforms * Ubik servers using pthreads are now available and are used by default @@ -168,6 +177,15 @@ permitted. This is a conservative change that may be removed in the future. + * Avoid continually retransmitting the ubik database to remote sites when + a write transaction occurs as remote sites are attempting to rejoin the + ubik cluster. (12896) + + * Ensure the ubik database version number is updated on remote sites at the + point the database is transferred to remote sites instead of waiting for + the next ubik beacon. This avoids write transaction failures during the + window between the database transfer and the next ubik beacon (12885). + * Remove periodic background fsync by the fileserver (ihandle fsync thread). * Fix potential file handle leak in the file server ihandle caching layer. @@ -310,6 +328,8 @@ * Fix building gtx when ncurses is linked against libtinfo. + * Update to the GCO CellServDB update from 14 March 2017. + Linux * Remove Linux 2.2 and 2.4 support. @@ -340,6 +360,7 @@ * In Red Hat packaging, use a separate rpm for kmod debuginfo, removing a needless tight version dependency on the userspace package. + (12822, 12875) * Use the RemainAfterExit systemd feature to avoid premature exit when -afsdb is not given, for RPM packages. @@ -356,6 +377,9 @@ * Fix --enable-kernel-debug for linux 4.8+. + * Fix a hang encountered when accessing a previously removed + directory entry (12811). + * Support linux 4.10, 4.11, 4.12, 4.13, 4.14, 4.15 Solaris @@ -375,6 +399,11 @@ * Avoid BAD TRAP panic due to invalid opcodes on x86 with Studio 12.5. + * Add ctf debug records to Solaris kernel modules when debug builds + are enabled and the ctf tools are present (ctfconvert/ctfmerge). + + * Save kernel module function arguments on x86 for debugging purposes. + MacOS * Stop processing upcalls once rx shutdown starts. @@ -404,6 +433,11 @@ * Do not claim AFS_VM_RDWR_ENV + * Add sysnames and files for i386 and amd64 10.4, 11.1, and 12.0 + (12-CURRENT, at present). (12887, 12888) + + * Remove trailing semicolons to fix the build on FreeBSD (12899) + NetBSD * Stay up to date with new NetBSD releases (through 7.x) diff -Nru openafs-1.8.0~pre4/src/afs/afs_fetchstore.c openafs-1.8.0~pre5/src/afs/afs_fetchstore.c --- openafs-1.8.0~pre4/src/afs/afs_fetchstore.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/afs/afs_fetchstore.c 2018-02-19 14:40:36.000000000 +0000 @@ -11,9 +11,6 @@ #include "afs/param.h" #include "afs/sysincludes.h" /* Standard vendor system headers */ -#ifndef AFS_LINUX22_ENV -#include "rpc/types.h" -#endif #ifdef AFS_ALPHA_ENV #undef kmem_alloc #undef kmem_free diff -Nru openafs-1.8.0~pre4/src/afs/afs_memcache.c openafs-1.8.0~pre5/src/afs/afs_memcache.c --- openafs-1.8.0~pre4/src/afs/afs_memcache.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/afs/afs_memcache.c 2018-02-19 14:40:36.000000000 +0000 @@ -12,9 +12,6 @@ #include "afs/sysincludes.h" /* Standard vendor system headers */ -#ifndef AFS_LINUX22_ENV -#include "rpc/types.h" -#endif #include "afsincludes.h" /* Afs-based standard headers */ #include "afs/afs_stats.h" /* statistics */ diff -Nru openafs-1.8.0~pre4/src/afs/afs_nfsdisp.c openafs-1.8.0~pre5/src/afs/afs_nfsdisp.c --- openafs-1.8.0~pre4/src/afs/afs_nfsdisp.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/afs/afs_nfsdisp.c 2018-02-19 14:40:36.000000000 +0000 @@ -21,7 +21,6 @@ #include "rpc/auth_unix.h" #include "rpc/auth_des.h" #include "sys/tiuser.h" -#include "rpc/xdr.h" #include "rpc/svc.h" #include "nfs/nfs.h" diff -Nru openafs-1.8.0~pre4/src/afs/AIX/osi_misc.c openafs-1.8.0~pre5/src/afs/AIX/osi_misc.c --- openafs-1.8.0~pre4/src/afs/AIX/osi_misc.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/afs/AIX/osi_misc.c 2018-02-19 14:40:36.000000000 +0000 @@ -36,7 +36,6 @@ #include "osi_vfs.h" #include "netinet/in.h" #include "h/mbuf.h" -#include "rpc/types.h" #include "rpc/xdr.h" #include "h/vmuser.h" #include "h/syspest.h" diff -Nru openafs-1.8.0~pre4/src/afs/AIX/osi_vnodeops.c openafs-1.8.0~pre5/src/afs/AIX/osi_vnodeops.c --- openafs-1.8.0~pre4/src/afs/AIX/osi_vnodeops.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/afs/AIX/osi_vnodeops.c 2018-02-19 14:40:36.000000000 +0000 @@ -32,7 +32,6 @@ #include "h/mbuf.h" #include "h/vmuser.h" #include "h/shm.h" -#include "rpc/types.h" #include "rpc/xdr.h" #include "afs/stds.h" diff -Nru openafs-1.8.0~pre4/src/afs/LINUX/osi_vnodeops.c openafs-1.8.0~pre5/src/afs/LINUX/osi_vnodeops.c --- openafs-1.8.0~pre4/src/afs/LINUX/osi_vnodeops.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/afs/LINUX/osi_vnodeops.c 2018-02-19 14:40:36.000000000 +0000 @@ -1125,7 +1125,30 @@ return hgetlo(pvcp->f.m.DataVersion); } -#ifdef D_SPLICE_ALIAS_RACE +#ifndef D_SPLICE_ALIAS_RACE + +static inline void dentry_race_lock(void) {} +static inline void dentry_race_unlock(void) {} + +#else + +# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) +static DEFINE_MUTEX(dentry_race_sem); +# else +static DECLARE_MUTEX(dentry_race_sem); +# endif + +static inline void +dentry_race_lock(void) +{ + mutex_lock(&dentry_race_sem); +} +static inline void +dentry_race_unlock(void) +{ + mutex_unlock(&dentry_race_sem); +} + /* Leave some trace that this code is enabled; otherwise it's pretty hard to * tell. */ static __attribute__((used)) const char dentry_race_marker[] = "d_splice_alias race workaround enabled"; @@ -1135,8 +1158,6 @@ { int raced = 0; if (!dp->d_inode) { - struct dentry *parent = dget_parent(dp); - /* In Linux, before commit 4919c5e45a91b5db5a41695fe0357fbdff0d5767, * d_splice_alias can momentarily hash a dentry before it's fully * populated. This only happens for a moment, since it's unhashed again @@ -1144,20 +1165,17 @@ * __d_lookup, and then given to us. * * So check if the dentry is unhashed; if it is, then the dentry is not - * valid. We lock the parent inode to ensure that d_splice_alias is no - * longer running (the inode mutex will be held during - * afs_linux_lookup). Locking d_lock is required to check the dentry's + * valid. We lock dentry_race_lock() to ensure that d_splice_alias is + * no longer running. Locking d_lock is required to check the dentry's * flags, so lock that, too. */ - afs_linux_lock_inode(parent->d_inode); + dentry_race_lock(); spin_lock(&dp->d_lock); if (d_unhashed(dp)) { raced = 1; } spin_unlock(&dp->d_lock); - afs_linux_unlock_inode(parent->d_inode); - - dput(parent); + dentry_race_unlock(); } return raced; } @@ -1636,7 +1654,9 @@ igrab(ip); #endif + dentry_race_lock(); newdp = d_splice_alias(ip, dp); + dentry_race_unlock(); done: crfree(credp); diff -Nru openafs-1.8.0~pre4/src/afs/SOLARIS/osi_vnodeops.c openafs-1.8.0~pre5/src/afs/SOLARIS/osi_vnodeops.c --- openafs-1.8.0~pre4/src/afs/SOLARIS/osi_vnodeops.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/afs/SOLARIS/osi_vnodeops.c 2018-02-19 14:40:36.000000000 +0000 @@ -463,6 +463,19 @@ return code; } +/** + * Dummy pvn_vplist_dirty() handler for non-writable vnodes. + */ +static int +afs_never_putapage(struct vnode *vp, struct page *pages, u_offset_t * offp, + size_t * lenp, int flags, afs_ucred_t *credp) +{ + struct vcache *avc = VTOAFS(vp); + osi_Assert((avc->f.states & CRO) != 0); + osi_Panic("Dirty pages while flushing a read-only volume vnode."); + return EIO; /* unreachable */ +} + int afs_putpage(struct vnode *vp, offset_t off, u_int len, int flags, afs_ucred_t *cred) @@ -474,7 +487,7 @@ afs_offs_t endPos; afs_int32 NPages = 0; u_offset_t toff = off; - int didWriteLock; + int didLock = 0; AFS_STATCNT(afs_putpage); if (vp->v_flag & VNOMAP) /* file doesn't allow mapping */ @@ -488,11 +501,11 @@ (afs_int32) vp, ICL_TYPE_OFFSET, ICL_HANDLE_OFFSET(off), ICL_TYPE_INT32, (afs_int32) len, ICL_TYPE_LONG, (int)flags); avc = VTOAFS(vp); - ObtainSharedLock(&avc->lock, 247); - didWriteLock = 0; /* Get a list of modified (or whatever) pages */ if (len) { + ObtainSharedLock(&avc->lock, 247); + didLock = SHARED_LOCK; endPos = (afs_offs_t) off + len; /* position we're supposed to write up to */ while ((afs_offs_t) toff < endPos && (afs_offs_t) toff < avc->f.m.Length) { @@ -507,9 +520,9 @@ if (!pages || !pvn_getdirty(pages, flags)) tlen = PAGESIZE; else { - if (!didWriteLock) { + if (didLock == SHARED_LOCK) { AFS_GLOCK(); - didWriteLock = 1; + didLock = WRITE_LOCK; UpgradeSToWLock(&avc->lock, 671); AFS_GUNLOCK(); } @@ -524,27 +537,50 @@ AFS_GLOCK(); } } else { - if (!didWriteLock) { - UpgradeSToWLock(&avc->lock, 670); - didWriteLock = 1; + /* + * We normally arrive here due to a vm flush. + * + * If this vnode belongs to a writable volume, obtain a vcache lock + * then call pvn_vplist_dirty to free, invalidate, or to write out + * dirty pages with afs_putapage. The afs_putapage routine requires a + * vcache lock, so we obtain it here before any page locks are taken. + * This locking order is done to avoid deadlocking due to races with + * afs_getpage, which also takes vcache and page locks. + * + * If this vnode belongs to a non-writable volume, then it will not + * contain dirty pages, so we do not need to lock the vcache and since + * afs_putapage will not be called. Instead, forgo the vcache lock and + * call pvn_vplist_dirty to free, or invalidate pages. Pass a dummy + * page out handler to pvn_vplist_dirty which we do not expect to be + * called. Panic if the dummy handler is called, since something went + * horribly wrong. + */ + if ((avc->f.states & CRO) == 0) { + ObtainWriteLock(&avc->lock, 670); + didLock = WRITE_LOCK; } - AFS_GUNLOCK(); - code = pvn_vplist_dirty(vp, toff, afs_putapage, flags, cred); + if ((avc->f.states & CRO) == 0) + code = pvn_vplist_dirty(vp, toff, afs_putapage, flags, cred); + else + code = pvn_vplist_dirty(vp, toff, afs_never_putapage, flags, cred); AFS_GLOCK(); } if (code && !avc->vc_error) { - if (!didWriteLock) { + if (didLock == 0) { + ObtainWriteLock(&avc->lock, 668); + didLock = WRITE_LOCK; + } else if (didLock == SHARED_LOCK) { UpgradeSToWLock(&avc->lock, 669); - didWriteLock = 1; + didLock = WRITE_LOCK; } avc->vc_error = code; } - if (didWriteLock) + if (didLock == WRITE_LOCK) ReleaseWriteLock(&avc->lock); - else + else if (didLock == SHARED_LOCK) ReleaseSharedLock(&avc->lock); afs_Trace2(afs_iclSetp, CM_TRACE_PAGEOUTDONE, ICL_TYPE_LONG, code, ICL_TYPE_LONG, NPages); diff -Nru openafs-1.8.0~pre4/src/afs/sysincludes.h openafs-1.8.0~pre5/src/afs/sysincludes.h --- openafs-1.8.0~pre4/src/afs/sysincludes.h 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/afs/sysincludes.h 2018-02-19 14:40:36.000000000 +0000 @@ -406,7 +406,6 @@ # endif # endif /* AFS_SUN5_ENV */ -# include "rpc/types.h" # include "rx/xdr.h" /* Miscellaneous headers */ diff -Nru openafs-1.8.0~pre4/src/afsd/CellServDB openafs-1.8.0~pre5/src/afsd/CellServDB --- openafs-1.8.0~pre4/src/afsd/CellServDB 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/afsd/CellServDB 2018-02-19 14:40:36.000000000 +0000 @@ -1,4 +1,4 @@ ->grand.central.org #GCO Public CellServDB 01 Jan 2016 +>grand.central.org #GCO Public CellServDB 14 Mar 2017 18.9.48.14 #grand.mit.edu 128.2.13.219 #grand-old-opry.central.org >wu-wien.ac.at #University of Economics, Vienna, Austria @@ -57,8 +57,8 @@ 195.113.0.36 #asterix.ruk.cuni.cz 195.113.0.37 #obelix.ruk.cuni.cz 195.113.0.40 #sal.ruk.cuni.cz ->ics.muni.cz #Masaryk university, Czech Republic -147.251.3.11 #grond.ics.muni.cz +>ics.muni.cz #Masaryk university +147.228.240.30 #afs-plzen.meta.zcu.cz 147.251.9.9 #smaug2.ics.muni.cz 195.113.214.4 #tarkil-xen.cesnet.cz >zcu.cz #University of West Bohemia, Czech Republic @@ -257,7 +257,7 @@ >northstar.dartmouth.edu #Dartmouth College Research Computing 129.170.16.22 #halley.dartmouth.edu 129.170.16.26 #andromeda.dartmouth.edu -129.170.16.43 #cygnusx1.dartmouth.edu +129.170.199.250 #kuiper.dartmouth.edu >cs.hm.edu #Department Computer Science Munich University Of Applied Science 129.187.208.31 #afs1.cs.hm.edu >eecs.harvard.edu #Harvard - EECS @@ -267,10 +267,13 @@ 129.186.1.243 #afsdb-1.iastate.edu 129.186.6.243 #afsdb-2.iastate.edu 129.186.142.243 #afsdb-3.iastate.edu ->athena.mit.edu #MIT/Athena cell -18.3.48.11 #aether.mit.edu +>acm.jhu.edu #Johns Hopkins ACM chapter +128.220.35.191 #chicago.acm.jhu.edu +128.220.70.76 #typhon.acm.jhu.edu +>athena.mit.edu #Cell Name 18.9.48.11 #castor.mit.edu 18.9.48.12 #pollux.mit.edu +18.27.2.14 #prill.mit.edu >csail.mit.edu #MIT Computer Science & Artificial Intelligence Lab 128.30.2.13 #titanic.csail.mit.edu 128.30.2.31 #vasa.csail.mit.edu @@ -291,6 +294,8 @@ 18.181.0.23 #ronald-ann.mit.edu >msu.edu #Michigan State University Main Cell 35.9.7.10 #afsdb0.cl.msu.edu +35.9.7.11 #afsdb1.cl.msu.edu +35.9.7.12 #afsdb2.cl.msu.edu >nd.edu #University of Notre Dame 129.74.223.17 #john.helios.nd.edu 129.74.223.33 #lizardo.helios.nd.edu @@ -384,6 +389,8 @@ >cs.uwm.edu #University of Wisconsin--Milwaukee 129.89.38.124 #solomons.cs.uwm.edu 129.89.143.71 #filip.cs.uwm.edu +>cs.vassar.edu #Computer Science research network / Vassar College +143.229.6.73 #afsserv.cs.vassar.edu >cs.wisc.edu #Univ. of Wisconsin-Madison, Computer Sciences Dept. 128.105.132.14 #timon.cs.wisc.edu 128.105.132.15 #pumbaa.cs.wisc.edu @@ -401,9 +408,8 @@ 128.104.160.14 #fray.physics.wisc.edu 128.104.160.15 #buffy.physics.wisc.edu >ciemat.es #Ciemat, Madrid, Spain -130.206.11.42 #afsdb1.ciemat.es -130.206.11.217 #afsdb2.ciemat.es -130.206.11.247 #afsdb3.ciemat.es +192.101.165.10 #afsdb1.ciemat.es +192.101.165.11 #afsdb2.ciemat.es >ifca.unican.es #Instituto de Fisica de Cantabria (IFCA), Santander, Spain 193.144.209.20 #gridwall.ifca.unican.es >ific.uv.es #Instituto de Fisica Corpuscular, Valencia, Spain @@ -430,10 +436,6 @@ 130.199.48.32 #aafs01.usatlas.bnl.gov 130.199.48.33 #aafs02.usatlas.bnl.gov 130.199.48.34 #aafs03.usatlas.bnl.gov ->fnal.gov #Fermi National Acclerator Laboratory -131.225.68.1 #fsus01.fnal.gov -131.225.68.4 #fsus03.fnal.gov -131.225.68.14 #fsus04.fnal.gov >jpl.nasa.gov #Jet Propulsion Laboratory 137.78.160.21 #afsdb08.jpl.nasa.gov 137.78.160.22 #afsdb09.jpl.nasa.gov @@ -532,6 +534,8 @@ 132.229.170.27 #fwncisafs1.gorlaeus.net >laroia.net #Laroia Networks 66.66.102.254 #supercore.laroia.net +>pallissard.net #pallissard.net +198.98.51.77 #a001.pallissard.net >sinenomine.net #Sine Nomine Associates 199.167.73.142 #afsdb1.sinenomine.net 199.167.73.152 #afsdb4.sinenomine.net @@ -595,26 +599,22 @@ 130.237.216.11 #afsdb1.ict.kth.se 130.237.216.12 #afsdb2.ict.kth.se 130.237.216.13 #afsdb3.ict.kth.se ->isk.kth.se #Royal Institute of Technology, ISK -130.237.216.17 #afsdb1.isk.kth.se -130.237.216.82 #afsdb2.isk.kth.se -130.237.216.83 #afsdb3.isk.kth.se >it.kth.se #Royal Institute of Technology, Teleinformatics, Kista 130.237.216.14 #afsdb1.it.kth.se 130.237.216.15 #afsdb2.it.kth.se 130.237.216.16 #afsdb3.it.kth.se >md.kth.se #Royal Institute of Technology, MMK -130.237.57.7 #mdafs-1.md.kth.se +130.237.32.63 #mdafs-1.sys.kth.se >mech.kth.se #Royal Institute of Technology, MECH 130.237.233.142 #matterhorn.mech.kth.se 130.237.233.143 #castor.mech.kth.se 130.237.233.144 #pollux.mech.kth.se >nada.kth.se #Royal Institute of Technology, NADA -130.237.222.20 #kosmos.nada.kth.se -130.237.223.12 #sputnik.nada.kth.se -130.237.224.78 #mir.nada.kth.se -130.237.227.23 #gagarin.nada.kth.se -130.237.228.28 #laika.nada.kth.se +130.237.222.20 #afsdb-1.csc.kth.se +130.237.223.12 #afsdb-2.csc.kth.se +130.237.224.78 #afsdb-3.csc.kth.se +130.237.227.23 #afsdb-4.csc.kth.se +130.237.228.28 #afsdb-5.csc.kth.se >pdc.kth.se #Royal Institute of Technology, PDC 130.237.232.29 #crab.pdc.kth.se 130.237.232.112 #anna.pdc.kth.se @@ -625,15 +625,16 @@ 130.237.234.101 #fishburger.stacken.kth.se >syd.kth.se #Royal Institute of Technology, KTH-Syd 130.237.83.23 #afs.haninge.kth.se ->physto.se #Physics department Stockholm University -130.237.205.36 #sysafs1.physto.se -130.237.205.72 #sysafs2.physto.se >sanchin.se #Sanchin Consulting AB, Sweden 192.195.148.10 #sesan.sanchin.se >su.se #Stockholm University 130.237.162.81 #afsdb1.su.se 130.237.162.82 #afsdb2.su.se 130.237.162.230 #afsdb3.su.se +>fysik.su.se #Stockholm University, Physics Department +130.237.244.134 #srv01.fysik.su.se +130.237.244.135 #srv02.fysik.su.se +130.237.244.139 #srv05.fysik.su.se >f9.ijs.si #F9, Jozef Stefan Institue 194.249.156.1 #brenta.ijs.si >p-ng.si #University of Nova Gorica @@ -642,6 +643,8 @@ >ihep.su #Institute for High-Energy Physics 194.190.165.201 #fs0001.ihep.su 194.190.165.202 #fs0002.ihep.su +>motherfsck.tech #motherfsck.tech +198.98.52.149 #a001.motherfsck.tech >hep-ex.physics.metu.edu.tr #METU Department of Physics, Experimental HEP group, Ankara/Turke 144.122.31.131 #neutrino.physics.metu.edu.tr >phy.bris.ac.uk #Bristol University - physics diff -Nru openafs-1.8.0~pre4/src/cf/autoheader.m4 openafs-1.8.0~pre5/src/cf/autoheader.m4 --- openafs-1.8.0~pre4/src/cf/autoheader.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/autoheader.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,61 @@ +AC_DEFUN([OPENAFS_AUTOHEADER_BOTTOM],[ + AH_BOTTOM([ +#undef HAVE_RES_SEARCH +#undef STRUCT_SOCKADDR_HAS_SA_LEN +#if !defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) +# if ENDIANESS_IN_SYS_PARAM_H +# ifndef KERNEL +# include +# include +# if BYTE_ORDER == BIG_ENDIAN +# define WORDS_BIGENDIAN 1 +# endif +# else +# if defined(AUTOCONF_FOUND_BIGENDIAN) +# define WORDS_BIGENDIAN 1 +# else +# undef WORDS_BIGENDIAN +# endif +# endif +# else +# if defined(AUTOCONF_FOUND_BIGENDIAN) +# define WORDS_BIGENDIAN 1 +# else +# undef WORDS_BIGENDIAN +# endif +# endif +#else +# if defined(__BIG_ENDIAN__) +# define WORDS_BIGENDIAN 1 +# else +# undef WORDS_BIGENDIAN +# endif +#endif +#ifdef UKERNEL +/* + * Always use 64-bit file offsets for UKERNEL code. Needed for UKERNEL stuff to + * play nice with some other interfaces like FUSE. We technically only would + * need to define this when building for such interfaces, but set it always to + * try and reduce potential confusion. + */ +# define _FILE_OFFSET_BITS 64 +# define AFS_CACHE_VNODE_PATH +#endif + +#undef AFS_NAMEI_ENV +#undef BITMAP_LATER +#undef FAST_RESTART +#undef DEFINED_FOR_EACH_PROCESS +#undef DEFINED_PREV_TASK +#undef EXPORTED_SYS_CALL_TABLE +#undef EXPORTED_IA32_SYS_CALL_TABLE +#undef IRIX_HAS_MEM_FUNCS +#undef RECALC_SIGPENDING_TAKES_VOID +#undef STRUCT_FS_HAS_FS_ROLLED +#undef ssize_t +/* glue for RedHat kernel bug */ +#undef ENABLE_REDHAT_BUILDSYS +#if defined(ENABLE_REDHAT_BUILDSYS) && defined(KERNEL) && defined(REDHAT_FIX) +# include "redhat-fix.h" +#endif]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/bsd.m4 openafs-1.8.0~pre5/src/cf/bsd.m4 --- openafs-1.8.0~pre4/src/cf/bsd.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/bsd.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,19 @@ +AC_DEFUN([OPENAFS_BSD_CHECKS],[ +if test "x$with_bsd_kernel_headers" != "x"; then + BSD_KERNEL_PATH="$with_bsd_kernel_headers" +else + BSD_KERNEL_PATH="/usr/src/sys" +fi + +if test "x$with_bsd_kernel_build" != "x"; then + BSD_KERNEL_BUILD="$with_bsd_kernel_build" +else + case $AFS_SYSNAME in + *_fbsd_*) + BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC" + ;; + *_nbsd*) + BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/arch/${HOST_CPU}/compile/GENERIC" + esac +fi +]) diff -Nru openafs-1.8.0~pre4/src/cf/bswap.m4 openafs-1.8.0~pre5/src/cf/bswap.m4 --- openafs-1.8.0~pre4/src/cf/bswap.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/bswap.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,31 @@ +AC_DEFUN([OPENAFS_BSWAP_CHECKS],[ +dnl Stuff that's harder ... +AC_MSG_CHECKING([for bswap16]) +AC_LINK_IFELSE([AC_LANG_PROGRAM([ +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_BSWAP_H +#include +#endif +], +[short a, b; b = bswap16(a); ])], +[AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_BSWAP16, 1, [Define to 1 if you have the bswap16 function]) +], +[AC_MSG_RESULT(no)]) + +AC_MSG_CHECKING([for bswap32]) +AC_LINK_IFELSE([AC_LANG_PROGRAM([#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_BSWAP_H +#include +#endif +], +[int a, b; b = bswap32(a); ])], +[AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_BSWAP32, 1, [Define to 1 if you have the bswap32 function]) +], +[AC_MSG_RESULT(no)]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/c-atomic.m4 openafs-1.8.0~pre5/src/cf/c-atomic.m4 --- openafs-1.8.0~pre4/src/cf/c-atomic.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/c-atomic.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,11 @@ +AC_DEFUN([OPENAFS_C_ATOMIC_CHECKS], [ +AC_CACHE_CHECK([if compiler has __sync_add_and_fetch], + [ac_cv_sync_fetch_and_add], + [AC_TRY_LINK(, [int var; return __sync_add_and_fetch(&var, 1);], + [ac_cv_sync_fetch_and_add=yes], + [ac_cv_sync_fetch_and_add=no]) +]) +AS_IF([test "$ac_cv_sync_fetch_and_add" = "yes"], + [AC_DEFINE(HAVE_SYNC_FETCH_AND_ADD, 1, + [define if your C compiler has __sync_add_and_fetch])]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/crosstools.m4 openafs-1.8.0~pre5/src/cf/crosstools.m4 --- openafs-1.8.0~pre4/src/cf/crosstools.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/crosstools.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,19 @@ +AC_DEFUN([OPENAFS_CROSSTOOLS],[ +if test "x$with_crosstools_dir" != "x"; then + if test -f "$with_crosstools_dir/rxgen" -a -f "$with_crosstools_dir/compile_et" -a -f "$with_crosstools_dir/config"; then + COMPILE_ET_PATH=$with_crosstools_dir/compile_et + CONFIGTOOL_PATH=$with_crosstools_dir/config + RXGEN_PATH=$with_crosstools_dir/rxgen + else + AC_MSG_ERROR(Tools not found in $with_crosstools_dir) + exit 1 + fi +else + COMPILE_ET_PATH="${SRCDIR_PARENT}/src/comerr/compile_et" + CONFIGTOOL_PATH="${SRCDIR_PARENT}/src/config/config" + RXGEN_PATH="${SRCDIR_PARENT}/src/rxgen/rxgen" +fi +AC_SUBST(COMPILE_ET_PATH) +AC_SUBST(CONFIGTOOL_PATH) +AC_SUBST(RXGEN_PATH) +]) diff -Nru openafs-1.8.0~pre4/src/cf/crypt.m4 openafs-1.8.0~pre5/src/cf/crypt.m4 --- openafs-1.8.0~pre4/src/cf/crypt.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/crypt.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,5 @@ +AC_DEFUN([OPENAFS_CRYPT_CHECKS],[ +dnl Check to see if crypt lives in a different library +AC_CHECK_LIB(crypt, crypt, LIB_crypt="-lcrypt") +AC_SUBST(LIB_crypt) +]) diff -Nru openafs-1.8.0~pre4/src/cf/c-struct-label.m4 openafs-1.8.0~pre5/src/cf/c-struct-label.m4 --- openafs-1.8.0~pre4/src/cf/c-struct-label.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/c-struct-label.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,18 @@ +AC_DEFUN([OPENAFS_C_STRUCT_LABEL_CHECK],[ +dnl Check to see if the compiler support labels in structs +AC_MSG_CHECKING(for label support in structs) +AC_TRY_COMPILE([], [ +extern void osi_UFSOpen(void); +struct labeltest { + void (*open) (void); +}; +struct labeltest struct_labeltest = { + .open = osi_UFSOpen, +} +], +[AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_STRUCT_LABEL_SUPPORT, 1, [Define to 1 if your compiler supports labels in structs.]) +], +[AC_MSG_RESULT(no) +]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/ctf-tools.m4 openafs-1.8.0~pre5/src/cf/ctf-tools.m4 --- openafs-1.8.0~pre4/src/cf/ctf-tools.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/ctf-tools.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,30 @@ +AC_DEFUN([OPENAFS_CTF_TOOLS_CHECKS],[ + +CTF_DEFAULT_PATH="$PATH:/usr/bin:/opt/onbld/bin/$HOST_CPU" + +AC_ARG_WITH([ctf-tools], + AS_HELP_STRING([--with-ctf-tools@<:@=DIR@:>@], + [Location of the CTF tools]), + [CTF_TOOLS="$withval"], + [CTF_TOOLS="check"]) + +AS_CASE([$CTF_TOOLS], + [check], [AC_PATH_PROG([CTFCONVERT], [ctfconvert], [], [$CTF_DEFAULT_PATH]) + AC_PATH_PROG([CTFMERGE], [ctfmerge], [], [$CTF_DEFAULT_PATH])], + + [yes], [AC_PATH_PROG([CTFCONVERT], [ctfconvert], [], [$CTF_DEFAULT_PATH]) + AC_PATH_PROG([CTFMERGE], [ctfmerge], [], [$CTF_DEFAULT_PATH]) + AS_IF([test "x$CTFCONVERT" = "x"], [AC_ERROR("ctfconvert not found")]) + AS_IF([test "x$CTFMERGE" = "x"], [AC_ERROR("ctfmerge not found")])], + + [no], [], + + [AC_PATH_PROG([CTFCONVERT], [ctfconvert], [], [$CTF_TOOLS]) + AC_PATH_PROG([CTFMERGE], [ctfmerge], [], [$CTF_TOOLS]) + AS_IF([test "x$CTFCONVERT" = "x"], [AC_ERROR("ctfconvert not found")]) + AS_IF([test "x$CTFMERGE" = "x"], [AC_ERROR("ctfmerge not found")])] +) + +AC_ARG_VAR([CTFCONVERT], [Path to ctfconvert]) +AC_ARG_VAR([CTFMERGE], [Path to ctfmerge]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/dirent.m4 openafs-1.8.0~pre5/src/cf/dirent.m4 --- openafs-1.8.0~pre4/src/cf/dirent.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/dirent.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,19 @@ +AC_DEFUN([OPENAFS_DIRENT_CHECKS],[ +AC_MSG_CHECKING([checking for dirfd]) +AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include +#ifdef HAVE_DIRENT_H +#include +#endif +]], + [[DIR *d = 0; dirfd(d);]])], + [ac_rk_have_dirfd=yes], [ac_rk_have_dirfd=no]) +if test "$ac_rk_have_dirfd" = "yes" ; then + AC_DEFINE_UNQUOTED(HAVE_DIRFD, 1, [have a dirfd function/macro]) +fi +AC_MSG_RESULT($ac_rk_have_dirfd) + +OPENAFS_HAVE_STRUCT_FIELD(DIR, dd_fd, [#include +#ifdef HAVE_DIRENT_H +#include +#endif]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/dirpaths.m4 openafs-1.8.0~pre5/src/cf/dirpaths.m4 --- openafs-1.8.0~pre4/src/cf/dirpaths.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/dirpaths.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,42 @@ +AC_DEFUN([OPENAFS_DIRECTORY_PATHS],[ +dnl Directory PATH handling +if test "x$enable_transarc_paths" = "xyes" ; then + afsconfdir=${afsconfdir=/usr/afs/etc} + viceetcdir=${viceetcdir=/usr/vice/etc} + afskerneldir=${afskerneldir=${viceetcdir}} + afssrvbindir=${afssrvbindir=/usr/afs/bin} + afssrvsbindir=${afssrvsbindir=/usr/afs/bin} + afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin} + afsdbdir=${afsdbdir=/usr/afs/db} + afslogsdir=${afslogsdir=/usr/afs/logs} + afslocaldir=${afslocaldir=/usr/afs/local} + afsbackupdir=${afsbackupdir=/usr/afs/backup} + afsbosconfigdir=${afsbosconfigdir=/usr/afs/local} + afsdatadir=${afsdatadir=/usr/vice/etc} +else + afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'} + viceetcdir=${viceetcdir='${sysconfdir}/openafs'} + afskerneldir=${afskerneldir='${libdir}/openafs'} + afssrvbindir=${afssrvbindir='${bindir}'} + afssrvsbindir=${afssrvsbindir='${sbindir}'} + afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'} + afsdbdir=${afsdbdir='${localstatedir}/openafs/db'} + afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'} + afslocaldir=${afslocaldir='${localstatedir}/openafs'} + afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'} + afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'} + afsdatadir=${afsdatadir='${datadir}/openafs'} +fi +AC_SUBST(afsconfdir) +AC_SUBST(viceetcdir) +AC_SUBST(afskerneldir) +AC_SUBST(afssrvbindir) +AC_SUBST(afssrvsbindir) +AC_SUBST(afssrvlibexecdir) +AC_SUBST(afsdbdir) +AC_SUBST(afslogsdir) +AC_SUBST(afslocaldir) +AC_SUBST(afsbackupdir) +AC_SUBST(afsbosconfigdir) +AC_SUBST(afsdatadir) +]) diff -Nru openafs-1.8.0~pre4/src/cf/doc.m4 openafs-1.8.0~pre5/src/cf/doc.m4 --- openafs-1.8.0~pre4/src/cf/doc.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/doc.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,25 @@ +AC_DEFUN([OPENAFS_DOC],[ +dnl Check whether kindlegen exists. If not, we'll suppress that part of the +dnl documentation build. +AC_CHECK_PROGS([KINDLEGEN], [kindlegen]) +AC_CHECK_PROGS([DOXYGEN], [doxygen]) + +dnl Optionally generate graphs with doxygen. +case "$with_dot" in +maybe) + AC_CHECK_PROGS([DOT], [dot]) + AS_IF([test "x$DOT" = "x"], [HAVE_DOT="no"], [HAVE_DOT="yes"]) + ;; +yes) + HAVE_DOT="yes" + ;; +no) + HAVE_DOT="no" + ;; +*) + HAVE_DOT="yes" + DOT_PATH=$with_dot +esac +AC_SUBST(HAVE_DOT) +AC_SUBST(DOT_PATH) +]) diff -Nru openafs-1.8.0~pre4/src/cf/functions.m4 openafs-1.8.0~pre5/src/cf/functions.m4 --- openafs-1.8.0~pre4/src/cf/functions.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/functions.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,38 @@ +AC_DEFUN([OPENAFS_FUNCTION_CHECKS],[ +AC_CHECK_FUNCS([ \ + arc4random \ + closelog \ + fcntl \ + fseeko64 \ + ftello64 \ + getcwd \ + getegid \ + geteuid \ + getgid \ + getuid \ + getrlimit \ + issetugid \ + mkstemp \ + openlog \ + poll \ + pread \ + preadv \ + preadv64 \ + pwrite \ + pwritev \ + pwritev64 \ + regcomp \ + regerror \ + regexec \ + setitimer \ + setvbuf \ + sigaction \ + strcasestr \ + strerror \ + sysconf \ + sysctl \ + syslog \ + tdestroy \ + timegm \ +]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/headers.m4 openafs-1.8.0~pre5/src/cf/headers.m4 --- openafs-1.8.0~pre4/src/cf/headers.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/headers.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,114 @@ +AC_DEFUN([OPENAFS_HEADER_CHECKS],[ +dnl checks for header files. +AC_HEADER_STDC +AC_HEADER_SYS_WAIT +AC_HEADER_DIRENT +AC_CHECK_HEADERS([ \ + arpa/inet.h \ + arpa/nameser.h \ + curses.h\ + direct.h \ + errno.h \ + fcntl.h \ + grp.h \ + math.h \ + mntent.h \ + ncurses.h \ + ncurses/ncurses.h \ + netdb.h \ + netinet/in.h \ + pthread_np.h \ + pwd.h \ + regex.h \ + security/pam_appl.h \ + signal.h \ + stdint.h \ + stdio_ext.h \ + stdlib.h \ + string.h \ + strings.h \ + sys/bitypes.h \ + sys/bswap.h \ + sys/dk.h \ + sys/fcntl.h \ + sys/file.h \ + sys/fs_types.h \ + sys/fstyp.h \ + sys/ioctl.h \ + sys/ipc.h \ + sys/lockf.h \ + sys/map.h \ + sys/mount.h \ + sys/mntent.h \ + sys/mnttab.h \ + sys/pag.h \ + sys/param.h \ + sys/resource.h \ + sys/select.h \ + sys/statfs.h \ + sys/statvfs.h \ + sys/socket.h \ + sys/sysctl.h \ + sys/time.h \ + sys/types.h \ + sys/uio.h \ + sys/un.h \ + sys/vfs.h \ + syslog.h \ + termios.h \ + time.h \ + ucontext.h \ + unistd.h \ + windows.h \ +]) + +AC_CHECK_HEADERS([resolv.h], [], [], [AC_INCLUDES_DEFAULT +#ifdef HAVE_NETINET_IN_H +# include +#endif]) + +AC_CHECK_HEADERS([net/if.h],[],[],[AC_INCLUDES_DEFAULT +#ifdef HAVE_SYS_SOCKET_H +# include +#endif]) + +AC_CHECK_HEADERS([netinet/if_ether.h],[],[],[AC_INCLUDES_DEFAULT +#ifdef HAVE_SYS_SOCKET_H +# include +#endif +#ifdef HAVE_NETINET_IN_H +# include +#endif +#ifdef HAVE_NET_IF_H +# include +#endif]) + +AC_CHECK_HEADERS([security/pam_modules.h],[],[],[AC_INCLUDES_DEFAULT +#ifdef HAVE_SECURITY_PAM_APPL_H +# include +#endif]) + +AC_CHECK_HEADERS(linux/errqueue.h,,,[#include ]) + +AC_CHECK_TYPES([fsblkcnt_t],,,[ +#include +#ifdef HAVE_SYS_BITYPES_H +#include +#endif +#ifdef HAVE_SYS_STATFS_H +#include +#endif +#ifdef HAVE_SYS_STATVFS_H +#include +#endif +]) +]) + +AC_DEFUN([OPENAFS_NETDB_CHECKS],[ +AC_CHECK_DECLS([h_errno], [], [], [ +#include +#ifdef HAVE_NETDB_H +#include +#endif +]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/hpux.m4 openafs-1.8.0~pre5/src/cf/hpux.m4 --- openafs-1.8.0~pre4/src/cf/hpux.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/hpux.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,25 @@ +AC_DEFUN([OPENAFS_HPUX_CHECKS],[ +case $AFS_SYSNAME in +*hp_ux* | *hpux*) + AC_MSG_WARN([Some versions of HP-UX have a buggy positional I/O implementation. Forcing no positional I/O.]) + ;; +*) + AC_MSG_CHECKING([for positional I/O]) + if test "$ac_cv_func_pread" = "yes" && \ + test "$ac_cv_func_pwrite" = "yes"; then + AC_DEFINE(HAVE_PIO, 1, [define if you have pread() and pwrite()]) + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + fi + AC_MSG_CHECKING([for vectored positional I/O]) + AS_IF([test "$ac_cv_func_preadv" = "yes" -a \ + "$ac_cv_func_pwritev" = "yes" -a \ + "$ac_cv_func_preadv64" = "yes" -a \ + "$ac_cv_func_pwritev64" = "yes"], + [AC_DEFINE(HAVE_PIOV, 1, [define if you have preadv() and pwritev()]) + AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)]) + ;; +esac +]) diff -Nru openafs-1.8.0~pre4/src/cf/java.m4 openafs-1.8.0~pre5/src/cf/java.m4 --- openafs-1.8.0~pre4/src/cf/java.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/java.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,4 @@ +AC_DEFUN([OPENAFS_JAVA],[ +dnl Why is configure creating this directory? +mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs +]) diff -Nru openafs-1.8.0~pre4/src/cf/lex.m4 openafs-1.8.0~pre5/src/cf/lex.m4 --- openafs-1.8.0~pre4/src/cf/lex.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/lex.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,5 @@ +AC_DEFUN([OPENAFS_LEX],[ +AM_PROG_LEX +dnl if we are flex, be lex-compatible +OPENAFS_LEX_IS_FLEX([AC_SUBST([LEX], ["$LEX -l"])]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/libintl.m4 openafs-1.8.0~pre5/src/cf/libintl.m4 --- openafs-1.8.0~pre4/src/cf/libintl.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/libintl.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,3 @@ +AC_DEFUN([OPENAFS_LIBINTL_CHECKS],[ +OPENAFS_TEST_PACKAGE(libintl,[#include ],[-lintl],,,INTL) +]) diff -Nru openafs-1.8.0~pre4/src/cf/library.m4 openafs-1.8.0~pre5/src/cf/library.m4 --- openafs-1.8.0~pre4/src/cf/library.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/library.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,53 @@ +AC_DEFUN([OPENAFS_LIBRARY_CHECKS],[ +if test "x${MKAFS_OSTYPE}" = "xIRIX"; then + echo Skipping library tests because they confuse Irix. +else + AC_SEARCH_LIBS([socket], [socket inet]) + AC_SEARCH_LIBS([connect], [nsl]) + AC_SEARCH_LIBS([gethostbyname], [dns nsl resolv]) + + dnl darwin wants it, aix hates it + AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h) + AC_TRY_COMPILE([ + #include + #include + #include + #include + #include + #include + #include + #include + #include + ], [static int i; i = 0;], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H, 1, [define if arpa/nameser_compat.h exists])], + [AC_MSG_RESULT(no) + ]) + + openafs_save_libs="$LIBS" + AC_MSG_CHECKING([for res_search]) + AC_FUNC_RES_SEARCH + + if test "$ac_cv_func_res_search" = no; then + for lib in dns nsl resolv; do + if test "$ac_cv_func_res_search" != yes; then + LIBS="-l$lib $LIBS" + AC_FUNC_RES_SEARCH + LIBS="$openafs_save_libs" + fi + done + if test "$ac_cv_func_res_search" = yes; then + LIB_AFSDB="-l$lib" + AC_DEFINE(HAVE_RES_SEARCH, 1, []) + AC_MSG_RESULT([yes, in lib$lib]) + else + AC_MSG_RESULT(no) + fi + else + AC_DEFINE(HAVE_RES_SEARCH, 1, []) + AC_MSG_RESULT(yes) + fi + +fi +XLIBS="$LIB_AFSDB $XLIBS" +]) diff -Nru openafs-1.8.0~pre4/src/cf/lint.m4 openafs-1.8.0~pre5/src/cf/lint.m4 --- openafs-1.8.0~pre4/src/cf/lint.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/lint.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,6 @@ +AC_DEFUN([OPENAFS_LINT],[ +HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh" +HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg" +AC_SUBST(HELPER_SPLINT) +AC_SUBST(HELPER_SPLINTCFG) +]) diff -Nru openafs-1.8.0~pre4/src/cf/linux-checks.m4 openafs-1.8.0~pre5/src/cf/linux-checks.m4 --- openafs-1.8.0~pre4/src/cf/linux-checks.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/linux-checks.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,56 @@ + +AC_DEFUN([_OPENAFS_LINUX_CONFTEST_SETUP],[ +# Add (sub-) architecture-specific paths needed by conftests +case $AFS_SYSNAME in + *_umlinux26) + UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include" + UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include" + UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include" + CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS" +esac +]) + +AC_DEFUN([_OPENAFS_LINUX_KBUILD_SETUP],[ +if test "x$enable_debug_kernel" = "xno"; then + LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer" +fi +OPENAFS_GCC_SUPPORTS_MARCH +AC_SUBST(P5PLUS_KOPTS) +OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE +OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING +OPENAFS_GCC_SUPPORTS_NO_COMMON +OPENAFS_GCC_SUPPORTS_PIPE +AC_SUBST(LINUX_GCC_KOPTS) + +dnl Setup the kernel build environment +LINUX_KBUILD_USES_EXTRA_CFLAGS +LINUX_KERNEL_COMPILE_WORKS +]) + +AC_DEFUN([OPENAFS_LINUX_MISC_DEFINES],[ + if test "x$enable_linux_d_splice_alias_extra_iput" = xyes; then + AC_DEFINE(D_SPLICE_ALIAS_LEAK_ON_ERROR, 1, [for internal use]) + fi + dnl Linux-only, but just enable always. + AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client]) +]) + +AC_DEFUN([OPENAFS_LINUX_CHECKS],[ +case $AFS_SYSNAME in *_linux* | *_umlinux*) + _OPENAFS_LINUX_CONFTEST_SETUP + if test "x$enable_kernel_module" = "xyes"; then + _OPENAFS_LINUX_KBUILD_SETUP + OPENAFS_LINUX_KERNEL_SIG_CHECKS + OPENAFS_LINUX_KERNEL_HEADER_CHECKS + OPENAFS_LINUX_KERNEL_TYPE_CHECKS + OPENAFS_LINUX_KERNEL_STRUCT_CHECKS + OPENAFS_LINUX_KERNEL_FUNC_CHECKS + OPENAFS_LINUX_KERNEL_ASSORTED_CHECKS + OPENAFS_LINUX_KERNEL_SYSCALL_PROBE_SETUP + OPENAFS_LINUX_KERNEL_PACKAGING_CHECKS + OPENAFS_LINUX_KERNEL_SYSCALL_PROBE_CHECKS + OPENAFS_LINUX_KERNEL_MORE_ASSORTED_CHECKS + fi + OPENAFS_LINUX_MISC_DEFINES +esac +]) diff -Nru openafs-1.8.0~pre4/src/cf/linux-guess-version.m4 openafs-1.8.0~pre5/src/cf/linux-guess-version.m4 --- openafs-1.8.0~pre4/src/cf/linux-guess-version.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/linux-guess-version.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,14 @@ +AC_DEFUN([OPENAFS_LINUX_GUESS_VERSION],[ +GUESS_LINUX_VERSION= +if test "x$enable_kernel_module" = "xyes"; then + GUESS_LINUX_VERSION=${LINUX_VERSION} +else + GUESS_LINUX_VERSION=`uname -r` +fi +case "$GUESS_LINUX_VERSION" in + 2.2.*) AFS_SYSKVERS=22 ;; + 2.4.*) AFS_SYSKVERS=24 ;; + [2.6.* | [3-9]* | [1-2][0-9]*]) AFS_SYSKVERS=26 ;; + *) AC_MSG_ERROR(Couldn't guess your Linux version [2]) ;; +esac +]) diff -Nru openafs-1.8.0~pre4/src/cf/linux-kernel-assorted.m4 openafs-1.8.0~pre5/src/cf/linux-kernel-assorted.m4 --- openafs-1.8.0~pre4/src/cf/linux-kernel-assorted.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/linux-kernel-assorted.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,77 @@ +AC_DEFUN([OPENAFS_LINUX_KERNEL_ASSORTED_CHECKS],[ +dnl Assorted more complex tests +LINUX_AIO_NONVECTOR +LINUX_EXPORTS_PROC_ROOT_FS +LINUX_KMEM_CACHE_INIT +LINUX_HAVE_KMEM_CACHE_T +LINUX_KMEM_CACHE_CREATE_TAKES_DTOR +LINUX_KMEM_CACHE_CREATE_CTOR_TAKES_VOID +LINUX_D_PATH_TAKES_STRUCT_PATH +LINUX_NEW_EXPORT_OPS +LINUX_INODE_SETATTR_RETURN_TYPE +LINUX_IOP_I_CREATE_TAKES_NAMEIDATA +LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA +LINUX_IOP_I_PERMISSION_TAKES_FLAGS +LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA +LINUX_IOP_I_PUT_LINK_TAKES_COOKIE +LINUX_DOP_D_DELETE_TAKES_CONST +LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA +LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T +LINUX_FOP_F_FSYNC_TAKES_DENTRY +LINUX_FOP_F_FSYNC_TAKES_RANGE +LINUX_AOP_WRITEBACK_CONTROL +LINUX_FS_STRUCT_FOP_HAS_SPLICE +LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG +LINUX_KERNEL_PAGEVEC_INIT_COLD_ARG +LINUX_POSIX_TEST_LOCK_RETURNS_CONFLICT +LINUX_POSIX_TEST_LOCK_CONFLICT_ARG +LINUX_KERNEL_SOCK_CREATE +LINUX_EXPORTS_KEY_TYPE_KEYRING +LINUX_NEED_RHCONFIG +LINUX_RECALC_SIGPENDING_ARG_TYPE +LINUX_EXPORTS_TASKLIST_LOCK +LINUX_GET_SB_HAS_STRUCT_VFSMOUNT +LINUX_STATFS_TAKES_DENTRY +LINUX_REFRIGERATOR +LINUX_HAVE_TRY_TO_FREEZE +LINUX_LINUX_KEYRING_SUPPORT +LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK +LINUX_KEY_ALLOC_NEEDS_CRED +LINUX_INIT_WORK_HAS_DATA +LINUX_REGISTER_SYSCTL_TABLE_NOFLAG +LINUX_HAVE_DCACHE_LOCK +LINUX_D_COUNT_IS_INT +LINUX_IOP_GETATTR_TAKES_PATH_STRUCT +LINUX_IOP_MKDIR_TAKES_UMODE_T +LINUX_IOP_CREATE_TAKES_UMODE_T +LINUX_EXPORT_OP_ENCODE_FH_TAKES_INODES +LINUX_KMAP_ATOMIC_TAKES_NO_KM_TYPE +LINUX_DENTRY_OPEN_TAKES_PATH +LINUX_D_ALIAS_IS_HLIST +LINUX_HLIST_ITERATOR_NO_NODE +LINUX_IOP_I_CREATE_TAKES_BOOL +LINUX_DOP_D_REVALIDATE_TAKES_UNSIGNED +LINUX_IOP_LOOKUP_TAKES_UNSIGNED +LINUX_D_INVALIDATE_IS_VOID +LINUX_KERNEL_READ_OFFSET_IS_LAST +]) + + +AC_DEFUN([OPENAFS_LINUX_KERNEL_MORE_ASSORTED_CHECKS],[ +if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then + AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file]) +fi +if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then + AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file]) +fi +if test "x$ac_cv_linux_func_page_get_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then + AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API]) +else + AC_MSG_WARN([your kernel does not have a usable symlink cache API]) +fi +if test "x$ac_cv_linux_func_page_get_link" != "xyes" -a "x$ac_cv_linux_struct_inode_operations_has_get_link" = "xyes"; then + AC_MSG_ERROR([Your kernel does not use follow_link - not supported without symlink cache API]) + exit 1 +fi +: dnl remnant no-op +]) diff -Nru openafs-1.8.0~pre4/src/cf/linux-kernel-func.m4 openafs-1.8.0~pre5/src/cf/linux-kernel-func.m4 --- openafs-1.8.0~pre4/src/cf/linux-kernel-func.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/linux-kernel-func.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,143 @@ +AC_DEFUN([OPENAFS_LINUX_KERNEL_FUNC_CHECKS],[ +dnl Function existence checks +AC_CHECK_LINUX_FUNC([__vfs_write], + [#include ], + [__vfs_write(NULL, NULL, 0, NULL);]) +AC_CHECK_LINUX_FUNC([kernel_write], + [#include ], + [kernel_write(NULL, NULL, 0, NULL);]) +AC_CHECK_LINUX_FUNC([bdi_init], + [#include ], + [bdi_init(NULL);]) +AC_CHECK_LINUX_FUNC([super_setup_bdi], + [#include ], + [struct super_block *sb; + super_setup_bdi(sb);]) +AC_CHECK_LINUX_FUNC([PageChecked], + [#include + #include ], + [struct page *_page; + int bchecked = PageChecked(_page);]) +AC_CHECK_LINUX_FUNC([PageFsMisc], + [#include + #include ], + [struct page *_page; + int bchecked = PageFsMisc(_page);]) +AC_CHECK_LINUX_FUNC([clear_inode], + [#include ], + [clear_inode(NULL);]) +AC_CHECK_LINUX_FUNC([current_kernel_time], + [#include ], + [struct timespec s; + s = current_kernel_time();]) +AC_CHECK_LINUX_FUNC([d_alloc_anon], + [#include ], + [d_alloc_anon(NULL);]) +AC_CHECK_LINUX_FUNC([d_count], + [#include ], + [d_count(NULL);]) +AC_CHECK_LINUX_FUNC([d_make_root], + [#include ], + [d_make_root(NULL);]) +AC_CHECK_LINUX_FUNC([do_sync_read], + [#include ], + [do_sync_read(NULL, NULL, 0, NULL);]) +AC_CHECK_LINUX_FUNC([file_dentry], + [#include ], + [struct file *f; file_dentry(f);]) +AC_CHECK_LINUX_FUNC([find_task_by_pid], + [#include ], + [pid_t p; find_task_by_pid(p);]) +AC_CHECK_LINUX_FUNC([generic_file_aio_read], + [#include ], + [generic_file_aio_read(NULL,NULL,0,0);]) +AC_CHECK_LINUX_FUNC([grab_cache_page_write_begin], + [#include ], + [grab_cache_page_write_begin(NULL, 0, 0);]) +AC_CHECK_LINUX_FUNC([hlist_unhashed], + [#include ], + [hlist_unhashed(0);]) +AC_CHECK_LINUX_FUNC([ihold], + [#include ], + [ihold(NULL);]) +AC_CHECK_LINUX_FUNC([i_size_read], + [#include ], + [i_size_read(NULL);]) +AC_CHECK_LINUX_FUNC([inode_setattr], + [#include ], + [inode_setattr(NULL, NULL);]) +AC_CHECK_LINUX_FUNC([iter_file_splice_write], + [#include ], + [iter_file_splice_write(NULL,NULL,NULL,0,0);]) +AC_CHECK_LINUX_FUNC([kernel_setsockopt], + [#include ], + [kernel_setsockopt(NULL, 0, 0, NULL, 0);]) +AC_CHECK_LINUX_FUNC([locks_lock_file_wait], + [#include ], + [locks_lock_file_wait(NULL, NULL);]) +AC_CHECK_LINUX_FUNC([page_follow_link], + [#include ], + [page_follow_link(0,0);]) +AC_CHECK_LINUX_FUNC([page_get_link], + [#include ], + [page_get_link(0,0,0);]) +AC_CHECK_LINUX_FUNC([page_offset], + [#include ], + [page_offset(NULL);]) +AC_CHECK_LINUX_FUNC([pagevec_lru_add_file], + [#include ], + [__pagevec_lru_add_file(NULL);]) +AC_CHECK_LINUX_FUNC([path_lookup], + [#include + #include ], + [path_lookup(NULL, 0, NULL);]) +AC_CHECK_LINUX_FUNC([proc_create], + [#include ], + [proc_create(NULL, 0, NULL, NULL);]) +AC_CHECK_LINUX_FUNC([rcu_read_lock], + [#include ], + [rcu_read_lock();]) +AC_CHECK_LINUX_FUNC([set_nlink], + [#include ], + [set_nlink(NULL, 1);]) +AC_CHECK_LINUX_FUNC([setattr_prepare], + [#include ], + [setattr_prepare(NULL, NULL);]) +AC_CHECK_LINUX_FUNC([sock_create_kern], + [#include ], + [sock_create_kern(0, 0, 0, NULL);]) +AC_CHECK_LINUX_FUNC([sock_create_kern_ns], + [#include ], + [sock_create_kern(NULL, 0, 0, 0, NULL);]) +AC_CHECK_LINUX_FUNC([splice_direct_to_actor], + [#include ], + [splice_direct_to_actor(NULL,NULL,NULL);]) +AC_CHECK_LINUX_FUNC([default_file_splice_read], + [#include ], + [default_file_splice_read(NULL,NULL,NULL, 0, 0);]) +AC_CHECK_LINUX_FUNC([svc_addr_in], + [#include ], + [svc_addr_in(NULL);]) +AC_CHECK_LINUX_FUNC([zero_user_segments], + [#include ], + [zero_user_segments(NULL, 0, 0, 0, 0);]) +AC_CHECK_LINUX_FUNC([noop_fsync], + [#include ], + [void *address = &noop_fsync; printk("%p\n", address)];) +AC_CHECK_LINUX_FUNC([kthread_run], + [#include + #include ], + [kthread_run(NULL, NULL, "test");]) +AC_CHECK_LINUX_FUNC([inode_nohighmem], + [#include ], + [inode_nohighmem(NULL);]) +AC_CHECK_LINUX_FUNC([inode_lock], + [#include ], + [inode_lock(NULL);]) + +dnl Consequences - things which get set as a result of the +dnl above tests +AS_IF([test "x$ac_cv_linux_func_d_alloc_anon" = "xno"], + [AC_DEFINE([AFS_NONFSTRANS], 1, + [define to disable the nfs translator])]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/linux-kernel-header.m4 openafs-1.8.0~pre5/src/cf/linux-kernel-header.m4 --- openafs-1.8.0~pre4/src/cf/linux-kernel-header.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/linux-kernel-header.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,12 @@ +AC_DEFUN([OPENAFS_LINUX_KERNEL_HEADER_CHECKS],[ +dnl Check for header files +AC_CHECK_LINUX_HEADER([cred.h]) +AC_CHECK_LINUX_HEADER([config.h]) +AC_CHECK_LINUX_HEADER([exportfs.h]) +AC_CHECK_LINUX_HEADER([freezer.h]) +AC_CHECK_LINUX_HEADER([key-type.h]) +AC_CHECK_LINUX_HEADER([semaphore.h]) +AC_CHECK_LINUX_HEADER([seq_file.h]) +AC_CHECK_LINUX_HEADER([sched/signal.h]) +AC_CHECK_LINUX_HEADER([uaccess.h]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/linux-kernel-packaging.m4 openafs-1.8.0~pre5/src/cf/linux-kernel-packaging.m4 --- openafs-1.8.0~pre4/src/cf/linux-kernel-packaging.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/linux-kernel-packaging.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,8 @@ +AC_DEFUN([OPENAFS_LINUX_KERNEL_PACKAGING_CHECKS],[ +dnl Packaging and SMP build +if test "x$with_linux_kernel_packaging" != "xyes" ; then + LINUX_WHICH_MODULES +else + AC_SUBST(MPS,'SP') +fi +]) diff -Nru openafs-1.8.0~pre4/src/cf/linux-kernel-path.m4 openafs-1.8.0~pre5/src/cf/linux-kernel-path.m4 --- openafs-1.8.0~pre4/src/cf/linux-kernel-path.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/linux-kernel-path.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,70 @@ +AC_DEFUN([OPENAFS_LINUX_KERNEL_PATH],[ +if test "x$with_linux_kernel_headers" != "x"; then + LINUX_KERNEL_PATH="$with_linux_kernel_headers" +else + for utsdir in "/lib/modules/`uname -r`/build" \ + "/lib/modules/`uname -r`/source" \ + "/usr/src/linux-2.4" \ + "/usr/src/linux"; do + LINUX_KERNEL_PATH="$utsdir" + for utsfile in "include/generated/utsrelease.h" \ + "include/linux/utsrelease.h" \ + "include/linux/version.h" \ + "include/linux/version-up.h"; do + if grep "UTS_RELEASE" "$utsdir/$utsfile" >/dev/null 2>&1; then + break 2 + fi + done + done +fi +if test "x$with_linux_kernel_build" != "x"; then + LINUX_KERNEL_BUILD="$with_linux_kernel_build" +else + LINUX_KERNEL_BUILD=$LINUX_KERNEL_PATH +fi +if test -f "$LINUX_KERNEL_BUILD/include/generated/utsrelease.h"; then + linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/generated/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1` + LINUX_VERSION="$linux_kvers" +else + if test -f "$LINUX_KERNEL_BUILD/include/linux/utsrelease.h"; then + linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1` + LINUX_VERSION="$linux_kvers" + else + if test -f "$LINUX_KERNEL_BUILD/include/linux/version.h"; then + linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1` + if test "x$linux_kvers" = "x"; then + if test -f "$LINUX_KERNEL_BUILD/include/linux/version-up.h"; then + linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1` + if test "x$linux_kvers" = "x"; then + AC_MSG_ERROR(Linux headers lack version definition [2]) + exit 1 + else + LINUX_VERSION="$linux_kvers" + fi + else + AC_MSG_ERROR(Linux headers lack version definition) + exit 1 + fi + else + LINUX_VERSION="$linux_kvers" + fi + else + enable_kernel_module="no" + fi + fi +fi +if test ! -f "$LINUX_KERNEL_BUILD/include/generated/autoconf.h" && + test ! -f "$LINUX_KERNEL_BUILD/include/linux/autoconf.h"; then + enable_kernel_module="no" +fi +if test "x$enable_kernel_module" = "xno"; then + if test "x$with_linux_kernel_headers" != "x"; then + AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH) + exit 1 + else + AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module) + fi +fi +dnl do we need to determine SUBARCH from autoconf.h +SUBARCH=default +]) diff -Nru openafs-1.8.0~pre4/src/cf/linux-kernel-sig.m4 openafs-1.8.0~pre5/src/cf/linux-kernel-sig.m4 --- openafs-1.8.0~pre4/src/cf/linux-kernel-sig.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/linux-kernel-sig.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,17 @@ +AC_DEFUN([OPENAFS_LINUX_KERNEL_SIG_CHECKS],[ +dnl Operation signature checks +AC_CHECK_LINUX_OPERATION([inode_operations], [follow_link], [no_nameidata], + [#include ], + [const char *], + [struct dentry *dentry, void **link_data]) +AC_CHECK_LINUX_OPERATION([inode_operations], [put_link], [no_nameidata], + [#include ], + [void], + [struct inode *inode, void *link_data]) +AC_CHECK_LINUX_OPERATION([inode_operations], [rename], [takes_flags], + [#include ], + [int], + [struct inode *oinode, struct dentry *odentry, + struct inode *ninode, struct dentry *ndentry, + unsigned int flags]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/linux-kernel-struct.m4 openafs-1.8.0~pre5/src/cf/linux-kernel-struct.m4 --- openafs-1.8.0~pre4/src/cf/linux-kernel-struct.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/linux-kernel-struct.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,55 @@ +AC_DEFUN([OPENAFS_LINUX_KERNEL_STRUCT_CHECKS],[ +dnl Check for structure elements +AC_CHECK_LINUX_STRUCT([address_space], [backing_dev_info], [fs.h]) +AC_CHECK_LINUX_STRUCT([address_space_operations], + [write_begin], [fs.h]) +AC_CHECK_LINUX_STRUCT([backing_dev_info], [name], + [backing-dev.h]) +AC_CHECK_LINUX_STRUCT([cred], [session_keyring], [cred.h]) +AC_CHECK_LINUX_STRUCT([ctl_table], [ctl_name], [sysctl.h]) +AC_CHECK_LINUX_STRUCT([dentry], [d_u.d_alias], [dcache.h]) +AC_CHECK_LINUX_STRUCT([dentry_operations], [d_automount], [dcache.h]) +AC_CHECK_LINUX_STRUCT([group_info], [gid], [cred.h]) +AC_CHECK_LINUX_STRUCT([inode], [i_alloc_sem], [fs.h]) +AC_CHECK_LINUX_STRUCT([inode], [i_blkbits], [fs.h]) +AC_CHECK_LINUX_STRUCT([inode], [i_blksize], [fs.h]) +AC_CHECK_LINUX_STRUCT([inode], [i_mutex], [fs.h]) +AC_CHECK_LINUX_STRUCT([inode], [i_security], [fs.h]) +AC_CHECK_LINUX_STRUCT([file], [f_path], [fs.h]) +AC_CHECK_LINUX_STRUCT([file_operations], [flock], [fs.h]) +AC_CHECK_LINUX_STRUCT([file_operations], [iterate], [fs.h]) +AC_CHECK_LINUX_STRUCT([file_operations], [read_iter], [fs.h]) +AC_CHECK_LINUX_STRUCT([file_operations], [sendfile], [fs.h]) +AC_CHECK_LINUX_STRUCT([file_system_type], [mount], [fs.h]) +AC_CHECK_LINUX_STRUCT([inode_operations], [truncate], [fs.h]) +AC_CHECK_LINUX_STRUCT([inode_operations], [get_link], [fs.h]) +AC_CHECK_LINUX_STRUCT([key], [payload.value], [key.h]) +AC_CHECK_LINUX_STRUCT([key_type], [instantiate_prep], [key-type.h]) +AC_CHECK_LINUX_STRUCT([key_type], [match_preparse], [key-type.h]) +AC_CHECK_LINUX_STRUCT([key_type], [preparse], [key-type.h]) +AC_CHECK_LINUX_STRUCT([msghdr], [msg_iter], [socket.h]) +AC_CHECK_LINUX_STRUCT([nameidata], [path], [namei.h]) +AC_CHECK_LINUX_STRUCT([proc_dir_entry], [owner], [proc_fs.h]) +AC_CHECK_LINUX_STRUCT([super_block], [s_bdi], [fs.h]) +AC_CHECK_LINUX_STRUCT([super_block], [s_d_op], [fs.h]) +AC_CHECK_LINUX_STRUCT([super_operations], [alloc_inode], + [fs.h]) +AC_CHECK_LINUX_STRUCT([super_operations], [evict_inode], + [fs.h]) +AC_CHECK_LINUX_STRUCT([task_struct], [cred], [sched.h]) +AC_CHECK_LINUX_STRUCT([task_struct], [exit_state], [sched.h]) +AC_CHECK_LINUX_STRUCT([task_struct], [parent], [sched.h]) +AC_CHECK_LINUX_STRUCT([task_struct], [real_parent], [sched.h]) +AC_CHECK_LINUX_STRUCT([task_struct], [rlim], [sched.h]) +AC_CHECK_LINUX_STRUCT([task_struct], [sig], [sched.h]) +AC_CHECK_LINUX_STRUCT([task_struct], [sighand], [sched.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 +AC_CHECK_LINUX_TYPED_STRUCT([read_descriptor_t], + [buf], [fs.h]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/linux-kernel-syscall-probe.m4 openafs-1.8.0~pre5/src/cf/linux-kernel-syscall-probe.m4 --- openafs-1.8.0~pre4/src/cf/linux-kernel-syscall-probe.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/linux-kernel-syscall-probe.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,61 @@ +AC_DEFUN([OPENAFS_LINUX_KERNEL_SYSCALL_PROBE_SETUP],[ +dnl If we are guaranteed that keyrings will work - that is +dnl a) The kernel has keyrings enabled +dnl b) The code is new enough to give us a key_type_keyring +dnl then we just disable syscall probing unless we've been +dnl told otherwise + +AS_IF([test "$enable_linux_syscall_probing" = "maybe"], + [AS_IF([test "$ac_cv_linux_keyring_support" = "yes" -a "$ac_cv_linux_exports_key_type_keyring" = "yes"], + [enable_linux_syscall_probing="no"], + [enable_linux_syscall_probing="yes"]) +]) + +dnl Syscall probing needs a few tests of its own, and just +dnl won't work if the kernel doesn't export init_mm +AS_IF([test "$enable_linux_syscall_probing" = "yes"], [ + LINUX_EXPORTS_INIT_MM + AS_IF([test "$ac_cv_linux_exports_init_mm" = "no"], [ + AC_MSG_ERROR( + [Can't do syscall probing without exported init_mm]) + ]) + LINUX_EXPORTS_SYS_CHDIR + LINUX_EXPORTS_SYS_OPEN + AC_DEFINE(ENABLE_LINUX_SYSCALL_PROBING, 1, + [define to enable syscall table probes]) +]) +]) + +AC_DEFUN([OPENAFS_LINUX_KERNEL_SYSCALL_PROBE_CHECKS],[ +dnl Syscall probing +if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then + AS_IF([test "$enable_linux_syscall_probing" = "yes"], [ + AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported]) + ]) + ac_cv_linux_exports_sys_call_table=no + if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then + ac_cv_linux_exports_ia32_sys_call_table=yes + fi +else + LINUX_EXPORTS_KALLSYMS_ADDRESS + LINUX_EXPORTS_KALLSYMS_SYMBOL + LINUX_EXPORTS_SYS_CALL_TABLE + LINUX_EXPORTS_IA32_SYS_CALL_TABLE + if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then + linux_syscall_method=none + if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then + linux_syscall_method=scan + if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then + linux_syscall_method=scan_with_kallsyms_address + fi + fi + if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then + linux_syscall_method=kallsyms_symbol + fi + if test "x$linux_syscall_method" = "xnone"; then + AC_MSG_WARN([no available sys_call_table access method -- guessing scan]) + linux_syscall_method=scan + fi + fi +fi +]) diff -Nru openafs-1.8.0~pre4/src/cf/linux-kernel-type.m4 openafs-1.8.0~pre5/src/cf/linux-kernel-type.m4 --- openafs-1.8.0~pre4/src/cf/linux-kernel-type.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/linux-kernel-type.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,5 @@ +AC_DEFUN([OPENAFS_LINUX_KERNEL_TYPE_CHECKS],[ +dnl Type existence checks +AC_CHECK_LINUX_TYPE([struct vfs_path], [dcache.h]) +AC_CHECK_LINUX_TYPE([kuid_t], [uidgid.h]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/members.m4 openafs-1.8.0~pre5/src/cf/members.m4 --- openafs-1.8.0~pre4/src/cf/members.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/members.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,4 @@ +AC_DEFUN([OPENAFS_MEMBER_CHECKS],[ +dnl see what struct stat has for timestamps +AC_CHECK_MEMBERS([struct stat.st_ctimespec, struct stat.st_ctimensec]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/options.m4 openafs-1.8.0~pre5/src/cf/options.m4 --- openafs-1.8.0~pre4/src/cf/options.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/options.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,340 @@ + +AC_DEFUN([OPENAFS_OPTIONS],[ + +dnl System identity. +AC_ARG_WITH([afs-sysname], + [AS_HELP_STRING([--with-afs-sysname=sys], [use sys for the afs sysname]) +]) + +dnl General feature options. +AC_ARG_ENABLE([namei-fileserver], + [AS_HELP_STRING([--enable-namei-fileserver], + [force compilation of namei fileserver in preference to inode + fileserver])], + [], + [enable_namei_fileserver="default"]) +AC_ARG_ENABLE([supergroups], + [AS_HELP_STRING([--enable-supergroups], + [enable support for nested pts groups])], + [], + [enable_supergroups="no"]) +AC_ARG_ENABLE([bitmap-later], + [AS_HELP_STRING([--enable-bitmap-later], + [enable fast startup of file server by not reading bitmap till + needed])], + [AS_IF([test x"$withval" = xyes], + [AC_MSG_WARN([bitmap-later is only used by non-demand-attach + fileservers. Please migrate to demand-attach instead.])])], + [enable_bitmap_later="no"]) +AC_ARG_ENABLE([unix-sockets], + [AS_HELP_STRING([--disable-unix-sockets], + [disable use of unix domain sockets for fssync (defaults to enabled)])], + [], + [enable_unix_sockets="yes"]) +AC_ARG_ENABLE([tivoli-tsm], + [AS_HELP_STRING([--enable-tivoli-tsm], + [enable use of the Tivoli TSM API libraries for butc support])], + [], + [enable_tivoli_tsm="no"]) +AC_ARG_ENABLE([pthreaded-ubik], + [AS_HELP_STRING([--disable-pthreaded-ubik], + [disable installation of pthreaded ubik applications (defaults to + enabled)])], + [], + [enable_pthreaded_ubik="yes"]) +AC_ARG_ENABLE([ubik-read-while-write], + [AS_HELP_STRING([--enable-ubik-read-while-write], + [enable vlserver read from db cache during write locks (EXPERIMENTAL)])], + [], + [enable_ubik_read_while_write="no"]) + +dnl Kernel module build options. +AC_ARG_WITH([linux-kernel-headers], + [AS_HELP_STRING([--with-linux-kernel-headers=path], + [use the kernel headers found at path (optional, defaults to + /lib/modules/`uname -r`/build, then /lib/modules/`uname -r`/source, + then /usr/src/linux-2.4, and lastly /usr/src/linux)]) +]) +AC_ARG_WITH([linux-kernel-build], + [AS_HELP_STRING([--with-linux-kernel-build=path], + [use the kernel build found at path(optional, defaults to + kernel headers path)] +)]) +AC_ARG_WITH([bsd-kernel-headers], + [AS_HELP_STRING([--with-bsd-kernel-headers=path], + [use the kernel headers found at path (optional, defaults to + /usr/src/sys)]) +]) +AC_ARG_WITH([bsd-kernel-build], + [AS_HELP_STRING([--with-bsd-kernel-build=path], + [use the kernel build found at path (optional, defaults to + KSRC/i386/compile/GENERIC)]) +]) +AC_ARG_WITH([linux-kernel-packaging], + [AS_HELP_STRING([--with-linux-kernel-packaging], + [use standard naming conventions to aid Linux kernel build packaging + (disables MPS, sets the kernel module name to openafs.ko, and + installs kernel modules into the standard Linux location)])], + [AC_SUBST([LINUX_KERNEL_PACKAGING], [yes]) + AC_SUBST([LINUX_LIBAFS_NAME], [openafs])], + [AC_SUBST([LINUX_LIBAFS_NAME], [libafs]) +]) +AC_ARG_ENABLE([kernel-module], + [AS_HELP_STRING([--disable-kernel-module], + [disable compilation of the kernel module (defaults to enabled)])], + [], + [enable_kernel_module="yes"]) +AC_ARG_ENABLE([redhat-buildsys], + [AS_HELP_STRING([--enable-redhat-buildsys], + [enable compilation of the redhat build system kernel (defaults to + disabled)])], + [], + [enable_redhat_buildsys="no"]) + +dnl Installation locations. +AC_ARG_ENABLE([transarc-paths], + [AS_HELP_STRING([--enable-transarc-paths], + [use Transarc style paths like /usr/afs and /usr/vice])], + [], + [enable_transarc_paths="no"]) + +dnl Deprecated crypto +AC_ARG_ENABLE([kauth], + [AS_HELP_STRING([--enable-kauth], + [install the deprecated kauth server, pam modules, and utilities + (defaults to disabled)])], + [enable_pam="yes"], + [enable_kauth="no" + enable_pam="no"]) + +dnl Optimization and debugging flags. +AC_ARG_ENABLE([strip-binaries], + [AS_HELP_STRING([--disable-strip-binaries], + [disable stripping of symbol information from binaries (defaults to + enabled)])], + [], + [enable_strip_binaries="maybe"]) +AC_ARG_ENABLE([debug], + [AS_HELP_STRING([--enable-debug], + [enable compilation of the user space code with debugging information + (defaults to disabled)])], + [], + [enable_debug="no"]) +AC_ARG_ENABLE([optimize], + [AS_HELP_STRING([--disable-optimize], + [disable optimization for compilation of the user space code (defaults + to enabled)])], + [], + [enable_optimize="yes"]) +AC_ARG_ENABLE([warnings], + [AS_HELP_STRING([--enable-warnings], + [enable compilation warnings when building with gcc (defaults to + disabled)])], + [], + [enable_warnings="no"]) +AC_ARG_ENABLE([checking], + [AS_HELP_STRING([--enable-checking], + [turn compilation warnings into errors when building with gcc (defaults + to disabled)])], + [enable_checking="$enableval"], + [enable_checking="no"]) +AC_ARG_ENABLE([debug-locks], + [AS_HELP_STRING([--enable-debug-locks], + [turn on lock debugging assertions (defaults to disabled)])], + [enable_debug_locks="$enableval"], + [enable_debug_locks="no"]) +AC_ARG_ENABLE([debug-kernel], + [AS_HELP_STRING([--enable-debug-kernel], + [enable compilation of the kernel module with debugging information + (defaults to disabled)])], + [], + [enable_debug_kernel="no"]) +AC_ARG_ENABLE([optimize-kernel], + [AS_HELP_STRING([--disable-optimize-kernel], + [disable compilation of the kernel module with optimization (defaults + based on platform)])], + [], + [enable_optimize_kernel=""]) +AC_ARG_ENABLE([debug-lwp], + [AS_HELP_STRING([--enable-debug-lwp], + [enable compilation of the LWP code with debugging information + (defaults to disabled)])], + [], + [enable_debug_lwp="no"]) +AC_ARG_ENABLE([optimize-lwp], + [AS_HELP_STRING([--disable-optimize-lwp], + [disable optimization for compilation of the LWP code (defaults to + enabled)])], + [], + [enable_optimize_lwp="yes"]) +AC_ARG_ENABLE([debug-pam], + [AS_HELP_STRING([--enable-debug-pam], + [enable compilation of the PAM code with debugging information + (defaults to disabled)])], + [], + [enable_debug_pam="no"]) +AC_ARG_ENABLE([optimize-pam], + [AS_HELP_STRING([--disable-optimize-pam], + [disable optimization for compilation of the PAM code (defaults to + enabled)])], + [], + [enable_optimize_pam="yes"]) +AC_ARG_ENABLE([linux-syscall-probing], + [AS_HELP_STRING([--enable-linux-syscall-probing], + [enable Linux syscall probing (defaults to autodetect)])], + [], + [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 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.])], + [], + [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]) +]) + +AC_ARG_WITH([xslt-processor], + AS_HELP_STRING([--with-xslt-processor=ARG], + [which XSLT processor to use (possible choices are: libxslt, saxon, xalan-j, xsltproc)]), + [XSLTPROC="$withval"], + [AC_CHECK_PROGS([XSLTPROC], [libxslt saxon xalan-j xsltproc], [echo])]) + +AC_ARG_WITH([html-xsl], + AS_HELP_STRING([--with-html-xsl], + [build HTML documentation using this stylesheet (default is html/chunk.dsl; specify either html/chunk.xsl or html/docbook.xsl)]), + [HTML_XSL="$withval"], + [HTML_XSL="html/chunk.xsl"]) + +AC_ARG_WITH([docbook2pdf], + AS_HELP_STRING([--with-docbook2pdf=ARG], + [which Docbook to PDF utility to use (possible choices are: fop, dblatex, docbook2pdf)]), + [DOCBOOK2PDF="$withval"], + [AC_CHECK_PROGS([DOCBOOK2PDF], [fop dblatex docbook2pdf], [echo])]) + +AC_ARG_WITH([docbook-stylesheets], + AS_HELP_STRING([--with-docbook-stylesheets=ARG], + [location of DocBook stylesheets (default is to search a set of likely paths)]), + [DOCBOOK_STYLESHEETS="$withval"], + [OPENAFS_SEARCH_DIRLIST([DOCBOOK_STYLESHEETS], + [/usr/share/xml/docbook/stylesheet/nwalsh/current \ + /usr/share/xml/docbook/stylesheet/nwalsh \ + /usr/share/xml/docbook/xsl-stylesheets \ + /usr/share/sgml/docbook/docbook-xsl-stylesheets \ + /usr/share/sgml/docbook/xsl-stylesheets \ + /usr/share/docbook-xsl \ + /usr/share/sgml/docbkxsl \ + /usr/local/share/xsl/docbook \ + /sw/share/xml/xsl/docbook-xsl \ + /opt/local/share/xsl/docbook-xsl], + [$HTML_XSL]) + AS_IF([test "x$DOCBOOK_STYLESHEETS" = "x"], + [AC_WARN([Docbook stylesheets not found; some documentation can't be built]) + ]) + ]) + +AC_ARG_WITH([dot], + AS_HELP_STRING([--with-dot@<:@=PATH@:>@], + [use graphviz dot to generate dependency graphs with doxygen (defaults to autodetect)]), + [], [with_dot="maybe"]) + +enable_login="no" + +]) + +AC_DEFUN([OPENAFS_OPTION_TESTS],[ +# Fast restart +if test "$enable_supergroups" = "yes"; then + AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups]) +fi + +if test "$enable_bitmap_later" = "yes"; then + AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later]) +fi + +if test "$enable_unix_sockets" = "yes"; then + AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.]) + USE_UNIX_SOCKETS="yes" +else + USE_UNIX_SOCKETS="no" +fi +AC_SUBST(USE_UNIX_SOCKETS) + +if test "$enable_ubik_read_while_write" = "yes"; then + AC_DEFINE(UBIK_READ_WHILE_WRITE, 1, [define if you want to enable ubik read while write]) +fi + +if test "$enable_namei_fileserver" = "yes"; then + AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver]) + VFSCK="" +else + if test "$enable_namei_fileserver" = "default"; then + case $host in + *-solaris2.10*) + AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver) + AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver]) + VFSCK="" + ;; + *-solaris2.11*) + AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver) + AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver]) + VFSCK="" + ;; + *) + VFSCK="vfsck" + ;; + esac + else + VFSCK="vfsck" + fi +fi +]) + +AC_DEFUN([OPENAFS_MORE_OPTION_TESTS],[ +if test "$enable_debug_locks" = yes; then + AC_DEFINE(OPR_DEBUG_LOCKS, 1, [turn on lock debugging in opr]) +fi + +if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then + HAVE_PAM="yes" +else + HAVE_PAM="no" +fi +AC_SUBST(HAVE_PAM) + +if test "$enable_login" = yes; then + BUILD_LOGIN="yes" +else + BUILD_LOGIN="no" +fi +AC_SUBST(BUILD_LOGIN) + +if test "$enable_kauth" = yes; then + INSTALL_KAUTH="yes" +else + INSTALL_KAUTH="no" +fi +AC_SUBST(INSTALL_KAUTH) +]) + +AC_DEFUN([OPENAFS_YET_MORE_OPTION_TESTS],[ +if test "x$enable_kernel_module" = "xyes"; then +ENABLE_KERNEL_MODULE=libafs +fi + +if test "x$enable_pthreaded_ubik" = "xyes"; then +ENABLE_PTHREADED_UBIK=yes +fi +]) diff -Nru openafs-1.8.0~pre4/src/cf/ostype.m4 openafs-1.8.0~pre5/src/cf/ostype.m4 --- openafs-1.8.0~pre4/src/cf/ostype.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/ostype.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,88 @@ +AC_DEFUN([OPENAFS_OSTYPE],[ +AC_MSG_CHECKING(your OS) +system=$host +case $system in + *-linux*) + MKAFS_OSTYPE=LINUX + if test "x$enable_redhat_buildsys" = "xyes"; then + AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem]) + fi + if test "x$enable_kernel_module" = "xyes"; then + OPENAFS_LINUX_KERNEL_PATH + fi + AC_MSG_RESULT(linux) + OPENAFS_LINUX_GUESS_VERSION + ;; + *-solaris*) + MKAFS_OSTYPE=SOLARIS + AC_MSG_RESULT(sun4) + OPENAFS_SOLARIS_OSTYPE + ;; + *-sunos*) + MKAFS_OSTYPE=SUNOS + enable_kernel_module=no + AC_MSG_RESULT(sun4) + ;; + *-hpux*) + MKAFS_OSTYPE=HPUX + AC_MSG_RESULT(hp_ux) + if test -f "/usr/old/usr/include/ndir.h"; then + AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h]) + fi + ;; + *-irix*) + if test -d /usr/include/sys/SN/SN1; then + IRIX_BUILD_IP35="IP35" + fi + MKAFS_OSTYPE=IRIX + AC_MSG_RESULT(sgi) + ;; + *-aix*) + MKAFS_OSTYPE=AIX + AC_MSG_RESULT(rs_aix) + ;; + arm-*-darwin*) + MKAFS_OSTYPE=DARWIN + AC_MSG_RESULT(arm_darwin) + ;; + powerpc-*-darwin*) + MKAFS_OSTYPE=DARWIN + AC_MSG_RESULT(ppc_darwin) + ;; + i386-*-darwin*) + MKAFS_OSTYPE=DARWIN + AC_MSG_RESULT(x86_darwin) + ;; + x86_64-*-darwin*) + MKAFS_OSTYPE=DARWIN + AC_MSG_RESULT(x86_darwin) + ;; + i386-*-freebsd*) + MKAFS_OSTYPE=FBSD + AC_MSG_RESULT(i386_fbsd) + ;; + x86_64-*-freebsd*) + MKAFS_OSTYPE=FBSD + AC_MSG_RESULT(amd64_fbsd) + ;; + *-netbsd*) + MKAFS_OSTYPE=NBSD + AC_MSG_RESULT(nbsd) + ;; + x86_64-*-openbsd*) + MKAFS_OSTYPE=OBSD + AC_MSG_RESULT(amd64_obsd) + ;; + i386-*-openbsd*) + MKAFS_OSTYPE=OBSD + AC_MSG_RESULT(i386_obsd) + ;; + *-dragonfly*) + MKAFS_OSTYPE=DFBSD + AC_MSG_RESULT(i386_dfbsd) + ;; + *) + AC_MSG_RESULT($system) + ;; +esac +]) diff -Nru openafs-1.8.0~pre4/src/cf/pthread.m4 openafs-1.8.0~pre5/src/cf/pthread.m4 --- openafs-1.8.0~pre4/src/cf/pthread.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/pthread.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,76 @@ +AC_DEFUN([OPENAFS_PTHREAD_CHECKS],[ +PTHREAD_LIBS=error +if test "x$MKAFS_OSTYPE" = OBSD; then + PTHREAD_LIBS="-pthread" +fi +if test "x$MKAFS_OSTYPE" = xDFBSD; then + PTHREAD_LIBS="-pthread" +fi +if test "x$PTHREAD_LIBS" = xerror; then + AC_CHECK_LIB(pthread, pthread_attr_init, + PTHREAD_LIBS="-lpthread") +fi +if test "x$PTHREAD_LIBS" = xerror; then + AC_CHECK_LIB(pthreads, pthread_attr_init, + PTHREAD_LIBS="-lpthreads") +fi +if test "x$PTHREAD_LIBS" = xerror; then + AC_CHECK_LIB(c_r, pthread_attr_init, + PTHREAD_LIBS="-lc_r") +fi +if test "x$PTHREAD_LIBS" = xerror; then + AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="") +fi +if test "x$PTHREAD_LIBS" = xerror; then + # pthread_attr_init is a macro under HPUX 11.0 and 11.11 + AC_CHECK_LIB(pthread, pthread_attr_destroy, + PTHREAD_LIBS="-lpthread") +fi +if test "x$PTHREAD_LIBS" = xerror; then + AC_MSG_WARN(*** Unable to locate working posix thread library ***) +fi +AC_SUBST(PTHREAD_LIBS) +]) + +AC_DEFUN([OPENAFS_MORE_PTHREAD_CHECKS],[ +dnl Look for "non-portable" pthreads functions. +save_LIBS="$LIBS" +LIBS="$LIBS $PTHREAD_LIBS" +AC_CHECK_FUNCS([ \ + pthread_set_name_np \ + pthread_setname_np \ +]) + +dnl Sadly, there are three different versions of pthread_setname_np. +dnl Try to cater for all of them. +if test "$ac_cv_func_pthread_setname_np" = "yes" ; then + AC_MSG_CHECKING([for signature of pthread_setname_np]) + AC_TRY_COMPILE([ +#include +#ifdef HAVE_PTHREAD_NP_H +#include +#endif +], [pthread_setname_np(pthread_self(), "test", (void *)0)], [ + AC_MSG_RESULT([three arguments]) + pthread_setname_np_args=3], [ + AC_TRY_COMPILE([ +#include +#ifdef HAVE_PTHREAD_NP_H +#include +#endif +], [pthread_setname_np(pthread_self(), "test")], [ + AC_MSG_RESULT([two arguments]) + pthread_setname_np_args=2], [ + AC_TRY_COMPILE([ +#include +#ifdef HAVE_PTHREAD_NP_H +#include +#endif +], [pthread_setname_np("test")], [ + AC_MSG_RESULT([one argument]) + pthread_setname_np_args=1], [pthread_setname_np_args=0]) +]) +]) +AC_DEFINE_UNQUOTED([PTHREAD_SETNAME_NP_ARGS], $pthread_setname_np_args, [Number of arguments required by pthread_setname_np() function]) +fi +]) diff -Nru openafs-1.8.0~pre4/src/cf/regex.m4 openafs-1.8.0~pre5/src/cf/regex.m4 --- openafs-1.8.0~pre4/src/cf/regex.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/regex.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,12 @@ +AC_DEFUN([OPENAFS_REGEX_CHECKS],[ +AC_MSG_CHECKING([for POSIX regex library]) +if test "$ac_cv_header_regex_h" = "yes" && \ + test "$ac_cv_func_regcomp" = "yes" && \ + test "$ac_cv_func_regexec" = "yes" && \ + test "$ac_cv_func_regerror" = "yes"; then + AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library]) + AC_MSG_RESULT(yes) +else + AC_MSG_RESULT(no) +fi +]) diff -Nru openafs-1.8.0~pre4/src/cf/roken.m4 openafs-1.8.0~pre5/src/cf/roken.m4 --- openafs-1.8.0~pre4/src/cf/roken.m4 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/roken.m4 2018-02-19 14:40:36.000000000 +0000 @@ -23,7 +23,7 @@ buildtool_roken="\$(LDFLAGS_roken) \$(LIB_roken)"]) dnl _OPENAFS_ROKEN_CHECK($action-if-found, -dnl $action-if-not-found) +dnl $action-if-not-found) dnl Find a roken library using $roken_root, $roken_libdir, and $roken_includedir dnl dnl If none of the three paths are specified, @@ -38,13 +38,13 @@ save_LDFLAGS=$LDFLAGS save_LIBS=$LIBS AS_IF([test x"$CPPFLAGS_roken" != x], - [CPPFLAGS="$CPPFLAGS_roken $CPPFLAGS"]) + [CPPFLAGS="$CPPFLAGS_roken $CPPFLAGS"]) AS_IF([test x"$LDFLAGS_roken" != x], - [LDFLAGS="$LDFLAGS_roken $LDFLAGS"]) + [LDFLAGS="$LDFLAGS_roken $LDFLAGS"]) AS_IF([test x"$roken_libdir" != x || test x"$roken_includedir" != x], - [checkstr=" with specified include and lib paths"], - [AS_IF([test x"$roken_root" != x], - [checkstr=" in $roken_root"])]) + [checkstr=" with specified include and lib paths"], + [AS_IF([test x"$roken_root" != x], + [checkstr=" in $roken_root"])]) AC_MSG_CHECKING([for usable system libroken$checkstr]) @@ -73,7 +73,7 @@ LIBS=$save_LIBS AS_IF([test x"$roken_found" = xtrue], - [$1], [$2]) + [$1], [$2]) ]) AC_DEFUN([OPENAFS_ROKEN], [ @@ -86,31 +86,117 @@ AC_ARG_WITH([roken], [AS_HELP_STRING([--with-roken=DIR], - [Location of the roken library, or 'internal'])], + [Location of the roken library, or 'internal'])], [AS_IF([test x"$withval" = xno], - [AC_ERROR("OpenAFS requires roken to build")], - [AS_IF([test x"$withval" != xyes], - [roken_root="$withval"]) - ]) + [AC_ERROR("OpenAFS requires roken to build")], + [AS_IF([test x"$withval" != xyes], + [roken_root="$withval"]) + ]) ]) AC_ARG_WITH([roken-include], [AS_HELP_STRING([--with-roken-include=DIR], - [Location of roken headers])], + [Location of roken headers])], [AS_IF([test x"$withval" != xyes && test x"$withval" != xno], - [roken_includedir="$withval"])]) + [roken_includedir="$withval"])]) AC_ARG_WITH([roken-lib], [AS_HELP_STRING([--with-roken-lib=DIR], - [Location of roken libraries])], + [Location of roken libraries])], [AS_IF([test x"$withval" != xyes && test x"$withval" != xno], - [roken_libdir="$withval"])]) + [roken_libdir="$withval"])]) AS_IF([test x"$roken_root" = xinternal], - [_OPENAFS_ROKEN_INTERNAL()], - [AS_IF([test x"$roken_root" = x && test x"$roken_libdir" = x && - test x"$roken_includedir" = x], - [_OPENAFS_ROKEN_CHECK([], [_OPENAFS_ROKEN_INTERNAL()])], - [_OPENAFS_ROKEN_CHECK([], - [AC_MSG_ERROR([Cannot find roken at that location])]) - ]) - ]) + [_OPENAFS_ROKEN_INTERNAL()], + [AS_IF([test x"$roken_root" = x && test x"$roken_libdir" = x && + test x"$roken_includedir" = x], + [_OPENAFS_ROKEN_CHECK([], [_OPENAFS_ROKEN_INTERNAL()])], + [_OPENAFS_ROKEN_CHECK([], + [AC_MSG_ERROR([Cannot find roken at that location])]) + ]) + ]) +]) + +AC_DEFUN([OPENAFS_MORE_ROKEN_CHECKS],[ +dnl Functions that Heimdal's libroken provides, but that we +dnl haven't found a need for yet, and so haven't imported +AC_CHECK_FUNCS([ \ + chown \ + fchown \ + gethostname \ + lstat \ + inet_aton \ + putenv \ + readv \ + setenv \ + strdup \ + strftime \ + strndup \ + strsep \ + unsetenv \ +]) + +dnl Functions that are in objects that we always build from libroken +AC_CHECK_FUNCS([ \ + asprintf \ + asnprintf \ + vasprintf \ + vasnprintf \ + vsnprintf \ + snprintf \ +]) + +dnl Functions that we're going to try and get from libroken +AC_REPLACE_FUNCS([ \ + daemon \ + ecalloc \ + emalloc \ + erealloc \ + err \ + errx \ + flock \ + freeaddrinfo \ + gai_strerror \ + getaddrinfo \ + getdtablesize \ + getnameinfo \ + getopt \ + getprogname \ + gettimeofday \ + inet_ntop \ + inet_pton \ + localtime_r \ + mkstemp \ + setenv \ + setprogname \ + strcasecmp \ + strlcat \ + strnlen \ + strlcpy \ + strsep \ + tdelete \ + tfind \ + tsearch \ + twalk \ + unsetenv \ + verr \ + verrx \ + vsyslog \ + vwarn \ + vwarnx \ + warn \ + warnx \ +]) + +dnl Headers that we're going to try and get from libroken +AC_CHECK_HEADERS([ \ + err.h \ + search.h \ +]) +]) + +AC_DEFUN([OPENAFS_ROKEN_HEADERS],[ +ROKEN_HEADERS= +AS_IF([test "$ac_cv_header_err_h" != "yes" ], + [ROKEN_HEADERS="$ROKEN_HEADERS \$(TOP_INCDIR)/err.h"], + []) +AC_SUBST(ROKEN_HEADERS) ]) diff -Nru openafs-1.8.0~pre4/src/cf/socket.m4 openafs-1.8.0~pre5/src/cf/socket.m4 --- openafs-1.8.0~pre4/src/cf/socket.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/socket.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,30 @@ +AC_DEFUN([OPENAFS_SOCKET_CHECKS],[ +AC_CACHE_CHECK([if struct sockaddr has sa_len field], + [ac_cv_sockaddr_len], + [AC_TRY_COMPILE( [#include +#include ], + [struct sockaddr *a; a->sa_len=0;], + [ac_cv_sockaddr_len=yes], + [ac_cv_sockaddr_len=no]) +]) +AS_IF([test "$ac_cv_sockaddr_len" = "yes"], + [AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, + [define if you struct sockaddr sa_len])]) +]) + +AC_DEFUN([OPENAFS_SOCKOPT_CHECK],[ +AC_CACHE_CHECK([for setsockopt(, SOL_IP, IP_RECVERR)], + [ac_cv_setsockopt_iprecverr], + [AC_TRY_COMPILE( [ +#include +#include +#include ], +[int on=1; +setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], + [ac_cv_setsockopt_iprecverr=yes], + [ac_cv_setsockopt_iprecverr=no])]) + +AS_IF([test "$ac_cv_setsockopt_iprecverr" = "yes"], + [AC_DEFINE([HAVE_SETSOCKOPT_IP_RECVERR], [1], + [define if we can receive socket errors via IP_RECVERR])]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/solaris-ostype.m4 openafs-1.8.0~pre5/src/cf/solaris-ostype.m4 --- openafs-1.8.0~pre4/src/cf/solaris-ostype.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/solaris-ostype.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,9 @@ +AC_DEFUN([OPENAFS_SOLARIS_OSTYPE],[ +SOLARIS_PATH_CC +SOLARIS_CC_TAKES_XVECTOR_NONE +AC_SUBST(SOLARIS_CC_KOPTS) +SOLARIS_UFSVFS_HAS_DQRWLOCK +SOLARIS_FS_HAS_FS_ROLLED +SOLARIS_SOLOOKUP_TAKES_SOCKPARAMS +SOLARIS_HAVE_VN_RENAMEPATH +]) diff -Nru openafs-1.8.0~pre4/src/cf/summary.m4 openafs-1.8.0~pre5/src/cf/summary.m4 --- openafs-1.8.0~pre4/src/cf/summary.m4 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/summary.m4 2018-02-19 14:40:36.000000000 +0000 @@ -51,6 +51,9 @@ AS_IF([test "${summary_doxygen}" = "yes" -a "${HAVE_DOT}" = "yes"], [summary_doxygen_graphs="yes"], [summary_doxygen_graphs="no"]) + AS_IF([test "x$CTFCONVERT" != "x" -a "x$CTFMERGE" != "x"], + [summary_ctf_tools="yes"], + [summary_ctf_tools="no"]) cat < +#endif]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/tivoli.m4 openafs-1.8.0~pre5/src/cf/tivoli.m4 --- openafs-1.8.0~pre4/src/cf/tivoli.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/tivoli.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,46 @@ +AC_DEFUN([OPENAFS_TIVOLI_TESTS],[ +dnl check for tivoli +AC_MSG_CHECKING(for tivoli tsm butc support) +XBSA_CFLAGS="" +if test "$enable_tivoli_tsm" = "yes"; then + XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen + XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen + XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample + XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample + XBSADIR5=/usr/tivoli/tsm/client/api/bin64/sample + XBSADIR6=/opt/tivoli/tsm/client/api/bin64/sample + + if test -r "$XBSADIR3/dsmapifp.h"; then + XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3" + XBSA_XLIBS="-ldl" + AC_MSG_RESULT([yes, $XBSA_CFLAGS]) + elif test -r "$XBSADIR4/dsmapifp.h"; then + XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4" + XBSA_XLIBS="-ldl" + AC_MSG_RESULT([yes, $XBSA_CFLAGS]) + elif test -r "$XBSADIR5/dsmapifp.h"; then + XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR5" + XBSA_XLIBS="-ldl" + AC_MSG_RESULT([yes, $XBSA_CFLAGS]) + elif test -r "$XBSADIR6/dsmapifp.h"; then + XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR6" + XBSA_XLIBS="-ldl" + AC_MSG_RESULT([yes, $XBSA_CFLAGS]) + elif test -r "$XBSADIR1/xbsa.h"; then + XBSA_CFLAGS="-Dxbsa -I$XBSADIR1" + XBSA_XLIBS="" + AC_MSG_RESULT([yes, $XBSA_CFLAGS]) + elif test -r "$XBSADIR2/xbsa.h"; then + XBSA_CFLAGS="-Dxbsa -I$XBSADIR2" + XBSA_XLIBS="" + AC_MSG_RESULT([yes, $XBSA_CFLAGS]) + else + AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files]) + fi +else + AC_MSG_RESULT([no]) +fi +AC_SUBST(XBSA_CFLAGS) +AC_SUBST(XBSA_XLIBS) +XLIBS="$XBSA_XLIBS $XLIBS" +]) diff -Nru openafs-1.8.0~pre4/src/cf/topdirs.m4 openafs-1.8.0~pre5/src/cf/topdirs.m4 --- openafs-1.8.0~pre4/src/cf/topdirs.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/topdirs.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,20 @@ +AC_DEFUN([OPENAFS_TOPDIRS],[ +TOP_SRCDIR="${srcdir}/src" +dnl +dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere +dnl +case $TOP_SRCDIR in + /*) + ;; + *) + TOP_SRCDIR=`cd $TOP_SRCDIR; pwd` + ;; +esac + +TOP_OBJDIR="${SRCDIR_PARENT}" +TOP_INCDIR="${SRCDIR_PARENT}/include" +TOP_LIBDIR="${SRCDIR_PARENT}/lib" +if test "${DEST}x" = "x"; then + DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest" +fi +]) diff -Nru openafs-1.8.0~pre4/src/cf/types.m4 openafs-1.8.0~pre5/src/cf/types.m4 --- openafs-1.8.0~pre4/src/cf/types.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/types.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,56 @@ +AC_DEFUN([OPENAFS_TYPE_CHECKS],[ +LIBS="$save_LIBS" + +openafs_cv_saved_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $XCFLAGS_NOCHECKING" + +AC_TYPE_SIGNAL +OPENAFS_RETSIGTYPE +AC_CHECK_SIZEOF(void *) +AC_CHECK_SIZEOF(unsigned long long) +AC_CHECK_SIZEOF(unsigned long) +AC_CHECK_SIZEOF(unsigned int) +AC_TYPE_INTPTR_T +AC_TYPE_UINTPTR_T +AC_TYPE_SSIZE_T +AC_CHECK_TYPE([sig_atomic_t],[], + [AC_DEFINE([sig_atomic_t], [int], + [Define to int if does not define.])], +[#include +#include ]) +AC_CHECK_TYPE([socklen_t],[], + [AC_DEFINE([socklen_t], [int], + [Define to int if does not define.])], +[#include +#include ]) +AC_CHECK_TYPES(off64_t) +AC_CHECK_TYPES([ssize_t], [], [], [#include ]) +AC_CHECK_TYPES([struct winsize], [], [], [ +#ifdef HAVE_TERMIOS_H +# include +#else +# include +#endif +#include ]) +AC_CHECK_TYPES([sa_family_t, socklen_t, struct sockaddr, + struct sockaddr_storage], + [], [], [ +#include +#include +]) +AC_CHECK_TYPES([sa_family_t], [], [], [ +#include +#include +]) +AC_CHECK_TYPES([struct addrinfo], [], [], [ +#include +#ifdef HAVE_NETDB_H +#include +#endif +]) +AC_CHECK_TYPES([long long], [], [], []) + +AC_SIZEOF_TYPE(long) + +CFLAGS="$openafs_cv_saved_CFLAGS" +]) diff -Nru openafs-1.8.0~pre4/src/cf/uuid.m4 openafs-1.8.0~pre5/src/cf/uuid.m4 --- openafs-1.8.0~pre4/src/cf/uuid.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/uuid.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,6 @@ +AC_DEFUN([OPENAFS_UUID_CHECKS],[ +dnl Check for UUID library +AC_CHECK_HEADERS([uuid/uuid.h]) +AC_CHECK_LIB(uuid, uuid_generate, LIBS_uuid="-luuid") +AC_CHECK_FUNCS([uuid_generate]) +]) diff -Nru openafs-1.8.0~pre4/src/cf/variables.m4 openafs-1.8.0~pre5/src/cf/variables.m4 --- openafs-1.8.0~pre4/src/cf/variables.m4 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/cf/variables.m4 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,26 @@ +AC_DEFUN([OPENAFS_OUTPUT_VARIABLES],[ +AC_SUBST(VFSCK) +AC_SUBST(AFS_SYSNAME) +AC_SUBST(AFS_PARAM_COMMON) +AC_SUBST(ENABLE_KERNEL_MODULE) +AC_SUBST(ENABLE_PTHREADED_UBIK) +AC_SUBST(LIB_AFSDB) +AC_SUBST(LINUX_KERNEL_PATH) +AC_SUBST(LINUX_KERNEL_BUILD) +AC_SUBST(HOST_CPU) +AC_SUBST(BSD_KERNEL_PATH) +AC_SUBST(BSD_KERNEL_BUILD) +AC_SUBST(LINUX_VERSION) +AC_SUBST(MKAFS_OSTYPE) +AC_SUBST(TOP_OBJDIR) +AC_SUBST(TOP_SRCDIR) +AC_SUBST(TOP_INCDIR) +AC_SUBST(TOP_LIBDIR) +AC_SUBST(DEST) +AC_SUBST(DARWIN_INFOFILE) +AC_SUBST(IRIX_BUILD_IP35) +AC_SUBST(HTML_XSL) +AC_SUBST(XSLTPROC) +AC_SUBST(DOCBOOK2PDF) +AC_SUBST(DOCBOOK_STYLESHEETS) +]) diff -Nru openafs-1.8.0~pre4/src/config/afs_sysnames.h openafs-1.8.0~pre5/src/config/afs_sysnames.h --- openafs-1.8.0~pre4/src/config/afs_sysnames.h 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/config/afs_sysnames.h 2018-02-19 14:40:36.000000000 +0000 @@ -231,7 +231,10 @@ #define SYS_NAME_ID_i386_fbsd_101 2151 #define SYS_NAME_ID_i386_fbsd_102 2152 #define SYS_NAME_ID_i386_fbsd_103 2153 +#define SYS_NAME_ID_i386_fbsd_104 2154 #define SYS_NAME_ID_i386_fbsd_110 2140 +#define SYS_NAME_ID_i386_fbsd_111 2141 +#define SYS_NAME_ID_i386_fbsd_120 2160 #define SYS_NAME_ID_ia64_linux2 2200 #define SYS_NAME_ID_ia64_linux22 2201 @@ -341,7 +344,10 @@ #define SYS_NAME_ID_amd64_fbsd_101 3051 #define SYS_NAME_ID_amd64_fbsd_102 3052 #define SYS_NAME_ID_amd64_fbsd_103 3053 +#define SYS_NAME_ID_amd64_fbsd_104 3054 #define SYS_NAME_ID_amd64_fbsd_110 3040 +#define SYS_NAME_ID_amd64_fbsd_111 3041 +#define SYS_NAME_ID_amd64_fbsd_120 3060 #define SYS_NAME_ID_amd64_w2k 3400 diff -Nru openafs-1.8.0~pre4/src/config/Makefile.config.in openafs-1.8.0~pre5/src/config/Makefile.config.in --- openafs-1.8.0~pre4/src/config/Makefile.config.in 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/config/Makefile.config.in 2018-02-19 14:40:36.000000000 +0000 @@ -51,6 +51,8 @@ GENCAT = @GENCAT@ INCLUDE_LIBINTL = @INCLUDE_libintl@ KERN_DBG = @KERN_DBG@ +CTFCONVERT = @CTFCONVERT@ +CTFMERGE = @CTFMERGE@ KERN_OPTMZ = @KERN_OPTMZ@ LD = @LD@ LDFLAGS_roken = @LDFLAGS_roken@ @@ -316,3 +318,33 @@ AFS_LDRULE =$(RUN_LD) $(CC) $(AFS_LDFLAGS) $(AFS_CFLAGS) $(LDFLAGS_$(@)) -o $@ AFS_LDRULE_NOQ =$(RUN_LD_NOQ) $(CC) $(AFS_LDFLAGS) $(AFS_CFLAGS) $(LDFLAGS_$(@)) -o $@ +RUN_CTFCONVERT=@RUN_CTFCONVERT() { \ + CTFLABEL=$$1 ; \ + CTFDBG=$$2 ; \ + shift ; shift ; \ + if test "x$${CTFDBG}" = "x" ; then exit 0; fi; \ + if test "x${CTFCONVERT}" = "x" ; then exit 0; fi; \ + if test "x${CTFMERGE}" = "x" ; then \ + echo "refusing to run ctfconvert; missing ctfmerge"; \ + exit 1; \ + fi; \ + for t in $$@ ; do \ + echo "${CTFCONVERT} -g -l $${CTFLABEL} $$t"; \ + ${CTFCONVERT} -g -l $${CTFLABEL} $$t; \ + done ; \ +} ; RUN_CTFCONVERT + +RUN_CTFMERGE=@RUN_CTFMERGE () { \ + CTFLABEL=$$1 ; \ + CTFDBG=$$2 ; \ + shift ; shift ; \ + if test "x$${CTFDBG}" = "x" ; then exit 0; fi; \ + if test "x${CTFMERGE}" = "x" ; then exit 0; fi; \ + if test "x${CTFCONVERT}" = "x" ; then \ + echo "refusing to run ctfmerge; missing ctfconvert"; \ + exit 1; \ + fi; \ + echo "$(CTFMERGE) -g -l $${CTFLABEL} -o $$@"; \ + $(CTFMERGE) -g -l $${CTFLABEL} -o $$@; \ +} ; RUN_CTFMERGE + diff -Nru openafs-1.8.0~pre4/src/config/NTMakefile.amd64_w2k openafs-1.8.0~pre5/src/config/NTMakefile.amd64_w2k --- openafs-1.8.0~pre4/src/config/NTMakefile.amd64_w2k 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/config/NTMakefile.amd64_w2k 2018-02-19 14:40:36.000000000 +0000 @@ -88,7 +88,7 @@ AFSPRODUCT_VER_MINOR=7 !ENDIF !IF !DEFINED(AFSPRODUCT_VER_PATCH) -AFSPRODUCT_VER_PATCH=9903 +AFSPRODUCT_VER_PATCH=9904 !ENDIF !IF !DEFINED(AFSPRODUCT_VER_BUILD) AFSPRODUCT_VER_BUILD=0 diff -Nru openafs-1.8.0~pre4/src/config/NTMakefile.i386_nt40 openafs-1.8.0~pre5/src/config/NTMakefile.i386_nt40 --- openafs-1.8.0~pre4/src/config/NTMakefile.i386_nt40 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/config/NTMakefile.i386_nt40 2018-02-19 14:40:36.000000000 +0000 @@ -88,7 +88,7 @@ AFSPRODUCT_VER_MINOR=7 !ENDIF !IF !DEFINED(AFSPRODUCT_VER_PATCH) -AFSPRODUCT_VER_PATCH=9903 +AFSPRODUCT_VER_PATCH=9904 !ENDIF !IF !DEFINED(AFSPRODUCT_VER_BUILD) AFSPRODUCT_VER_BUILD=0 diff -Nru openafs-1.8.0~pre4/src/config/NTMakefile.i386_w2k openafs-1.8.0~pre5/src/config/NTMakefile.i386_w2k --- openafs-1.8.0~pre4/src/config/NTMakefile.i386_w2k 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/config/NTMakefile.i386_w2k 2018-02-19 14:40:36.000000000 +0000 @@ -92,7 +92,7 @@ AFSPRODUCT_VER_MINOR=7 !ENDIF !IF !DEFINED(AFSPRODUCT_VER_PATCH) -AFSPRODUCT_VER_PATCH=9903 +AFSPRODUCT_VER_PATCH=9904 !ENDIF !IF !DEFINED(AFSPRODUCT_VER_BUILD) AFSPRODUCT_VER_BUILD=0 diff -Nru openafs-1.8.0~pre4/src/config/param.amd64_fbsd_104.h openafs-1.8.0~pre5/src/config/param.amd64_fbsd_104.h --- openafs-1.8.0~pre4/src/config/param.amd64_fbsd_104.h 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/config/param.amd64_fbsd_104.h 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,94 @@ +#ifndef AFS_PARAM_H +#define AFS_PARAM_H + +/* Machine / Operating system information */ +#define SYS_NAME "amd64_fbsd_104" +#define SYS_NAME_ID SYS_NAME_ID_amd64_fbsd_104 + +#define AFS_64BITPOINTER_ENV 1 + +#ifndef UKERNEL +/* This section for kernel libafs compiles only */ + +#define AFS_64BITUSERPOINTER_ENV 1 + +#define AFS_FBSD50_ENV 1 +#define AFS_FBSD51_ENV 1 +#define AFS_FBSD52_ENV 1 +#define AFS_FBSD53_ENV 1 +#define AFS_FBSD60_ENV 1 +#define AFS_FBSD61_ENV 1 +#define AFS_FBSD62_ENV 1 +#define AFS_FBSD70_ENV 1 +#define AFS_FBSD71_ENV 1 +#define AFS_FBSD72_ENV 1 +#define AFS_FBSD73_ENV 1 +#define AFS_FBSD80_ENV 1 +#define AFS_FBSD81_ENV 1 +#define AFS_FBSD82_ENV 1 +#define AFS_FBSD83_ENV 1 +#define AFS_FBSD84_ENV 1 +#define AFS_FBSD90_ENV 1 +#define AFS_FBSD91_ENV 1 +#define AFS_FBSD92_ENV 1 +#define AFS_FBSD93_ENV 1 +#define AFS_FBSD100_ENV 1 +#define AFS_FBSD101_ENV 1 +#define AFS_FBSD102_ENV 1 +#define AFS_FBSD103_ENV 1 +#define AFS_FBSD104_ENV 1 + +#define AFS_X86_FBSD50_ENV 1 +#define AFS_X86_FBSD60_ENV 1 /* added at 70--ie, some changes should port <-- */ +#define AFS_X86_FBSD62_ENV 1 +#define AFS_X86_FBSD70_ENV 1 +#define AFS_X86_FBSD71_ENV 1 +#define AFS_X86_FBSD72_ENV 1 +#define AFS_X86_FBSD73_ENV 1 +#define AFS_X86_FBSD80_ENV 1 +#define AFS_X86_FBSD81_ENV 1 +#define AFS_X86_FBSD82_ENV 1 +#define AFS_X86_FBSD83_ENV 1 +#define AFS_X86_FBSD84_ENV 1 +#define AFS_X86_FBSD90_ENV 1 +#define AFS_X86_FBSD91_ENV 1 +#define AFS_X86_FBSD92_ENV 1 +#define AFS_X86_FBSD93_ENV 1 +#define AFS_X86_FBSD100_ENV 1 +#define AFS_X86_FBSD101_ENV 1 +#define AFS_X86_FBSD102_ENV 1 +#define AFS_X86_FBSD103_ENV 1 +#define AFS_X86_FBSD104_ENV 1 + +#else /* !defined(UKERNEL) */ + +/* This section for user space compiles only */ + +#define AFS_USR_FBSD50_ENV 1 +#define AFS_USR_FBSD51_ENV 1 +#define AFS_USR_FBSD52_ENV 1 +#define AFS_USR_FBSD53_ENV 1 +#define AFS_USR_FBSD60_ENV 1 +#define AFS_USR_FBSD61_ENV 1 +#define AFS_USR_FBSD70_ENV 1 +#define AFS_USR_FBSD71_ENV 1 +#define AFS_USR_FBSD72_ENV 1 +#define AFS_USR_FBSD73_ENV 1 +#define AFS_USR_FBSD80_ENV 1 +#define AFS_USR_FBSD81_ENV 1 +#define AFS_USR_FBSD82_ENV 1 +#define AFS_USR_FBSD83_ENV 1 +#define AFS_USR_FBSD84_ENV 1 +#define AFS_USR_FBSD90_ENV 1 +#define AFS_USR_FBSD91_ENV 1 +#define AFS_USR_FBSD92_ENV 1 +#define AFS_USR_FBSD93_ENV 1 +#define AFS_USR_FBSD100_ENV 1 +#define AFS_USR_FBSD101_ENV 1 +#define AFS_USR_FBSD102_ENV 1 +#define AFS_USR_FBSD103_ENV 1 +#define AFS_USR_FBSD104_ENV 1 + +#endif /* !defined(UKERNEL) */ + +#endif /* AFS_PARAM_H */ diff -Nru openafs-1.8.0~pre4/src/config/param.amd64_fbsd_111.h openafs-1.8.0~pre5/src/config/param.amd64_fbsd_111.h --- openafs-1.8.0~pre4/src/config/param.amd64_fbsd_111.h 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/config/param.amd64_fbsd_111.h 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,88 @@ +#ifndef AFS_PARAM_H +#define AFS_PARAM_H + +/* Machine / Operating system information */ +#define SYS_NAME "amd64_fbsd_111" +#define SYS_NAME_ID SYS_NAME_ID_amd64_fbsd_111 + +#define AFS_64BITPOINTER_ENV 1 + +#ifndef UKERNEL +/* This section for kernel libafs compiles only */ + +#define AFS_64BITUSERPOINTER_ENV 1 + +#define AFS_FBSD50_ENV 1 +#define AFS_FBSD51_ENV 1 +#define AFS_FBSD52_ENV 1 +#define AFS_FBSD53_ENV 1 +#define AFS_FBSD60_ENV 1 +#define AFS_FBSD61_ENV 1 +#define AFS_FBSD62_ENV 1 +#define AFS_FBSD70_ENV 1 +#define AFS_FBSD71_ENV 1 +#define AFS_FBSD72_ENV 1 +#define AFS_FBSD73_ENV 1 +#define AFS_FBSD80_ENV 1 +#define AFS_FBSD81_ENV 1 +#define AFS_FBSD82_ENV 1 +#define AFS_FBSD83_ENV 1 +#define AFS_FBSD84_ENV 1 +#define AFS_FBSD90_ENV 1 +#define AFS_FBSD91_ENV 1 +#define AFS_FBSD92_ENV 1 +#define AFS_FBSD93_ENV 1 +#define AFS_FBSD100_ENV 1 +#define AFS_FBSD110_ENV 1 +#define AFS_FBSD111_ENV 1 + +#define AFS_X86_FBSD50_ENV 1 +#define AFS_X86_FBSD60_ENV 1 /* added at 70--ie, some changes should port <-- */ +#define AFS_X86_FBSD62_ENV 1 +#define AFS_X86_FBSD70_ENV 1 +#define AFS_X86_FBSD71_ENV 1 +#define AFS_X86_FBSD72_ENV 1 +#define AFS_X86_FBSD73_ENV 1 +#define AFS_X86_FBSD80_ENV 1 +#define AFS_X86_FBSD81_ENV 1 +#define AFS_X86_FBSD82_ENV 1 +#define AFS_X86_FBSD83_ENV 1 +#define AFS_X86_FBSD84_ENV 1 +#define AFS_X86_FBSD90_ENV 1 +#define AFS_X86_FBSD91_ENV 1 +#define AFS_X86_FBSD92_ENV 1 +#define AFS_X86_FBSD93_ENV 1 +#define AFS_X86_FBSD100_ENV 1 +#define AFS_X86_FBSD110_ENV 1 +#define AFS_X86_FBSD111_ENV 1 + +#else /* !defined(UKERNEL) */ + +/* This section for user space compiles only */ + +#define AFS_USR_FBSD50_ENV 1 +#define AFS_USR_FBSD51_ENV 1 +#define AFS_USR_FBSD52_ENV 1 +#define AFS_USR_FBSD53_ENV 1 +#define AFS_USR_FBSD60_ENV 1 +#define AFS_USR_FBSD61_ENV 1 +#define AFS_USR_FBSD70_ENV 1 +#define AFS_USR_FBSD71_ENV 1 +#define AFS_USR_FBSD72_ENV 1 +#define AFS_USR_FBSD73_ENV 1 +#define AFS_USR_FBSD80_ENV 1 +#define AFS_USR_FBSD81_ENV 1 +#define AFS_USR_FBSD82_ENV 1 +#define AFS_USR_FBSD83_ENV 1 +#define AFS_USR_FBSD84_ENV 1 +#define AFS_USR_FBSD90_ENV 1 +#define AFS_USR_FBSD91_ENV 1 +#define AFS_USR_FBSD92_ENV 1 +#define AFS_USR_FBSD93_ENV 1 +#define AFS_USR_FBSD100_ENV 1 +#define AFS_USR_FBSD110_ENV 1 +#define AFS_USR_FBSD111_ENV 1 + +#endif /* !defined(UKERNEL) */ + +#endif /* AFS_PARAM_H */ diff -Nru openafs-1.8.0~pre4/src/config/param.amd64_fbsd_120.h openafs-1.8.0~pre5/src/config/param.amd64_fbsd_120.h --- openafs-1.8.0~pre4/src/config/param.amd64_fbsd_120.h 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/config/param.amd64_fbsd_120.h 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,91 @@ +#ifndef AFS_PARAM_H +#define AFS_PARAM_H + +/* Machine / Operating system information */ +#define SYS_NAME "amd64_fbsd_120" +#define SYS_NAME_ID SYS_NAME_ID_amd64_fbsd_120 + +#define AFS_64BITPOINTER_ENV 1 + +#ifndef UKERNEL +/* This section for kernel libafs compiles only */ + +#define AFS_64BITUSERPOINTER_ENV 1 + +#define AFS_FBSD50_ENV 1 +#define AFS_FBSD51_ENV 1 +#define AFS_FBSD52_ENV 1 +#define AFS_FBSD53_ENV 1 +#define AFS_FBSD60_ENV 1 +#define AFS_FBSD61_ENV 1 +#define AFS_FBSD62_ENV 1 +#define AFS_FBSD70_ENV 1 +#define AFS_FBSD71_ENV 1 +#define AFS_FBSD72_ENV 1 +#define AFS_FBSD73_ENV 1 +#define AFS_FBSD80_ENV 1 +#define AFS_FBSD81_ENV 1 +#define AFS_FBSD82_ENV 1 +#define AFS_FBSD83_ENV 1 +#define AFS_FBSD84_ENV 1 +#define AFS_FBSD90_ENV 1 +#define AFS_FBSD91_ENV 1 +#define AFS_FBSD92_ENV 1 +#define AFS_FBSD93_ENV 1 +#define AFS_FBSD100_ENV 1 +#define AFS_FBSD110_ENV 1 +#define AFS_FBSD111_ENV 1 +#define AFS_FBSD120_ENV 1 + +#define AFS_X86_FBSD50_ENV 1 +#define AFS_X86_FBSD60_ENV 1 /* added at 70--ie, some changes should port <-- */ +#define AFS_X86_FBSD62_ENV 1 +#define AFS_X86_FBSD70_ENV 1 +#define AFS_X86_FBSD71_ENV 1 +#define AFS_X86_FBSD72_ENV 1 +#define AFS_X86_FBSD73_ENV 1 +#define AFS_X86_FBSD80_ENV 1 +#define AFS_X86_FBSD81_ENV 1 +#define AFS_X86_FBSD82_ENV 1 +#define AFS_X86_FBSD83_ENV 1 +#define AFS_X86_FBSD84_ENV 1 +#define AFS_X86_FBSD90_ENV 1 +#define AFS_X86_FBSD91_ENV 1 +#define AFS_X86_FBSD92_ENV 1 +#define AFS_X86_FBSD93_ENV 1 +#define AFS_X86_FBSD100_ENV 1 +#define AFS_X86_FBSD110_ENV 1 +#define AFS_X86_FBSD111_ENV 1 +#define AFS_X86_FBSD120_ENV 1 + +#else /* !defined(UKERNEL) */ + +/* This section for user space compiles only */ + +#define AFS_USR_FBSD50_ENV 1 +#define AFS_USR_FBSD51_ENV 1 +#define AFS_USR_FBSD52_ENV 1 +#define AFS_USR_FBSD53_ENV 1 +#define AFS_USR_FBSD60_ENV 1 +#define AFS_USR_FBSD61_ENV 1 +#define AFS_USR_FBSD70_ENV 1 +#define AFS_USR_FBSD71_ENV 1 +#define AFS_USR_FBSD72_ENV 1 +#define AFS_USR_FBSD73_ENV 1 +#define AFS_USR_FBSD80_ENV 1 +#define AFS_USR_FBSD81_ENV 1 +#define AFS_USR_FBSD82_ENV 1 +#define AFS_USR_FBSD83_ENV 1 +#define AFS_USR_FBSD84_ENV 1 +#define AFS_USR_FBSD90_ENV 1 +#define AFS_USR_FBSD91_ENV 1 +#define AFS_USR_FBSD92_ENV 1 +#define AFS_USR_FBSD93_ENV 1 +#define AFS_USR_FBSD100_ENV 1 +#define AFS_USR_FBSD110_ENV 1 +#define AFS_USR_FBSD111_ENV 1 +#define AFS_USR_FBSD120_ENV 1 + +#endif /* !defined(UKERNEL) */ + +#endif /* AFS_PARAM_H */ diff -Nru openafs-1.8.0~pre4/src/config/param.i386_fbsd_104.h openafs-1.8.0~pre5/src/config/param.i386_fbsd_104.h --- openafs-1.8.0~pre4/src/config/param.i386_fbsd_104.h 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/config/param.i386_fbsd_104.h 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,98 @@ +#ifndef AFS_PARAM_H +#define AFS_PARAM_H + +/* Machine / Operating system information */ +#define SYS_NAME "i386_fbsd_104" +#define SYS_NAME_ID SYS_NAME_ID_i386_fbsd_104 + +#define AFS_FAKEOPEN_ENV 1 /* call afs_FakeOpen as if !AFS_VM_RDWR */ + +#ifndef UKERNEL +/* This section for kernel libafs compiles only */ + +#define AFS_FBSD50_ENV 1 +#define AFS_FBSD51_ENV 1 +#define AFS_FBSD52_ENV 1 +#define AFS_FBSD53_ENV 1 +#define AFS_FBSD60_ENV 1 +#define AFS_FBSD61_ENV 1 +#define AFS_FBSD62_ENV 1 +#define AFS_FBSD70_ENV 1 +#define AFS_FBSD71_ENV 1 +#define AFS_FBSD72_ENV 1 +#define AFS_FBSD73_ENV 1 +#define AFS_FBSD74_ENV 1 +#define AFS_FBSD80_ENV 1 +#define AFS_FBSD81_ENV 1 +#define AFS_FBSD82_ENV 1 +#define AFS_FBSD83_ENV 1 +#define AFS_FBSD84_ENV 1 +#define AFS_FBSD90_ENV 1 +#define AFS_FBSD91_ENV 1 +#define AFS_FBSD92_ENV 1 +#define AFS_FBSD93_ENV 1 +#define AFS_FBSD100_ENV 1 +#define AFS_FBSD101_ENV 1 +#define AFS_FBSD102_ENV 1 +#define AFS_FBSD103_ENV 1 +#define AFS_FBSD104_ENV 1 + +#define AFS_X86_FBSD50_ENV 1 +#define AFS_X86_FBSD51_ENV 1 +#define AFS_X86_FBSD52_ENV 1 +#define AFS_X86_FBSD53_ENV 1 +#define AFS_X86_FBSD60_ENV 1 +#define AFS_X86_FBSD61_ENV 1 +#define AFS_X86_FBSD62_ENV 1 +#define AFS_X86_FBSD70_ENV 1 +#define AFS_X86_FBSD71_ENV 1 +#define AFS_X86_FBSD72_ENV 1 +#define AFS_X86_FBSD74_ENV 1 +#define AFS_X86_FBSD80_ENV 1 +#define AFS_X86_FBSD81_ENV 1 +#define AFS_X86_FBSD82_ENV 1 +#define AFS_X86_FBSD83_ENV 1 +#define AFS_X86_FBSD84_ENV 1 +#define AFS_X86_FBSD90_ENV 1 +#define AFS_X86_FBSD91_ENV 1 +#define AFS_X86_FBSD92_ENV 1 +#define AFS_X86_FBSD93_ENV 1 +#define AFS_X86_FBSD100_ENV 1 +#define AFS_X86_FBSD101_ENV 1 +#define AFS_X86_FBSD102_ENV 1 +#define AFS_X86_FBSD103_ENV 1 +#define AFS_X86_FBSD104_ENV 1 + +#else /* !defined(UKERNEL) */ + +/* This section for user space compiles only */ + +#define AFS_USR_FBSD50_ENV 1 +#define AFS_USR_FBSD51_ENV 1 +#define AFS_USR_FBSD52_ENV 1 +#define AFS_USR_FBSD53_ENV 1 +#define AFS_USR_FBSD60_ENV 1 +#define AFS_USR_FBSD61_ENV 1 +#define AFS_USR_FBSD62_ENV 1 +#define AFS_USR_FBSD70_ENV 1 +#define AFS_USR_FBSD71_ENV 1 +#define AFS_USR_FBSD72_ENV 1 +#define AFS_USR_FBSD73_ENV 1 +#define AFS_USR_FBSD80_ENV 1 +#define AFS_USR_FBSD81_ENV 1 +#define AFS_USR_FBSD82_ENV 1 +#define AFS_USR_FBSD83_ENV 1 +#define AFS_USR_FBSD84_ENV 1 +#define AFS_USR_FBSD90_ENV 1 +#define AFS_USR_FBSD91_ENV 1 +#define AFS_USR_FBSD92_ENV 1 +#define AFS_USR_FBSD93_ENV 1 +#define AFS_USR_FBSD100_ENV 1 +#define AFS_USR_FBSD101_ENV 1 +#define AFS_USR_FBSD102_ENV 1 +#define AFS_USR_FBSD103_ENV 1 +#define AFS_USR_FBSD104_ENV 1 + +#endif /* !defined(UKERNEL) */ + +#endif /* AFS_PARAM_H */ diff -Nru openafs-1.8.0~pre4/src/config/param.i386_fbsd_111.h openafs-1.8.0~pre5/src/config/param.i386_fbsd_111.h --- openafs-1.8.0~pre4/src/config/param.i386_fbsd_111.h 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/config/param.i386_fbsd_111.h 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,95 @@ +#ifndef AFS_PARAM_H +#define AFS_PARAM_H + +/* Machine / Operating system information */ +#define SYS_NAME "i386_fbsd_111" +#define SYS_NAME_ID SYS_NAME_ID_i386_fbsd_111 + +#define AFS_FAKEOPEN_ENV 1 /* call afs_FakeOpen as if !AFS_VM_RDWR */ + +#ifndef UKERNEL +/* This section for kernel libafs compiles only */ + +#define AFS_FBSD50_ENV 1 +#define AFS_FBSD51_ENV 1 +#define AFS_FBSD52_ENV 1 +#define AFS_FBSD53_ENV 1 +#define AFS_FBSD60_ENV 1 +#define AFS_FBSD61_ENV 1 +#define AFS_FBSD62_ENV 1 +#define AFS_FBSD70_ENV 1 +#define AFS_FBSD71_ENV 1 +#define AFS_FBSD72_ENV 1 +#define AFS_FBSD73_ENV 1 +#define AFS_FBSD74_ENV 1 +#define AFS_FBSD80_ENV 1 +#define AFS_FBSD81_ENV 1 +#define AFS_FBSD82_ENV 1 +#define AFS_FBSD83_ENV 1 +#define AFS_FBSD84_ENV 1 +#define AFS_FBSD90_ENV 1 +#define AFS_FBSD91_ENV 1 +#define AFS_FBSD92_ENV 1 +#define AFS_FBSD93_ENV 1 +#define AFS_FBSD100_ENV 1 +#define AFS_FBSD101_ENV 1 +#define AFS_FBSD110_ENV 1 +#define AFS_FBSD111_ENV 1 + +#define AFS_X86_FBSD50_ENV 1 +#define AFS_X86_FBSD51_ENV 1 +#define AFS_X86_FBSD52_ENV 1 +#define AFS_X86_FBSD53_ENV 1 +#define AFS_X86_FBSD60_ENV 1 +#define AFS_X86_FBSD61_ENV 1 +#define AFS_X86_FBSD62_ENV 1 +#define AFS_X86_FBSD70_ENV 1 +#define AFS_X86_FBSD71_ENV 1 +#define AFS_X86_FBSD72_ENV 1 +#define AFS_X86_FBSD74_ENV 1 +#define AFS_X86_FBSD80_ENV 1 +#define AFS_X86_FBSD81_ENV 1 +#define AFS_X86_FBSD82_ENV 1 +#define AFS_X86_FBSD83_ENV 1 +#define AFS_X86_FBSD84_ENV 1 +#define AFS_X86_FBSD90_ENV 1 +#define AFS_X86_FBSD91_ENV 1 +#define AFS_X86_FBSD92_ENV 1 +#define AFS_X86_FBSD93_ENV 1 +#define AFS_X86_FBSD100_ENV 1 +#define AFS_X86_FBSD101_ENV 1 +#define AFS_X86_FBSD110_ENV 1 +#define AFS_X86_FBSD111_ENV 1 + +#else /* !defined(UKERNEL) */ + +/* This section for user space compiles only */ + +#define AFS_USR_FBSD50_ENV 1 +#define AFS_USR_FBSD51_ENV 1 +#define AFS_USR_FBSD52_ENV 1 +#define AFS_USR_FBSD53_ENV 1 +#define AFS_USR_FBSD60_ENV 1 +#define AFS_USR_FBSD61_ENV 1 +#define AFS_USR_FBSD62_ENV 1 +#define AFS_USR_FBSD70_ENV 1 +#define AFS_USR_FBSD71_ENV 1 +#define AFS_USR_FBSD72_ENV 1 +#define AFS_USR_FBSD73_ENV 1 +#define AFS_USR_FBSD80_ENV 1 +#define AFS_USR_FBSD81_ENV 1 +#define AFS_USR_FBSD82_ENV 1 +#define AFS_USR_FBSD83_ENV 1 +#define AFS_USR_FBSD84_ENV 1 +#define AFS_USR_FBSD90_ENV 1 +#define AFS_USR_FBSD91_ENV 1 +#define AFS_USR_FBSD92_ENV 1 +#define AFS_USR_FBSD93_ENV 1 +#define AFS_USR_FBSD100_ENV 1 +#define AFS_USR_FBSD101_ENV 1 +#define AFS_USR_FBSD110_ENV 1 +#define AFS_USR_FBSD111_ENV 1 + +#endif /* !defined(UKERNEL) */ + +#endif /* AFS_PARAM_H */ diff -Nru openafs-1.8.0~pre4/src/config/param.i386_fbsd_120.h openafs-1.8.0~pre5/src/config/param.i386_fbsd_120.h --- openafs-1.8.0~pre4/src/config/param.i386_fbsd_120.h 1970-01-01 00:00:00.000000000 +0000 +++ openafs-1.8.0~pre5/src/config/param.i386_fbsd_120.h 2018-02-19 14:40:36.000000000 +0000 @@ -0,0 +1,98 @@ +#ifndef AFS_PARAM_H +#define AFS_PARAM_H + +/* Machine / Operating system information */ +#define SYS_NAME "i386_fbsd_120" +#define SYS_NAME_ID SYS_NAME_ID_i386_fbsd_120 + +#define AFS_FAKEOPEN_ENV 1 /* call afs_FakeOpen as if !AFS_VM_RDWR */ + +#ifndef UKERNEL +/* This section for kernel libafs compiles only */ + +#define AFS_FBSD50_ENV 1 +#define AFS_FBSD51_ENV 1 +#define AFS_FBSD52_ENV 1 +#define AFS_FBSD53_ENV 1 +#define AFS_FBSD60_ENV 1 +#define AFS_FBSD61_ENV 1 +#define AFS_FBSD62_ENV 1 +#define AFS_FBSD70_ENV 1 +#define AFS_FBSD71_ENV 1 +#define AFS_FBSD72_ENV 1 +#define AFS_FBSD73_ENV 1 +#define AFS_FBSD74_ENV 1 +#define AFS_FBSD80_ENV 1 +#define AFS_FBSD81_ENV 1 +#define AFS_FBSD82_ENV 1 +#define AFS_FBSD83_ENV 1 +#define AFS_FBSD84_ENV 1 +#define AFS_FBSD90_ENV 1 +#define AFS_FBSD91_ENV 1 +#define AFS_FBSD92_ENV 1 +#define AFS_FBSD93_ENV 1 +#define AFS_FBSD100_ENV 1 +#define AFS_FBSD101_ENV 1 +#define AFS_FBSD110_ENV 1 +#define AFS_FBSD111_ENV 1 +#define AFS_FBSD120_ENV 1 + +#define AFS_X86_FBSD50_ENV 1 +#define AFS_X86_FBSD51_ENV 1 +#define AFS_X86_FBSD52_ENV 1 +#define AFS_X86_FBSD53_ENV 1 +#define AFS_X86_FBSD60_ENV 1 +#define AFS_X86_FBSD61_ENV 1 +#define AFS_X86_FBSD62_ENV 1 +#define AFS_X86_FBSD70_ENV 1 +#define AFS_X86_FBSD71_ENV 1 +#define AFS_X86_FBSD72_ENV 1 +#define AFS_X86_FBSD74_ENV 1 +#define AFS_X86_FBSD80_ENV 1 +#define AFS_X86_FBSD81_ENV 1 +#define AFS_X86_FBSD82_ENV 1 +#define AFS_X86_FBSD83_ENV 1 +#define AFS_X86_FBSD84_ENV 1 +#define AFS_X86_FBSD90_ENV 1 +#define AFS_X86_FBSD91_ENV 1 +#define AFS_X86_FBSD92_ENV 1 +#define AFS_X86_FBSD93_ENV 1 +#define AFS_X86_FBSD100_ENV 1 +#define AFS_X86_FBSD101_ENV 1 +#define AFS_X86_FBSD110_ENV 1 +#define AFS_X86_FBSD111_ENV 1 +#define AFS_X86_FBSD120_ENV 1 + +#else /* !defined(UKERNEL) */ + +/* This section for user space compiles only */ + +#define AFS_USR_FBSD50_ENV 1 +#define AFS_USR_FBSD51_ENV 1 +#define AFS_USR_FBSD52_ENV 1 +#define AFS_USR_FBSD53_ENV 1 +#define AFS_USR_FBSD60_ENV 1 +#define AFS_USR_FBSD61_ENV 1 +#define AFS_USR_FBSD62_ENV 1 +#define AFS_USR_FBSD70_ENV 1 +#define AFS_USR_FBSD71_ENV 1 +#define AFS_USR_FBSD72_ENV 1 +#define AFS_USR_FBSD73_ENV 1 +#define AFS_USR_FBSD80_ENV 1 +#define AFS_USR_FBSD81_ENV 1 +#define AFS_USR_FBSD82_ENV 1 +#define AFS_USR_FBSD83_ENV 1 +#define AFS_USR_FBSD84_ENV 1 +#define AFS_USR_FBSD90_ENV 1 +#define AFS_USR_FBSD91_ENV 1 +#define AFS_USR_FBSD92_ENV 1 +#define AFS_USR_FBSD93_ENV 1 +#define AFS_USR_FBSD100_ENV 1 +#define AFS_USR_FBSD101_ENV 1 +#define AFS_USR_FBSD110_ENV 1 +#define AFS_USR_FBSD111_ENV 1 +#define AFS_USR_FBSD120_ENV 1 + +#endif /* !defined(UKERNEL) */ + +#endif /* AFS_PARAM_H */ diff -Nru openafs-1.8.0~pre4/src/crypto/rfc3961/libafsdep openafs-1.8.0~pre5/src/crypto/rfc3961/libafsdep --- openafs-1.8.0~pre4/src/crypto/rfc3961/libafsdep 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/crypto/rfc3961/libafsdep 2018-02-19 14:40:36.000000000 +0000 @@ -1,3 +1,4 @@ krb5_locl.h context.c copy.c +rfc3961.h diff -Nru openafs-1.8.0~pre4/src/fsint/afsaux.c openafs-1.8.0~pre5/src/fsint/afsaux.c --- openafs-1.8.0~pre4/src/fsint/afsaux.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/fsint/afsaux.c 2018-02-19 14:40:36.000000000 +0000 @@ -25,7 +25,6 @@ #include "afsincludes.h" #else #include "h/types.h" -#include "rpc/types.h" #include "rx/xdr.h" #endif #if !defined(AFS_ALPHA_ENV) diff -Nru openafs-1.8.0~pre4/src/libafs/MakefileProto.SOLARIS.in openafs-1.8.0~pre5/src/libafs/MakefileProto.SOLARIS.in --- openafs-1.8.0~pre4/src/libafs/MakefileProto.SOLARIS.in 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/libafs/MakefileProto.SOLARIS.in 2018-02-19 14:40:36.000000000 +0000 @@ -41,6 +41,8 @@ #LORDER = /usr/ccs/bin/lorder #CC = /opt/SUNWspro/bin/cc KDEFS= -D_KERNEL -DSYSV -dn ${ARCH_DEFS} + +DBUG= -Wu,-save_args KDEFS_32 = -xarch=v8 @@ -146,9 +148,13 @@ ${LIBAFS}: $(AFSAOBJS) $(AFSNFSOBJS) $(RM) -f $@ + $(RUN_CTFCONVERT) libafs "${KERN_DBG}" ${AFSAOBJS} ${AFSNFSOBJS} $(LD) $(LDFLAGS) -o $@ $(AFSAOBJS) ${AFSNFSOBJS} + $(RUN_CTFMERGE) libafs "${KERN_DBG}" $@ $(AFSAOBJS) ${AFSNFSOBJS} ${LIBAFSNONFS}: $(AFSAOBJS) $(AFSNONFSOBJS) $(RM) -f $@ + $(RUN_CTFCONVERT) libafs "${KERN_DBG}" ${AFSAOBJS} ${AFSNONFSOBJS} $(LD) $(LDFLAGS) -o $@ $(AFSAOBJS) ${AFSNONFSOBJS} + $(RUN_CTFMERGE) libafs "${KERN_DBG}" $@ $(AFSAOBJS) ${AFSNONFSOBJS} diff -Nru openafs-1.8.0~pre4/src/libuafs/Makefile.common.in openafs-1.8.0~pre5/src/libuafs/Makefile.common.in --- openafs-1.8.0~pre4/src/libuafs/Makefile.common.in 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/libuafs/Makefile.common.in 2018-02-19 14:40:36.000000000 +0000 @@ -344,8 +344,6 @@ $(LT_CCRULE) $(TOP_SRCDIR)/afs/afs_exporter.c afs_nfsclnt.lo: $(TOP_SRC_AFS)/afs_nfsclnt.c $(LT_CCRULE) $(TOP_SRC_AFS)/afs_nfsclnt.c -afs_nfsdisp.lo: $(TOP_SRC_AFS)/afs_nfsdisp.c - $(LT_CCRULE) $(TOP_SRC_AFS)/afs_nfsdisp.c rx.lo: $(TOP_SRC_RX)/rx.c $(LT_CCRULE) $(TOP_SRC_RX)/rx.c rx_clock.lo: $(TOP_SRC_RX)/rx_clock.c diff -Nru openafs-1.8.0~pre4/src/packaging/RedHat/openafs.spec.in openafs-1.8.0~pre5/src/packaging/RedHat/openafs.spec.in --- openafs-1.8.0~pre4/src/packaging/RedHat/openafs.spec.in 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/packaging/RedHat/openafs.spec.in 2018-02-19 14:40:36.000000000 +0000 @@ -116,7 +116,7 @@ Source10: http://www.openafs.org/dl/openafs/%{afsvers}/RELNOTES-%{afsvers} Source11: http://www.openafs.org/dl/openafs/%{afsvers}/ChangeLog -Source20: https://www.central.org/dl/cellservdb/CellServDB.2016-01-01 +Source20: https://www.central.org/dl/cellservdb/CellServDB.2017-03-14 Source30: openafs-kernel-version.sh Source996: openafs-kvers-is.sh @@ -715,11 +715,11 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/klog rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/klog.krb rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/kpwvalid +rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/tokens.krb rm -f $RPM_BUILD_ROOT%{_sbindir}/kpwvalid %endif rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/pts rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/tokens -rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/tokens.krb rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/udebug rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/vos @@ -738,6 +738,11 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libkopenafs.so* %endif rm -f $RPM_BUILD_ROOT%{_sbindir}/afsd.fuse +%if !%{kauth_support} +rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/tokens.krb +rm -f $RPM_BUILD_ROOT%{_bindir}/tokens.krb +rm -f $RPM_BUILD_ROOT%{_bindir}/pagsh.krb +%endif # Relocate afsd to legacy path to match init scripts. mv $RPM_BUILD_ROOT%{_sbindir}/afsd $RPM_BUILD_ROOT%{_prefix}/vice/etc/afsd @@ -786,6 +791,7 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man1/copyauth.* rm -f $RPM_BUILD_ROOT%{_mandir}/man1/dpass.* rm -f $RPM_BUILD_ROOT%{_mandir}/man1/livesys.* +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/afsd.fuse.8 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rmtsysd.* rm -f $RPM_BUILD_ROOT%{_mandir}/man8/aklog_dynamic_auth.* rm -f $RPM_BUILD_ROOT%{_mandir}/man8/kdb.* @@ -797,6 +803,12 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man8/akeyconvert.* rm -f $RPM_BUILD_ROOT%{_mandir}/man8/asetkey.* %endif +%if !%{kauth_support} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/pagsh.krb.1 +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/tokens.krb.1 +rm -f $RPM_BUILD_ROOT%{_mandir}/man5/AuthLog.5 +rm -f $RPM_BUILD_ROOT%{_mandir}/man5/AuthLog.dir.5 +%endif #----------------------------------------------------------------------------- # Install client and server initscripts/systemd files @@ -884,15 +896,15 @@ ln -sf %{_prefix}/bin/kapasswd $RPM_BUILD_ROOT%{_prefix}/afsws/bin/kapasswd ln -sf %{_prefix}/bin/klog $RPM_BUILD_ROOT%{_prefix}/afsws/bin/klog ln -sf %{_prefix}/bin/klog.krb $RPM_BUILD_ROOT%{_prefix}/afsws/bin/klog.krb +ln -sf %{_prefix}/bin/pagsh.krb $RPM_BUILD_ROOT%{_prefix}/afsws/bin/pagsh.krb +ln -sf %{_prefix}/bin/tokens.krb $RPM_BUILD_ROOT%{_prefix}/afsws/bin/tokens.krb %endif ln -sf %{_prefix}/bin/pagsh $RPM_BUILD_ROOT%{_prefix}/afsws/bin/pagsh -ln -sf %{_prefix}/bin/pagsh.krb $RPM_BUILD_ROOT%{_prefix}/afsws/bin/pagsh.krb ln -sf %{_prefix}/bin/pts $RPM_BUILD_ROOT%{_prefix}/afsws/bin/pts ln -sf %{_prefix}/bin/restorevol $RPM_BUILD_ROOT%{_prefix}/afsws/bin/restorevol ln -sf %{_prefix}/bin/scout $RPM_BUILD_ROOT%{_prefix}/afsws/bin/scout ln -sf %{_prefix}/bin/sys $RPM_BUILD_ROOT%{_prefix}/afsws/bin/sys ln -sf %{_prefix}/bin/tokens $RPM_BUILD_ROOT%{_prefix}/afsws/bin/tokens -ln -sf %{_prefix}/bin/tokens.krb $RPM_BUILD_ROOT%{_prefix}/afsws/bin/tokens.krb ln -sf %{_prefix}/bin/translate_et $RPM_BUILD_ROOT%{_prefix}/afsws/bin/translate_et ln -sf %{_prefix}/bin/xstat_cm_test $RPM_BUILD_ROOT%{_prefix}/afsws/bin/xstat_cm_test ln -sf %{_prefix}/bin/xstat_fs_test $RPM_BUILD_ROOT%{_prefix}/afsws/bin/xstat_fs_test @@ -1101,18 +1113,15 @@ %defattr(-,root,root) %config(noreplace) /etc/sysconfig/openafs %doc %{_docdir}/openafs-%{afsvers}/LICENSE -%exclude %{_mandir}/man1/klog.krb5.* %{_bindir}/afsmonitor %{_bindir}/bos %{_bindir}/fs %{_bindir}/pagsh -%{_bindir}/pagsh.krb %{_bindir}/pts %{_bindir}/restorevol %{_bindir}/scout %{_bindir}/sys %{_bindir}/tokens -%{_bindir}/tokens.krb %{_bindir}/translate_et %{_bindir}/xstat_cm_test %{_bindir}/xstat_fs_test @@ -1129,43 +1138,43 @@ %{_sbindir}/vsys %{_libdir}/libafshcrypto.so.* %{_libdir}/librokenafs.so.* -%{_mandir}/man1/afs.* -%{_mandir}/man1/afsmonitor.* -%{_mandir}/man1/fs.* -%{_mandir}/man1/fs_*.* -%{_mandir}/man1/pagsh.* -%{_mandir}/man1/pts.* -%{_mandir}/man1/pts_*.* -%{_mandir}/man1/restorevol.* -%{_mandir}/man1/rxdebug.* -%{_mandir}/man1/scout.* -%{_mandir}/man1/sys.* -%{_mandir}/man1/tokens.* -%{_mandir}/man1/translate_et.* -%{_mandir}/man1/udebug.* -%{_mandir}/man1/unlog.* -%{_mandir}/man1/vos.* -%{_mandir}/man1/vos_*.* -%{_mandir}/man1/xstat_cm_test.* -%{_mandir}/man1/xstat_fs_test.* -%{_mandir}/man5/CellServDB.* -%{_mandir}/man5/ThisCell.* -%{_mandir}/man5/afsmonitor.* -%{_mandir}/man5/butc.* -%{_mandir}/man5/butc_logs.* -%{_mandir}/man5/uss.* -%{_mandir}/man5/uss_bulk.* -%{_mandir}/man8/backup.* -%{_mandir}/man8/backup_*.* -%{_mandir}/man8/bos.* -%{_mandir}/man8/bos_*.* -%{_mandir}/man8/butc.* -%{_mandir}/man8/fms.* -%{_mandir}/man8/fstrace.* -%{_mandir}/man8/fstrace_*.* -%{_mandir}/man8/read_tape.* -%{_mandir}/man8/uss.* -%{_mandir}/man8/uss_*.* +%{_mandir}/man1/afs.1.gz +%{_mandir}/man1/afsmonitor.1.gz +%{_mandir}/man1/fs.1.gz +%{_mandir}/man1/fs_*.1.gz +%{_mandir}/man1/pagsh.1.gz +%{_mandir}/man1/pts.1.gz +%{_mandir}/man1/pts_*.1.gz +%{_mandir}/man1/restorevol.1.gz +%{_mandir}/man1/rxdebug.1.gz +%{_mandir}/man1/scout.1.gz +%{_mandir}/man1/sys.1.gz +%{_mandir}/man1/tokens.1.gz +%{_mandir}/man1/translate_et.1.gz +%{_mandir}/man1/udebug.1.gz +%{_mandir}/man1/unlog.1.gz +%{_mandir}/man1/vos.1.gz +%{_mandir}/man1/vos_*.1.gz +%{_mandir}/man1/xstat_cm_test.1.gz +%{_mandir}/man1/xstat_fs_test.1.gz +%{_mandir}/man5/CellServDB.5.gz +%{_mandir}/man5/ThisCell.5.gz +%{_mandir}/man5/afsmonitor.5.gz +%{_mandir}/man5/butc.5.gz +%{_mandir}/man5/butc_logs.5.gz +%{_mandir}/man5/uss.5.gz +%{_mandir}/man5/uss_bulk.5.gz +%{_mandir}/man8/backup.8.gz +%{_mandir}/man8/backup_*.8.gz +%{_mandir}/man8/bos.8.gz +%{_mandir}/man8/bos_*.8.gz +%{_mandir}/man8/butc.8.gz +%{_mandir}/man8/fms.8.gz +%{_mandir}/man8/fstrace.8.gz +%{_mandir}/man8/fstrace_*.8.gz +%{_mandir}/man8/read_tape.8.gz +%{_mandir}/man8/uss.8.gz +%{_mandir}/man8/uss_*.8.gz %files docs %defattr(-,root,root) @@ -1197,17 +1206,17 @@ %{_unitdir}/openafs-client.service %{_sysconfdir}/sysconfig/modules/openafs-client.modules %endif -%{_mandir}/man1/cmdebug.* -%{_mandir}/man1/up.* -%{_mandir}/man3/AFS::ukernel.* +%{_mandir}/man1/cmdebug.1.gz +%{_mandir}/man1/up.1.gz +%{_mandir}/man3/AFS::ukernel.3.gz %{_mandir}/man5/afs.5.gz %{_mandir}/man5/afs_cache.5.gz %{_mandir}/man5/afs_volume_header.5.gz %{_mandir}/man5/afszcm.cat.5.gz -%{_mandir}/man5/cacheinfo.* -%{_mandir}/man8/afsd.* -%{_mandir}/man8/vsys.* -%{_mandir}/man5/CellAlias.* +%{_mandir}/man5/cacheinfo.5.gz +%{_mandir}/man8/afsd.8.gz +%{_mandir}/man8/vsys.8.gz +%{_mandir}/man5/CellAlias.5.gz %files server %defattr(-,root,root) @@ -1245,57 +1254,56 @@ %else %{_unitdir}/openafs-server.service %endif -%{_mandir}/man5/AuthLog.* -%{_mandir}/man5/BackupLog.* -%{_mandir}/man5/BosConfig.* -%{_mandir}/man5/BosLog.* -%{_mandir}/man5/FORCESALVAGE.* -%{_mandir}/man5/FileLog.* -%{_mandir}/man5/KeyFile.* -%{_mandir}/man5/KeyFileExt.* -%{_mandir}/man5/NetInfo.* -%{_mandir}/man5/NetRestrict.* -%{_mandir}/man5/NoAuth.* -%{_mandir}/man5/PtLog.* -%{_mandir}/man5/SALVAGE.fs.* -%{_mandir}/man5/SalvageLog.* -%{_mandir}/man5/sysid.* -%{_mandir}/man5/UserList.* -%{_mandir}/man5/VLLog.* -%{_mandir}/man5/VolserLog.* -%{_mandir}/man5/bdb.DB0.* -%{_mandir}/man5/fms.log.* -%{_mandir}/man5/krb.conf.* -%{_mandir}/man5/krb.excl.* -%{_mandir}/man5/prdb.DB0.* -%{_mandir}/man5/salvage.lock.* -%{_mandir}/man5/tapeconfig.* -%{_mandir}/man5/vldb.DB0.* -%{_mandir}/man8/bosserver.* -%{_mandir}/man8/buserver.* -%{_mandir}/man8/fileserver.* -%{_mandir}/man8/dafileserver.* -%{_mandir}/man8/dafssync-debug.* -%{_mandir}/man8/dafssync-debug_*.* -%{_mandir}/man8/dasalvager.* -%{_mandir}/man8/davolserver.* -%{_mandir}/man8/fssync-debug.* -%{_mandir}/man8/fssync-debug_*.* -%{_mandir}/man8/prdb_check.* -%{_mandir}/man8/ptserver.* -%{_mandir}/man8/pt_util.* -%{_mandir}/man8/salvager.* -%{_mandir}/man8/salvageserver.* -%{_mandir}/man8/state_analyzer.* -%{_mandir}/man8/upclient.* -%{_mandir}/man8/upserver.* -%{_mandir}/man8/vldb_check.* -%{_mandir}/man8/vldb_convert.* -%{_mandir}/man8/vlserver.* -%{_mandir}/man8/voldump.* -%{_mandir}/man8/volinfo.* -%{_mandir}/man8/volscan.* -%{_mandir}/man8/volserver.* +%{_mandir}/man5/BackupLog.5.gz +%{_mandir}/man5/BosConfig.5.gz +%{_mandir}/man5/BosLog.5.gz +%{_mandir}/man5/FORCESALVAGE.5.gz +%{_mandir}/man5/FileLog.5.gz +%{_mandir}/man5/KeyFile.5.gz +%{_mandir}/man5/KeyFileExt.5.gz +%{_mandir}/man5/NetInfo.5.gz +%{_mandir}/man5/NetRestrict.5.gz +%{_mandir}/man5/NoAuth.5.gz +%{_mandir}/man5/PtLog.5.gz +%{_mandir}/man5/SALVAGE.fs.5.gz +%{_mandir}/man5/SalvageLog.5.gz +%{_mandir}/man5/sysid.5.gz +%{_mandir}/man5/UserList.5.gz +%{_mandir}/man5/VLLog.5.gz +%{_mandir}/man5/VolserLog.5.gz +%{_mandir}/man5/bdb.DB0.5.gz +%{_mandir}/man5/fms.log.5.gz +%{_mandir}/man5/krb.conf.5.gz +%{_mandir}/man5/krb.excl.5.gz +%{_mandir}/man5/prdb.DB0.5.gz +%{_mandir}/man5/salvage.lock.5.gz +%{_mandir}/man5/tapeconfig.5.gz +%{_mandir}/man5/vldb.DB0.5.gz +%{_mandir}/man8/bosserver.8.gz +%{_mandir}/man8/buserver.8.gz +%{_mandir}/man8/fileserver.8.gz +%{_mandir}/man8/dafileserver.8.gz +%{_mandir}/man8/dafssync-debug.8.gz +%{_mandir}/man8/dafssync-debug_*.8.gz +%{_mandir}/man8/dasalvager.8.gz +%{_mandir}/man8/davolserver.8.gz +%{_mandir}/man8/fssync-debug.8.gz +%{_mandir}/man8/fssync-debug_*.8.gz +%{_mandir}/man8/prdb_check.8.gz +%{_mandir}/man8/ptserver.8.gz +%{_mandir}/man8/pt_util.8.gz +%{_mandir}/man8/salvager.8.gz +%{_mandir}/man8/salvageserver.8.gz +%{_mandir}/man8/state_analyzer.8.gz +%{_mandir}/man8/upclient.8.gz +%{_mandir}/man8/upserver.8.gz +%{_mandir}/man8/vldb_check.8.gz +%{_mandir}/man8/vldb_convert.8.gz +%{_mandir}/man8/vlserver.8.gz +%{_mandir}/man8/voldump.8.gz +%{_mandir}/man8/volinfo.8.gz +%{_mandir}/man8/volscan.8.gz +%{_mandir}/man8/volserver.8.gz %if %{build_authlibs} %files authlibs @@ -1344,8 +1352,8 @@ %{_libdir}/librxkad.a %{_libdir}/librxstat.a %{_libdir}/libubik.a -%{_mandir}/man1/rxgen.* -%{_mandir}/man1/afs_compile_et.* +%{_mandir}/man1/rxgen.1.gz +%{_mandir}/man1/afs_compile_et.1.gz %if %{build_dkmspkg} %files -n dkms-%{name} @@ -1362,11 +1370,33 @@ %files compat %defattr(-,root,root) -%{_prefix}/afsws -%exclude %{_prefix}/afsws/bin/kapasswd -%exclude %{_prefix}/afsws/bin/klog -%exclude %{_prefix}/afsws/bin/klog.krb -%exclude %{_prefix}/afsws/etc/kas +%{_prefix}/afsws/bin/afsmonitor +%{_prefix}/afsws/bin/bos +%{_prefix}/afsws/bin/fs +%{_prefix}/afsws/bin/pagsh +%{_prefix}/afsws/bin/pts +%{_prefix}/afsws/bin/restorevol +%{_prefix}/afsws/bin/scout +%{_prefix}/afsws/bin/sys +%{_prefix}/afsws/bin/tokens +%{_prefix}/afsws/bin/translate_et +%{_prefix}/afsws/bin/udebug +%{_prefix}/afsws/bin/unlog +%{_prefix}/afsws/bin/xstat_cm_test +%{_prefix}/afsws/bin/xstat_fs_test +%{_prefix}/afsws/etc/backup +%{_prefix}/afsws/etc/butc +%{_prefix}/afsws/etc/fms +%{_prefix}/afsws/etc/fstrace +%{_prefix}/afsws/etc/read_tape +%{_prefix}/afsws/etc/rxdebug +%{_prefix}/afsws/etc/uss +%{_prefix}/afsws/etc/vos +%{_prefix}/afsws/etc/vsys +%if %{kauth_support} +%{_prefix}/afsws/bin/pagsh.krb +%{_prefix}/afsws/bin/tokens.krb +%endif %if %{kauth_support} %files kauth-client @@ -1380,26 +1410,33 @@ %{pamdir}/pam_afs.so %{_bindir}/kapasswd %{_bindir}/kpwvalid +%{_bindir}/pagsh.krb +%{_bindir}/tokens.krb %{_prefix}/afsws/bin/kapasswd %{_prefix}/afsws/bin/klog %{_prefix}/afsws/bin/klog.krb %{_prefix}/afsws/etc/kas -%{_mandir}/man1/kapasswd.* -%{_mandir}/man1/klog.* -%{_mandir}/man8/kpwvalid.* -%{_mandir}/man8/kas.* -%{_mandir}/man8/kas_*.* +%{_mandir}/man1/kapasswd.1.gz +%{_mandir}/man1/klog.1.gz +%{_mandir}/man1/klog.krb.1.gz +%{_mandir}/man1/pagsh.krb.1.gz +%{_mandir}/man1/tokens.krb.1.gz +%{_mandir}/man8/kpwvalid.8.gz +%{_mandir}/man8/kas.8.gz +%{_mandir}/man8/kas_*.8.gz %files kauth-server %defattr(-,root,root) %{_prefix}/afs/bin/kaserver %{_prefix}/afs/bin/ka-forwarder %{_sbindir}/kadb_check -%{_mandir}/man5/kaserver.DB0.* -%{_mandir}/man5/kaserverauxdb.* -%{_mandir}/man8/kadb_check.* -%{_mandir}/man8/ka-forwarder.* -%{_mandir}/man8/kaserver.* +%{_mandir}/man5/AuthLog.5.gz +%{_mandir}/man5/AuthLog.dir.5.gz +%{_mandir}/man5/kaserver.DB0.5.gz +%{_mandir}/man5/kaserverauxdb.5.gz +%{_mandir}/man8/kadb_check.8.gz +%{_mandir}/man8/ka-forwarder.8.gz +%{_mandir}/man8/kaserver.8.gz %endif %if %{krb5support} @@ -1409,18 +1446,18 @@ %{_bindir}/klog.krb5 %{_sbindir}/akeyconvert %{_sbindir}/asetkey -%{_mandir}/man1/aklog.* -%{_mandir}/man1/klog.krb5.* -%{_mandir}/man8/akeyconvert.* -%{_mandir}/man8/asetkey.* +%{_mandir}/man1/aklog.1.gz +%{_mandir}/man1/klog.krb5.1.gz +%{_mandir}/man8/akeyconvert.8.gz +%{_mandir}/man8/asetkey.8.gz %endif +%endif # build_userspace %if %{build_modules} %files -f kmod-debuginfo.list -n %{name}-kernel-debuginfo %defattr(-,root,root) %endif -%endif ############################################################################## ### ### openafs.spec change log diff -Nru openafs-1.8.0~pre4/src/rx/FBSD/rx_kmutex.h openafs-1.8.0~pre5/src/rx/FBSD/rx_kmutex.h --- openafs-1.8.0~pre4/src/rx/FBSD/rx_kmutex.h 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/rx/FBSD/rx_kmutex.h 2018-02-19 14:40:36.000000000 +0000 @@ -38,23 +38,23 @@ #define MUTEX_INIT(a,b,c,d) \ do { \ (a)->owner = 0; \ - } while(0); + } while(0) #define MUTEX_DESTROY(a) \ do { \ (a)->owner = (struct proc *)-1; \ - } while(0); + } while(0) #define MUTEX_ENTER(a) \ do { \ osi_Assert((a)->owner == 0); \ (a)->owner = curproc; \ - } while(0); + } while(0) #define MUTEX_TRYENTER(a) \ ( osi_Assert((a)->owner == 0), (a)->owner = curproc, 1) #define MUTEX_EXIT(a) \ do { \ osi_Assert((a)->owner == curproc); \ (a)->owner = 0; \ - } while(0); + } while(0) #define MUTEX_ASSERT(a) osi_Assert(((afs_kmutex_t *)(a))->owner == curproc) @@ -64,7 +64,7 @@ #if defined(AFS_FBSD80_ENV) && defined(WITNESS) #define WITCLEAR_MTX(a) \ - do { memset((a), 0, sizeof(struct mtx)); } while(0); + do { memset((a), 0, sizeof(struct mtx)); } while(0) #else #define WITCLEAR_MTX(a) {} #endif @@ -73,17 +73,17 @@ do { \ WITCLEAR_MTX(a); \ mtx_init((a), (b), 0 /* type defaults to name */, MTX_DEF | MTX_DUPOK); \ - } while(0); + } while(0) #define MUTEX_DESTROY(a) \ do { \ mtx_destroy((a)); \ - } while(0); + } while(0) #define MUTEX_ENTER(a) \ do { \ mtx_lock((a)); \ - } while(0); + } while(0) #define MUTEX_TRYENTER(a) \ ( mtx_trylock((a)) ) @@ -91,7 +91,7 @@ #define MUTEX_EXIT(a) \ do { \ mtx_unlock((a)); \ - } while(0); + } while(0) #define MUTEX_ASSERT(a) \ osi_Assert(mtx_owned((a))) @@ -108,17 +108,17 @@ do { \ lockinit(&(a)->lock,PSOCK, "afs rx mutex", 0, 0); \ (a)->owner = 0; \ - } while(0); + } while(0) #define MUTEX_DESTROY(a) \ do { \ (a)->owner = (struct proc *)-1; \ - } while(0); + } while(0) #define MUTEX_ENTER(a) \ do { \ lockmgr(&(a)->lock, LK_EXCLUSIVE, 0, curthread); \ osi_Assert((a)->owner == 0); \ (a)->owner = curthread; \ - } while(0); + } while(0) #define MUTEX_TRYENTER(a) \ ( lockmgr(&(a)->lock, LK_EXCLUSIVE|LK_NOWAIT, 0, curthread) ? 0 : ((a)->owner = curthread, 1) ) #define xMUTEX_TRYENTER(a) \ @@ -128,7 +128,7 @@ osi_Assert((a)->owner == curthread); \ (a)->owner = 0; \ lockmgr(&(a)->lock, LK_RELEASE, 0, curthread); \ - } while(0); + } while(0) #define MUTEX_ASSERT(a) osi_Assert(((afs_kmutex_t *)(a))->owner == curthread) #endif diff -Nru openafs-1.8.0~pre4/src/rx/rx.c openafs-1.8.0~pre5/src/rx/rx.c --- openafs-1.8.0~pre4/src/rx/rx.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/rx/rx.c 2018-02-19 14:40:36.000000000 +0000 @@ -5086,7 +5086,14 @@ if (rx_IsClientConn(call->conn)) force = 1; - if (call->abortCode != call->error) { + /* + * An opcode that has been deprecated or has yet to be implemented is not + * a misbehavior of the client. Do not punish the client by introducing + * delays. + */ + if (call->error == RXGEN_OPCODE) { + force = 1; + } else if (call->abortCode != call->error) { call->abortCode = call->error; call->abortCount = 0; } @@ -5095,7 +5102,8 @@ || call->abortCount < rxi_callAbortThreshhold) { rxi_CancelDelayedAbortEvent(call); error = htonl(call->error); - call->abortCount++; + if (!force) + call->abortCount++; packet = rxi_SendSpecial(call, call->conn, packet, RX_PACKET_TYPE_ABORT, (char *)&error, sizeof(error), istack); diff -Nru openafs-1.8.0~pre4/src/rx/rx_kcommon.h openafs-1.8.0~pre5/src/rx/rx_kcommon.h --- openafs-1.8.0~pre4/src/rx/rx_kcommon.h 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/rx/rx_kcommon.h 2018-02-19 14:40:36.000000000 +0000 @@ -133,9 +133,6 @@ #if !defined(AFS_HPUX110_ENV) && !defined(AFS_LINUX22_ENV) && !defined(AFS_DARWIN_ENV) #include "netinet/in_var.h" #endif /* ! AFS_HPUX110_ENV && ! AFS_LINUX22_ENV */ -#if !defined(AFS_LINUX22_ENV) && !defined(AFS_DUX40_ENV) -#include "rpc/types.h" -#endif #include "afs/afs_osi.h" #include "rx_kmutex.h" #include "afs/lock.h" diff -Nru openafs-1.8.0~pre4/src/rx/xdr_rx.c openafs-1.8.0~pre5/src/rx/xdr_rx.c --- openafs-1.8.0~pre4/src/rx/xdr_rx.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/rx/xdr_rx.c 2018-02-19 14:40:36.000000000 +0000 @@ -21,8 +21,6 @@ # include "h/uio.h" # ifdef AFS_LINUX20_ENV # include "h/socket.h" -# else -# include "rpc/types.h" # endif # ifdef AFS_LINUX22_ENV # ifndef quad_t diff -Nru openafs-1.8.0~pre4/src/rxgen/rpc_main.c openafs-1.8.0~pre5/src/rxgen/rpc_main.c --- openafs-1.8.0~pre4/src/rxgen/rpc_main.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/rxgen/rpc_main.c 2018-02-19 14:40:36.000000000 +0000 @@ -471,9 +471,6 @@ f_print(fout, "#ifndef DST_USA /* XXXXX */\n"); f_print(fout, "#include \"h/time.h\"\n"); f_print(fout, "#endif\n"); - f_print(fout, "#ifndef AFS_LINUX22_ENV\n"); - f_print(fout, "#include \"rpc/types.h\"\n"); - f_print(fout, "#endif /* AFS_LINUX22_ENV */\n"); f_print(fout, "#ifndef XDR_GETLONG /* XXXXX */\n"); f_print(fout, "#ifdef AFS_LINUX22_ENV\n"); f_print(fout, "#ifndef quad_t\n"); @@ -571,7 +568,6 @@ f_print(fout, "#include \"h/stat.h\"\n"); f_print(fout, "#include \"netinet/in.h\"\n"); f_print(fout, "#include \"h/time.h\"\n"); - f_print(fout, "#include \"rpc/types.h\"\n"); f_print(fout, "#include \"rx/xdr.h\"\n"); f_print(fout, "#include \"afs/rxgen_consts.h\"\n"); f_print(fout, "#include \"afs/afs_osi.h\"\n"); @@ -645,7 +641,6 @@ f_print(fout, "#include \"h/stat.h\"\n"); f_print(fout, "#include \"netinet/in.h\"\n"); f_print(fout, "#include \"h/time.h\"\n"); - f_print(fout, "#include \"rpc/types.h\"\n"); f_print(fout, "#include \"rx/xdr.h\"\n"); f_print(fout, "#include \"afs/rxgen_consts.h\"\n"); f_print(fout, "#include \"afs/afs_osi.h\"\n"); diff -Nru openafs-1.8.0~pre4/src/ubik/disk.c openafs-1.8.0~pre5/src/ubik/disk.c --- openafs-1.8.0~pre4/src/ubik/disk.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/ubik/disk.c 2018-02-19 14:40:36.000000000 +0000 @@ -866,6 +866,7 @@ struct ubik_dbase *dbase; afs_int32 code = 0; struct ubik_version oldversion, newversion; + afs_int32 now = FT_ApproxTime(); if (atrans->flags & TRDONE) return (UTWOENDS); @@ -876,6 +877,13 @@ /* On the first write to the database. We update the versions */ if (ubeacon_AmSyncSite() && !(urecovery_state & UBIK_RECLABELDB)) { UBIK_VERSION_LOCK; + if (version_globals.ubik_epochTime < UBIK_MILESTONE + || version_globals.ubik_epochTime > now) { + ubik_print + ("Ubik: New database label %d is out of the valid range (%d - %d)\n", + version_globals.ubik_epochTime, UBIK_MILESTONE, now); + panic("Writing Ubik DB label\n"); + } oldversion = dbase->version; newversion.epoch = version_globals.ubik_epochTime; newversion.counter = 1; diff -Nru openafs-1.8.0~pre4/src/ubik/remote.c openafs-1.8.0~pre5/src/ubik/remote.c --- openafs-1.8.0~pre4/src/ubik/remote.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/ubik/remote.c 2018-02-19 14:40:36.000000000 +0000 @@ -596,6 +596,7 @@ ("Ubik: Synchronize database with server %s failed (error = %d)\n", afs_inet_ntoa_r(otherHost, hoststr), code); } else { + uvote_set_dbVersion(*avers); ubik_print("Ubik: Synchronize database completed\n"); } DBRELE(dbase); diff -Nru openafs-1.8.0~pre4/src/ubik/ubik.c openafs-1.8.0~pre5/src/ubik/ubik.c --- openafs-1.8.0~pre4/src/ubik/ubik.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/ubik/ubik.c 2018-02-19 14:40:36.000000000 +0000 @@ -108,6 +108,7 @@ struct version_data version_globals; #define CStampVersion 1 /* meaning set ts->version */ +#define CCheckSyncAdvertised 2 /* check if the remote knows we are the sync-site */ static_inline struct rx_connection * Quorum_StartIO(struct ubik_trans *atrans, struct ubik_server *as) @@ -181,7 +182,10 @@ if (!(*ts)) return 1; UBIK_BEACON_LOCK; - if (!(*ts)->up || !(*ts)->currentDB) { + if (!(*ts)->up || !(*ts)->currentDB || + /* do not call DISK_Begin until we know that lastYesState is set on the + * remote in question; otherwise, DISK_Begin will fail. */ + ((aflags & CCheckSyncAdvertised) && !((*ts)->beaconSinceDown && (*ts)->lastVote))) { UBIK_BEACON_UNLOCK; (*ts)->currentDB = 0; /* db is no longer current; we just missed an update */ return 0; /* not up-to-date, don't bother. NULL conn will tell caller not to use */ @@ -678,7 +682,7 @@ if (transMode == UBIK_WRITETRANS) { /* next try to start transaction on appropriate number of machines */ - code = ContactQuorum_NoArguments(DISK_Begin, tt, 0); + code = ContactQuorum_NoArguments(DISK_Begin, tt, CCheckSyncAdvertised); if (code) { /* we must abort the operation */ udisk_abort(tt); diff -Nru openafs-1.8.0~pre4/src/ubik/ubik.p.h openafs-1.8.0~pre5/src/ubik/ubik.p.h --- openafs-1.8.0~pre4/src/ubik/ubik.p.h 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/ubik/ubik.p.h 2018-02-19 14:40:36.000000000 +0000 @@ -55,6 +55,11 @@ #include #endif +/*! Sanity check: This macro represents an arbitrary date in the past + * (Tue Jun 20 15:36:43 2017). The database epoch must be greater or + * equal to this value. */ +#define UBIK_MILESTONE 1497987403 + /*! * \brief per-client structure for ubik */ diff -Nru openafs-1.8.0~pre4/src/vol/vutil.c openafs-1.8.0~pre5/src/vol/vutil.c --- openafs-1.8.0~pre4/src/vol/vutil.c 2018-01-03 05:56:08.000000000 +0000 +++ openafs-1.8.0~pre5/src/vol/vutil.c 2018-02-19 14:40:36.000000000 +0000 @@ -857,7 +857,7 @@ if (p != NULL && strcmp(p, VHDREXT) == 0) { char name[VMAXPATHLEN]; - sprintf(name, "%s" OS_DIRSEP "%s", partpath, dentry->d_name); + snprintf(name, VMAXPATHLEN, "%s" OS_DIRSEP "%s", partpath, dentry->d_name); code = _VHandleVolumeHeader(dp, volfunc, name, &diskHeader, -1, rock); if (code < 0) {