1 dnl This file contains the common configuration code which would
2 dnl otherwise be duplicated between configure and configure-libafs.
4 dnl NB: Because this code is a macro, references to positional shell
5 dnl parameters must be done like $[]1 instead of $1
7 AC_DEFUN([OPENAFS_CONFIGURE_COMMON],[
10 static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
12 #undef HAVE_GETHOSTBYNAME
13 #undef HAVE_RES_SEARCH
15 #undef STRUCT_SOCKADDR_HAS_SA_LEN
16 #if !defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
17 # if ENDIANESS_IN_SYS_PARAM_H
19 # include <sys/types.h>
20 # include <sys/param.h>
21 # if BYTE_ORDER == BIG_ENDIAN
22 # define WORDS_BIGENDIAN 1
25 # if defined(AUTOCONF_FOUND_BIGENDIAN)
26 # define WORDS_BIGENDIAN 1
28 # undef WORDS_BIGENDIAN
32 # if defined(AUTOCONF_FOUND_BIGENDIAN)
33 # define WORDS_BIGENDIAN 1
35 # undef WORDS_BIGENDIAN
39 # if defined(__BIG_ENDIAN__)
40 # define WORDS_BIGENDIAN 1
42 # undef WORDS_BIGENDIAN
47 #undef AFS_LARGEFILE_ENV
50 #undef BOS_RESTRICTED_MODE
53 #undef FULL_LISTVOL_SWITCH
54 #undef COMPLETION_H_EXISTS
55 #undef DEFINED_FOR_EACH_PROCESS
56 #undef DEFINED_PREV_TASK
57 #undef EXPORTED_KALLSYMS_ADDRESS
58 #undef EXPORTED_KALLSYMS_SYMBOL
59 #undef EXPORTED_SYS_CALL_TABLE
60 #undef EXPORTED_IA32_SYS_CALL_TABLE
61 #undef EXPORTED_TASKLIST_LOCK
62 #undef INODE_SETATTR_NOT_VOID
63 #undef IRIX_HAS_MEM_FUNCS
64 #undef RECALC_SIGPENDING_TAKES_VOID
65 #undef STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
66 #undef STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
67 #undef STRUCT_FS_HAS_FS_ROLLED
68 #undef STRUCT_INODE_HAS_I_DEVICES
69 #undef STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
70 #undef STRUCT_INODE_HAS_I_ALLOC_SEM
71 #undef STRUCT_INODE_HAS_I_TRUNCATE_SEM
72 #undef STRUCT_TASK_STRUCT_HAS_PARENT
73 #undef STRUCT_TASK_STRUCT_HAS_REAL_PARENT
74 #undef STRUCT_TASK_STRUCT_HAS_SIG
75 #undef STRUCT_TASK_STRUCT_HAS_SIGHAND
76 #undef STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
78 #undef HAVE_STRUCT_BUF
79 #undef HAVE_ARPA_NAMESER_COMPAT_H
80 /* glue for RedHat kernel bug */
81 #undef ENABLE_REDHAT_BUILDSYS
82 #if defined(ENABLE_REDHAT_BUILDSYS) && defined(KERNEL) && defined(REDHAT_FIX)
83 #include "redhat-fix.h"
92 AC_ARG_WITH([afs-sysname],
93 [AS_HELP_STRING([--with-afs-sysname=sys], [use sys for the afs sysname])])
95 dnl General feature options.
96 AC_ARG_ENABLE([afsdb],
97 [AS_HELP_STRING([--disable-afsdb], [disable AFSDB DNS RR support])],
101 [AS_HELP_STRING([--disable-pam], [disable PAM support])],
104 AC_ARG_ENABLE([bos-restricted-mode],
105 [AS_HELP_STRING([--enable-bos-restricted-mode],
106 [enable bosserver restricted mode which disables certain bosserver
109 [enable_bos_restricted_mode="no"])
110 AC_ARG_ENABLE([bos-new-config],
111 [AS_HELP_STRING([--enable-bos-new-config],
112 [enable bosserver pickup of BosConfig.new on restarts])],
114 [enable_bos_new_config="no"])
115 AC_ARG_ENABLE([largefile-fileserver],
116 [AS_HELP_STRING([--disable-largefile-fileserver],
117 [disable large file support in fileserver])],
119 [enable_largefile_fileserver="yes"])
120 AC_ARG_ENABLE([namei-fileserver],
121 [AS_HELP_STRING([--enable-namei-fileserver],
122 [force compilation of namei fileserver in preference to inode
125 [enable_namei_fileserver="default"])
126 AC_ARG_ENABLE([cache-bypass],
127 [AS_HELP_STRING([--enable-cache-bypass],
128 [enable client support for cache bypass])],
130 [enable_cache_bypass="no"])
131 AC_ARG_ENABLE([supergroups],
132 [AS_HELP_STRING([--enable-supergroups],
133 [enable support for nested pts groups])],
135 [enable_supergroups="no"])
136 AC_ARG_ENABLE([fast-restart],
137 [AS_HELP_STRING([--enable-fast-restart],
138 [enable fast startup of file server without salvaging])],
140 [enable_fast_restart="no"])
141 AC_ARG_ENABLE([bitmap-later],
142 [AS_HELP_STRING([--enable-bitmap-later],
143 [enable fast startup of file server by not reading bitmap till
146 [enable_bitmap_later="no"])
147 AC_ARG_ENABLE([demand-attach-fs],
148 [AS_HELP_STRING([--enable-demand-attach-fs],
149 [enable Demand Attach Fileserver (please see documentation)])],
151 [enable_demand_attach_fs="no"])
152 AC_ARG_ENABLE([disconnected],
153 [AS_HELP_STRING([--enable-disconnected],
154 [enable disconnected support in cache manager (experimental)])],
156 [enable_disconnected="no"])
157 AC_ARG_ENABLE([unix-sockets],
158 [AS_HELP_STRING([--enable-unix-sockets],
159 [enable use of unix domain sockets for fssync])],
161 [enable_unix_sockets="yes"])
162 AC_ARG_ENABLE([full-vos-listvol-switch],
163 [AS_HELP_STRING([--disable-full-vos-listvol-switch],
164 [disable vos full listvol switch for formatted output])],
166 [enable_full_vos_listvol_switch="yes"])
167 AC_ARG_ENABLE([icmp-pmtu-discovery],
168 [AS_HELP_STRING([--enable-icmp-pmtu-discovery],
169 [enable path MTU discovery by decoding ICMP unreachable replies])],
171 [enable_icmp_pmtu_discovery="no"])
172 AC_ARG_ENABLE([tivoli-tsm],
173 [AS_HELP_STRING([--enable-tivoli-tsm],
174 [enable use of the Tivoli TSM API libraries for butc support])],
176 [enable_tivoli_tsm="no"])
177 AC_ARG_ENABLE([pthreaded-ubik],
178 [AS_HELP_STRING([--enable-pthreaded-ubik],
179 [enable installation of pthreaded ubik applications (defaults to
182 [enable_pthreaded_ubik="no"])
184 dnl Kernel module build options.
185 AC_ARG_WITH([dux-kernel-headers],
186 [AS_HELP_STRING([--with-dux-kernel-headers=path],
187 [use the kernel headers found at path (optional, defaults to first
188 match in /usr/sys)])])
189 AC_ARG_WITH([linux-kernel-headers],
190 [AS_HELP_STRING([--with-linux-kernel-headers=path],
191 [use the kernel headers found at path (optional, defaults to
192 /usr/src/linux-2.4, then /usr/src/linux)])])
193 AC_ARG_WITH([linux-kernel-build],
194 [AS_HELP_STRING([--with-linux-kernel-build=path],
195 [use the kernel build found at path(optional, defaults to
196 /usr/src/linux-2.4, then /usr/src/linux)])])
197 AC_ARG_WITH([bsd-kernel-headers],
198 [AS_HELP_STRING([--with-bsd-kernel-headers=path],
199 [use the kernel headers found at path (optional, defaults to
201 AC_ARG_WITH([bsd-kernel-build],
202 [AS_HELP_STRING([--with-bsd-kernel-build=path],
203 [use the kernel build found at path (optional, defaults to
204 KSRC/i386/compile/GENERIC)])])
205 AC_ARG_WITH([linux-kernel-packaging],
206 [AS_HELP_STRING([--with-linux-kernel-packaging],
207 [use standard naming conventions to aid Linux kernel build packaging
208 (disables MPS, sets the kernel module name to openafs.ko, and
209 installs kernel modules into the standard Linux location)])],
210 [AC_SUBST(LINUX_KERNEL_PACKAGING, "yes")
211 AC_SUBST(LINUX_LIBAFS_NAME, "openafs")],
212 [AC_SUBST(LINUX_LIBAFS_NAME, "libafs")])
213 AC_ARG_ENABLE([kernel-module],
214 [AS_HELP_STRING([--disable-kernel-module],
215 [disable compilation of the kernel module (defaults to enabled)])],
217 [enable_kernel_module="yes"])
218 AC_ARG_ENABLE([redhat-buildsys],
219 [AS_HELP_STRING([--enable-redhat-buildsys],
220 [enable compilation of the redhat build system kernel (defaults to
223 [enable_redhat_buildsys="no"])
225 dnl Installation locations.
226 AC_ARG_ENABLE([transarc-paths],
227 [AS_HELP_STRING([--enable-transarc-paths],
228 [use Transarc style paths like /usr/afs and /usr/vice])],
230 [enable_transarc_paths="no"])
232 dnl Optimization and debugging flags.
233 AC_ARG_ENABLE([strip-binaries],
234 [AS_HELP_STRING([--disable-strip-binaries],
235 [disable stripping of symbol information from binaries (defaults to
238 [enable_strip_binaries="maybe"])
239 AC_ARG_ENABLE([debug],
240 [AS_HELP_STRING([--enable-debug],
241 [enable compilation of the user space code with debugging information
242 (defaults to disabled)])],
245 AC_ARG_ENABLE([optimize],
246 [AS_HELP_STRING([--disable-optimize],
247 [disable optimization for compilation of the user space code (defaults
250 [enable_optimize="yes"])
251 AC_ARG_ENABLE([warnings],
252 [AS_HELP_STRING([--enable-warnings],
253 [enable compilation warnings when building with gcc (defaults to
256 [enable_warnings="no"])
257 AC_ARG_ENABLE([debug-kernel],
258 [AS_HELP_STRING([--enable-debug-kernel],
259 [enable compilation of the kernel module with debugging information
260 (defaults to disabled)])],
262 [enable_debug_kernel="no"])
263 AC_ARG_ENABLE([optimize-kernel],
264 [AS_HELP_STRING([--disable-optimize-kernel],
265 [disable compilation of the kernel module with optimization (defaults
266 based on platform)])],
268 [enable_optimize_kernel="yes"])
269 AC_ARG_ENABLE([debug-lwp],
270 [AS_HELP_STRING([--enable-debug-lwp],
271 [enable compilation of the LWP code with debugging information
272 (defaults to disabled)])],
274 [enable_debug_lwp="no"])
275 AC_ARG_ENABLE([optimize-lwp],
276 [AS_HELP_STRING([--disable-optimize-lwp],
277 [disable optimization for compilation of the LWP code (defaults to
280 [enable_optimize_lwp="yes"])
281 AC_ARG_ENABLE([debug-pam],
282 [AS_HELP_STRING([--enable-debug-pam],
283 [enable compilation of the PAM code with debugging information
284 (defaults to disabled)])],
286 [enable_debug_pam="no"])
287 AC_ARG_ENABLE([optimize-pam],
288 [AS_HELP_STRING([--disable-optimize-pam],
289 [disable optimization for compilation of the PAM code (defaults to
292 [enable_optimize_pam="yes"])
297 dnl weird ass systems
302 dnl Various compiler setup.
306 COMPILER_HAS_FUNCTION_MACRO
308 dnl Checks for programs.
315 OPENAFS_CHECK_BIGENDIAN
317 AC_MSG_CHECKING(your OS)
323 if test "x$enable_redhat_buildsys" = "xyes"; then
324 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
326 if test "x$enable_kernel_module" = "xyes"; then
327 if test "x$with_linux_kernel_headers" != "x"; then
328 LINUX_KERNEL_PATH="$with_linux_kernel_headers"
330 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
331 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
332 LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
334 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
335 LINUX_KERNEL_PATH="/usr/src/linux-2.4"
337 if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
338 LINUX_KERNEL_PATH="/usr/src/linux"
341 if test "x$with_linux_kernel_build" != "x"; then
342 LINUX_KERNEL_BUILD="$with_linux_kernel_build"
344 LINUX_KERNEL_BUILD=$LINUX_KERNEL_PATH
346 if test -f "$LINUX_KERNEL_BUILD/include/linux/utsrelease.h"; then
347 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
348 LINUX_VERSION="$linux_kvers"
350 if test -f "$LINUX_KERNEL_BUILD/include/linux/version.h"; then
351 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
352 if test "x$linux_kvers" = "x"; then
353 if test -f "$LINUX_KERNEL_BUILD/include/linux/version-up.h"; then
354 linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
355 if test "x$linux_kvers" = "x"; then
357 AC_MSG_ERROR(Linux headers lack version definition [2])
360 LINUX_VERSION="$linux_kvers"
363 AC_MSG_ERROR(Linux headers lack version definition)
367 LINUX_VERSION="$linux_kvers"
370 enable_kernel_module="no"
373 if test ! -f "$LINUX_KERNEL_BUILD/include/linux/autoconf.h"; then
374 enable_kernel_module="no"
376 if test "x$enable_kernel_module" = "xno"; then
377 if test "x$with_linux_kernel_headers" != "x"; then
378 AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
381 AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
384 dnl do we need to determine SUBARCH from autoconf.h
388 if test "x$enable_kernel_module" = "xyes"; then
389 AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
390 if test "x${AFS_SYSKVERS}" = "x"; then
391 AC_MSG_ERROR(Couldn't guess your Linux version [2])
398 SOLARIS_UFSVFS_HAS_DQRWLOCK
399 SOLARIS_PROC_HAS_P_COREFILE
400 SOLARIS_FS_HAS_FS_ROLLED
404 enable_kernel_module=no
410 if test -f "/usr/old/usr/include/ndir.h"; then
411 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
415 if test -d /usr/include/sys/SN/SN1; then
416 IRIX_BUILD_IP35="IP35"
423 AC_MSG_RESULT(rs_aix)
427 AC_MSG_RESULT(alpha_dux)
431 AC_MSG_RESULT(ppc_darwin)
435 AC_MSG_RESULT(x86_darwin)
439 AC_MSG_RESULT(i386_fbsd)
447 AC_MSG_RESULT(i386_obsd)
450 AC_MSG_RESULT($system)
454 if test "x$with_afs_sysname" != "x"; then
455 AFS_SYSNAME="$with_afs_sysname"
457 AC_MSG_CHECKING(your AFS sysname)
463 AFS_SYSNAME="i386_obsd${vM}${vm}"
465 sparc64-*-openbsd?.?)
469 AFS_SYSNAME="sparc64_obsd${vM}${vm}"
475 AFS_SYSNAME="i386_fbsd_${vM}${vm}"
478 AFS_SYSNAME="i386_nbsd15"
481 AFS_SYSNAME="alpha_nbsd15"
483 i?86-*-netbsd*1.6[[M-Z]]*)
484 AFS_SYSNAME="i386_nbsd20"
486 powerpc-*-netbsd*1.6[[M-Z]]*)
487 AFS_SYSNAME="ppc_nbsd20"
490 AFS_SYSNAME="i386_nbsd20"
493 AFS_SYSNAME="amd64_nbsd20"
495 x86_64-*-netbsd*3.[0-8]*)
496 AFS_PARAM_COMMON=param.nbsd30.h
497 AFS_SYSNAME="amd64_nbsd30"
499 x86_64-*-netbsd*4.[0-8]*)
500 AFS_PARAM_COMMON=param.nbsd40.h
501 AFS_SYSNAME="amd64_nbsd40"
503 powerpc-*-netbsd*2.0*)
504 AFS_SYSNAME="ppc_nbsd20"
507 AFS_SYSNAME="i386_nbsd16"
510 AFS_SYSNAME="alpha_nbsd16"
512 powerpc-*-netbsd*1.6*)
513 AFS_SYSNAME="ppc_nbsd16"
516 AFS_SYSNAME="i386_nbsd21"
519 AFS_SYSNAME="i386_nbsd30"
521 i?86-*-netbsd*3.[[0-8]]*)
522 AFS_SYSNAME="i386_nbsd30"
525 AFS_SYSNAME="i386_nbsd30"
527 i?86-*-netbsd*4.[[0-8]]*)
528 AFS_SYSNAME="i386_nbsd40"
531 AFS_SYSNAME="i386_nbsd40"
534 AFS_SYSNAME="hp_ux110"
537 AFS_SYSNAME="hp_ux11i"
540 AFS_SYSNAME="hp_ux1123"
543 AFS_SYSNAME="ia64_hpux1122"
546 AFS_SYSNAME="ia64_hpux1123"
549 AFS_SYSNAME="hp_ux102"
551 powerpc-apple-darwin1.2*)
552 AFS_SYSNAME="ppc_darwin_12"
554 powerpc-apple-darwin1.3*)
555 AFS_SYSNAME="ppc_darwin_13"
557 powerpc-apple-darwin1.4*)
558 AFS_SYSNAME="ppc_darwin_14"
560 powerpc-apple-darwin5.1*)
561 AFS_SYSNAME="ppc_darwin_14"
563 powerpc-apple-darwin5.2*)
564 AFS_SYSNAME="ppc_darwin_14"
566 powerpc-apple-darwin5.3*)
567 AFS_SYSNAME="ppc_darwin_14"
569 powerpc-apple-darwin5.4*)
570 AFS_SYSNAME="ppc_darwin_14"
572 powerpc-apple-darwin5.5*)
573 AFS_SYSNAME="ppc_darwin_14"
575 powerpc-apple-darwin6.0*)
576 AFS_SYSNAME="ppc_darwin_60"
578 powerpc-apple-darwin6.1*)
579 AFS_SYSNAME="ppc_darwin_60"
581 powerpc-apple-darwin6.2*)
582 AFS_SYSNAME="ppc_darwin_60"
584 powerpc-apple-darwin6.3*)
585 AFS_SYSNAME="ppc_darwin_60"
587 powerpc-apple-darwin6.4*)
588 AFS_SYSNAME="ppc_darwin_60"
590 powerpc-apple-darwin6.5*)
591 AFS_SYSNAME="ppc_darwin_60"
593 powerpc-apple-darwin7.0*)
594 AFS_SYSNAME="ppc_darwin_70"
596 powerpc-apple-darwin7.1*)
597 AFS_SYSNAME="ppc_darwin_70"
599 powerpc-apple-darwin7.2*)
600 AFS_SYSNAME="ppc_darwin_70"
602 powerpc-apple-darwin7.3*)
603 AFS_SYSNAME="ppc_darwin_70"
605 powerpc-apple-darwin7.4*)
606 AFS_SYSNAME="ppc_darwin_70"
608 powerpc-apple-darwin7.5*)
609 AFS_SYSNAME="ppc_darwin_70"
611 powerpc-apple-darwin8.0*)
612 AFS_SYSNAME="ppc_darwin_80"
614 powerpc-apple-darwin8.*)
615 AFS_SYSNAME="ppc_darwin_80"
617 i386-apple-darwin8.*)
618 AFS_SYSNAME="x86_darwin_80"
620 powerpc-apple-darwin9.*)
621 AFS_SYSNAME="ppc_darwin_90"
623 i386-apple-darwin9.*)
624 AFS_SYSNAME="x86_darwin_90"
626 sparc-sun-solaris2.5*)
627 AFS_SYSNAME="sun4x_55"
630 sparc-sun-solaris2.6)
631 AFS_SYSNAME="sun4x_56"
633 sparc-sun-solaris2.7)
634 AFS_SYSNAME="sun4x_57"
636 sparc-sun-solaris2.8)
637 AFS_SYSNAME="sun4x_58"
639 sparc-sun-solaris2.9)
640 AFS_SYSNAME="sun4x_59"
642 sparc-sun-solaris2.10)
643 AFS_SYSNAME="sun4x_510"
645 sparc-sun-solaris2.11)
646 AFS_SYSNAME="sun4x_511"
649 AFS_SYSNAME="sun4_413"
653 AFS_SYSNAME="sunx86_57"
656 AFS_SYSNAME="sunx86_58"
659 AFS_SYSNAME="sunx86_59"
662 AFS_SYSNAME="sunx86_510"
665 AFS_SYSNAME="sunx86_511"
668 AFS_SYSNAME="alpha_dux40"
671 AFS_SYSNAME="alpha_dux50"
674 AFS_SYSNAME="alpha_dux51"
680 AFS_SYSNAME="ia64_linuxXX"
683 AFS_SYSNAME="`/bin/arch`_linuxXX"
686 AFS_SYSNAME="ppc64_linuxXX"
689 AFS_SYSNAME="alpha_linux_XX"
692 AFS_SYSNAME="s390_linuxXX"
695 AFS_SYSNAME="s390x_linuxXX"
698 AFS_SYSNAME="`/bin/arch`_linuxXX"
701 AFS_SYSNAME="sparc64_linuxXX"
704 AFS_SYSNAME="i386_linuxXX"
706 parisc-*-linux-gnu|hppa-*-linux-gnu)
707 AFS_SYSNAME="parisc_linuxXX"
711 AFS_SYSNAME="rs_aix42"
715 AFS_SYSNAME="rs_aix42"
719 AFS_SYSNAME="rs_aix51"
723 AFS_SYSNAME="rs_aix52"
727 AFS_SYSNAME="rs_aix53"
731 AFS_SYSNAME="rs_aix61"
735 AFS_SYSNAME="amd64_linuxXX"
739 AC_MSG_ERROR(An AFS sysname is required)
744 *_linux* | *_umlinux*)
745 if test "x${AFS_SYSKVERS}" = "x"; then
746 AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
748 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
749 AFS_SYSNAME="$_AFS_SYSNAME"
750 save_CPPFLAGS="$CPPFLAGS"
751 CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
753 [#include <linux/autoconf.h>],
754 [#ifndef CONFIG_USERMODE
757 ac_cv_linux_is_uml=yes,)
758 if test "${ac_cv_linux_is_uml}" = yes; then
759 _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
761 CPPFLAGS="$save_CPPFLAGS"
762 AFS_SYSNAME="$_AFS_SYSNAME"
765 AC_MSG_RESULT($AFS_SYSNAME)
768 dnl Some hosts have a separate common param file they should include. Figure
769 dnl out if we're on one of them now that we know the sysname.
771 *_nbsd15) AFS_PARAM_COMMON=param.nbsd15.h ;;
772 *_nbsd16) AFS_PARAM_COMMON=param.nbsd16.h ;;
773 *_nbsd20) AFS_PARAM_COMMON=param.nbsd20.h ;;
774 *_nbsd21) AFS_PARAM_COMMON=param.nbsd21.h ;;
775 *_nbsd30) AFS_PARAM_COMMON=param.nbsd30.h ;;
776 *_nbsd40) AFS_PARAM_COMMON=param.nbsd40.h ;;
777 *_linux22) AFS_PARAM_COMMON=param.linux22.h ;;
778 *_linux24) AFS_PARAM_COMMON=param.linux24.h ;;
779 *_linux26) AFS_PARAM_COMMON=param.linux26.h ;;
782 case $AFS_SYSNAME in *_linux* | *_umlinux*)
784 # Add (sub-) architecture-specific paths needed by conftests
787 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
788 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
789 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
790 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
793 if test "x$enable_kernel_module" = "xyes"; then
794 if test "x$enable_debug_kernel" = "xno"; then
795 LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
797 OPENAFS_GCC_SUPPORTS_MARCH
798 AC_SUBST(P5PLUS_KOPTS)
799 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
800 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
801 OPENAFS_GCC_SUPPORTS_NO_COMMON
802 OPENAFS_GCC_SUPPORTS_PIPE
803 AC_SUBST(LINUX_GCC_KOPTS)
804 ifdef([OPENAFS_CONFIGURE_LIBAFS],
805 [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
806 [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
809 LINUX_KBUILD_USES_EXTRA_CFLAGS
810 LINUX_KERNEL_COMPILE_WORKS
811 LINUX_EXPORTS_FIND_TASK_BY_PID
812 LINUX_EXPORTS_PROC_ROOT_FS
813 LINUX_HAVE_CURRENT_KERNEL_TIME
814 LINUX_HAVE_WRITE_BEGIN_AOP
816 LINUX_KMEM_CACHE_INIT
817 LINUX_HAVE_KMEM_CACHE_T
818 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
819 LINUX_D_PATH_TAKES_STRUCT_PATH
821 LINUX_CONFIG_H_EXISTS
822 LINUX_COMPLETION_H_EXISTS
823 LINUX_SEMAPHORE_H_EXISTS
824 LINUX_EXPORTFS_H_EXISTS
825 LINUX_DEFINES_FOR_EACH_PROCESS
826 LINUX_DEFINES_PREV_TASK
827 LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
828 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
829 LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
830 LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
831 LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
832 LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
833 LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
834 LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
835 LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
836 LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
837 LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
838 LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
839 LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
840 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
841 LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
842 LINUX_INODE_SETATTR_RETURN_TYPE
843 LINUX_WRITE_INODE_RETURN_TYPE
844 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
845 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
846 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
847 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
848 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
849 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
850 LINUX_AOP_WRITEBACK_CONTROL
851 LINUX_FS_STRUCT_FOP_HAS_FLOCK
852 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
853 LINUX_FS_STRUCT_FOP_HAS_SPLICE
854 LINUX_KERNEL_LINUX_SYSCALL_H
855 LINUX_KERNEL_LINUX_SEQ_FILE_H
856 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
858 LINUX_KERNEL_SOCK_CREATE
859 LINUX_KERNEL_PAGE_FOLLOW_LINK
860 LINUX_KERNEL_HLIST_UNHASHED
861 LINUX_KEY_TYPE_H_EXISTS
863 LINUX_RECALC_SIGPENDING_ARG_TYPE
864 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
865 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
866 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
867 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
868 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
869 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
870 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
871 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
872 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
873 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
874 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
875 LINUX_EXPORTS_TASKLIST_LOCK
876 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
877 LINUX_STATFS_TAKES_DENTRY
878 LINUX_FREEZER_H_EXISTS
879 LINUX_HAVE_SVC_ADDR_IN
880 if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
881 AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
884 LINUX_LINUX_KEYRING_SUPPORT
885 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
887 LINUX_GENERIC_FILE_AIO_READ
888 LINUX_INIT_WORK_HAS_DATA
889 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
890 LINUX_SYSCTL_TABLE_CHECKING
892 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
893 LINUX_EXPORTS_INIT_MM
894 LINUX_EXPORTS_SYS_CHDIR
895 LINUX_EXPORTS_SYS_CLOSE
896 LINUX_EXPORTS_SYS_OPEN
897 LINUX_EXPORTS_SYS_WAIT4
898 LINUX_EXPORTS_RCU_READ_LOCK
899 if test "x$with_linux_kernel_packaging" = "xno" ; then
904 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
905 AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
906 ac_cv_linux_exports_sys_call_table=no
907 if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
908 ac_cv_linux_exports_ia32_sys_call_table=yes
911 LINUX_EXPORTS_KALLSYMS_ADDRESS
912 LINUX_EXPORTS_KALLSYMS_SYMBOL
913 LINUX_EXPORTS_SYS_CALL_TABLE
914 LINUX_EXPORTS_IA32_SYS_CALL_TABLE
915 if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
916 linux_syscall_method=none
917 if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
918 linux_syscall_method=scan
919 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
920 linux_syscall_method=scan_with_kallsyms_address
923 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
924 linux_syscall_method=kallsyms_symbol
926 if test "x$linux_syscall_method" = "xnone"; then
927 AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
928 linux_syscall_method=scan
932 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
933 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
935 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
936 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
938 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
939 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
941 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
942 AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
944 if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
945 AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
947 if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
948 AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
950 if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
951 AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
953 if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
954 AC_DEFINE(EXPORTED_SYS_CALL_TABLE, 1, [define if your linux kernel exports sys_call_table])
956 if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
957 AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE, 1, [define if your linux kernel exports ia32_sys_call_table])
959 if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
960 AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL, 1, [define if your linux kernel exports kallsyms])
962 if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
963 AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS, 1, [define if your linux kernel exports kallsyms address])
965 if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
966 AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
968 if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
969 AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
971 if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
972 AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
974 if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
975 AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
977 if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
978 AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
980 if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
981 AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
983 if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
984 AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
986 if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
987 AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
989 if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
990 AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
992 if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
993 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
995 if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then
996 AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
998 if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
999 AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
1001 if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then
1002 AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
1004 if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then
1005 AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
1007 if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then
1008 AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
1010 if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then
1011 AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
1013 if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then
1014 AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
1016 if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then
1017 AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
1019 if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
1020 AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
1022 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then
1023 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
1025 if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then
1026 AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
1028 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then
1029 AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
1031 if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
1032 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
1034 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
1035 AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
1037 if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
1038 AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
1040 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
1041 AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
1043 if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
1044 AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
1046 if test "x$ac_linux_syscall" = "xyes" ; then
1047 AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
1049 if test "x$ac_linux_seq_file" = "xyes" ; then
1050 AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
1052 if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then
1053 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
1055 if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then
1056 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
1058 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then
1059 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
1061 if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then
1062 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
1064 if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then
1065 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
1067 if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then
1068 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
1070 if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
1071 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
1073 if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
1074 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
1076 if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then
1077 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
1079 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then
1080 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
1082 if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then
1083 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
1085 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1086 AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1088 if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1089 AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1091 if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1092 AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1094 if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1095 AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1097 if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1098 AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1100 if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1101 AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1103 if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1104 AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1106 if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1107 AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1109 if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1110 AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1112 if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1113 AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1115 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1116 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1118 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1119 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1121 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1122 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1124 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1125 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1127 if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1128 AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1130 if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1131 AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1133 if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1134 AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1136 if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1137 AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1139 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1140 AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1142 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1143 AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1145 if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1146 AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1148 if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1149 AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1151 if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1152 AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1154 if test "$enable_linux_fh" = "yes"; then
1155 AC_DEFINE(LINUX_USE_FH, 1, [define if you want to open cache files by file handle instead of inode numbers])
1157 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1158 AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1160 AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1162 if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1163 AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1169 case $AFS_SYSNAME in
1171 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1172 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1173 dnl the test below fails on darwin, even if the CPPFLAGS below
1174 dnl are added. the headers from Kernel.framework must be used
1175 dnl when KERNEL is defined.
1177 dnl really, such a thing isn't guaranteed to work on any
1178 dnl platform until the kernel cflags from MakefileProto are
1179 dnl known to configure
1180 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1183 AC_MSG_CHECKING(for definition of struct buf)
1184 dnl save_CPPFLAGS="$CPPFLAGS"
1185 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1186 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1187 ac_cv_have_struct_buf=no
1189 [#include <sys/buf.h>],
1191 printf("%d\n", sizeof(x));],
1192 ac_cv_have_struct_buf=yes,)
1195 dnl CPPFLAGS="$save_CPPFLAGS"
1196 AC_MSG_RESULT($ac_cv_have_struct_buf)
1197 if test "$ac_cv_have_struct_buf" = yes; then
1198 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1204 AC_CACHE_VAL(ac_cv_sockaddr_len,
1206 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1207 AC_TRY_COMPILE( [#include <sys/types.h>
1208 #include <sys/socket.h>],
1209 [struct sockaddr *a;
1210 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1211 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1212 if test "$ac_cv_sockaddr_len" = "yes"; then
1213 AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1215 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1216 echo Skipping library tests because they confuse Irix.
1218 AC_CHECK_FUNCS(socket)
1220 if test "$ac_cv_func_socket" = no; then
1221 for lib in socket inet; do
1222 if test "$HAVE_SOCKET" != 1; then
1223 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1228 AC_CHECK_FUNCS(connect)
1230 if test "$ac_cv_func_connect" = no; then
1232 if test "$HAVE_CONNECT" != 1; then
1233 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1238 AC_CHECK_FUNCS(gethostbyname)
1239 if test "$ac_cv_func_gethostbyname" = no; then
1240 for lib in dns nsl resolv; do
1241 if test "$HAVE_GETHOSTBYNAME" != 1; then
1242 AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1247 dnl darwin wants it, aix hates it
1248 AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1252 #include <sys/types.h>
1253 #include <sys/socket.h>
1254 #include <netinet/in.h>
1255 #include <arpa/inet.h>
1256 #include <arpa/nameser.h>
1257 #include <arpa/nameser_compat.h>
1259 ], [static int i; i = 0;],
1261 AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H, 1, [define if arpa/nameser_compat.h exists])],
1265 openafs_save_libs="$LIBS"
1266 AC_MSG_CHECKING([for res_search])
1269 if test "$ac_cv_func_res_search" = no; then
1270 for lib in dns nsl resolv; do
1271 if test "$ac_cv_func_res_search" != yes; then
1274 LIBS="$openafs_save_libs"
1277 if test "$ac_cv_func_res_search" = yes; then
1278 LIB_res_search="-l$lib"
1279 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1280 AC_MSG_RESULT([yes, in lib$lib])
1285 AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1291 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1293 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1294 AC_TRY_COMPILE( [#include <sys/types.h>
1295 #include <sys/socket.h>
1296 #include <netinet/in.h>],
1298 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1299 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1300 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1301 AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1305 if test "x$MKAFS_OSTYPE" = OBSD; then
1306 PTHREAD_LIBS="-pthread"
1308 if test "x$PTHREAD_LIBS" = xerror; then
1309 AC_CHECK_LIB(pthread, pthread_attr_init,
1310 PTHREAD_LIBS="-lpthread")
1312 if test "x$PTHREAD_LIBS" = xerror; then
1313 AC_CHECK_LIB(pthreads, pthread_attr_init,
1314 PTHREAD_LIBS="-lpthreads")
1316 if test "x$PTHREAD_LIBS" = xerror; then
1317 AC_CHECK_LIB(c_r, pthread_attr_init,
1318 PTHREAD_LIBS="-lc_r")
1320 if test "x$PTHREAD_LIBS" = xerror; then
1321 AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1323 if test "x$PTHREAD_LIBS" = xerror; then
1324 # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1325 AC_CHECK_LIB(pthread, pthread_attr_destroy,
1326 PTHREAD_LIBS="-lpthread")
1328 if test "x$PTHREAD_LIBS" = xerror; then
1329 AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1331 AC_SUBST(PTHREAD_LIBS)
1333 HOST_CPU="$host_cpu"
1335 if test "x$with_bsd_kernel_headers" != "x"; then
1336 BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1338 BSD_KERNEL_PATH="/usr/src/sys"
1341 if test "x$with_bsd_kernel_build" != "x"; then
1342 BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1344 case $AFS_SYSNAME in
1346 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1349 BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1355 if test "$enable_supergroups" = "yes"; then
1356 AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1359 if test "$enable_fast_restart" = "yes"; then
1360 AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1363 if test "$enable_bitmap_later" = "yes"; then
1364 AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1367 if test "$enable_demand_attach_fs" = "yes"; then
1368 AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1373 AC_SUBST(DEMAND_ATTACH)
1375 if test "$enable_disconnected" = "yes"; then
1376 AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1379 if test "$enable_unix_sockets" = "yes"; then
1380 AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1381 USE_UNIX_SOCKETS="yes"
1383 USE_UNIX_SOCKETS="no"
1385 AC_SUBST(USE_UNIX_SOCKETS)
1387 if test "$enable_fast_restart" = "yes" &&
1388 test "$enable_demand_attach_fs" = "yes" ; then
1389 AC_MSG_ERROR([The Demand Attach and Fast Restart extensions are mutually exclusive. Demand Attach fileservers automatically salvage volumes in the background, thereby making Fast Restart pointless.])
1393 if test "$enable_full_vos_listvol_switch" = "yes"; then
1394 AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1397 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1398 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1399 AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1403 if test "$enable_bos_restricted_mode" = "yes"; then
1404 AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1407 if test "$enable_bos_new_config" = "yes"; then
1408 AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1411 if test "$enable_largefile_fileserver" = "yes"; then
1412 AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1415 if test "$enable_cache_bypass" = "yes"; then
1416 AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client])
1419 if test "$enable_namei_fileserver" = "yes"; then
1420 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1422 if test "$enable_namei_fileserver" = "default"; then
1425 AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1426 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1429 AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
1430 AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1438 if test "$enable_afsdb" = "yes"; then
1439 LIB_AFSDB="$LIB_res_search"
1440 AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1443 dnl check for tivoli
1444 AC_MSG_CHECKING(for tivoli tsm butc support)
1446 if test "$enable_tivoli_tsm" = "yes"; then
1447 XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1448 XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1449 XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1450 XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1452 if test -r "$XBSADIR3/dsmapifp.h"; then
1453 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1455 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1456 elif test -r "$XBSADIR4/dsmapifp.h"; then
1457 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1459 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1460 elif test -r "$XBSADIR1/xbsa.h"; then
1461 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1463 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1464 elif test -r "$XBSADIR2/xbsa.h"; then
1465 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1467 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1469 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1474 AC_SUBST(XBSA_CFLAGS)
1475 AC_SUBST(XBSA_XLIBS)
1477 dnl checks for header files.
1481 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1482 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1483 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1484 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1485 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1486 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1487 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1489 dnl Don't build PAM on IRIX; the interface doesn't work for us.
1490 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1491 case $AFS_SYSNAME in
1504 if test "$enable_login" = yes; then
1509 AC_SUBST(BUILD_LOGIN)
1511 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1512 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1513 AC_CHECK_FUNCS(setvbuf vsyslog)
1514 AC_FUNC_SETVBUF_REVERSED
1515 AC_CHECK_FUNCS(regcomp regexec regerror)
1516 AC_MSG_CHECKING([for POSIX regex library])
1517 if test "$ac_cv_header_regex_h" = "yes" && \
1518 test "$ac_cv_func_regcomp" = "yes" && \
1519 test "$ac_cv_func_regexec" = "yes" && \
1520 test "$ac_cv_func_regerror" = "yes"; then
1521 AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1528 AC_CHECK_TYPE(ssize_t, int)
1529 AC_CHECK_TYPE([sig_atomic_t], ,
1530 [AC_DEFINE([sig_atomic_t], [int],
1531 [Define to int if <signal.h> does not define.])],
1532 [#include <sys/types.h>
1533 #include <signal.h>])
1534 AC_SIZEOF_TYPE(long)
1536 AC_CHECK_FUNCS(timegm)
1537 AC_CHECK_FUNCS(daemon)
1539 dnl Directory PATH handling
1540 if test "x$enable_transarc_paths" = "xyes" ; then
1541 afsconfdir=${afsconfdir=/usr/afs/etc}
1542 viceetcdir=${viceetcdir=/usr/vice/etc}
1543 afskerneldir=${afskerneldir=${viceetcdir}}
1544 afssrvbindir=${afssrvbindir=/usr/afs/bin}
1545 afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1546 afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1547 afsdbdir=${afsdbdir=/usr/afs/db}
1548 afslogsdir=${afslogsdir=/usr/afs/logs}
1549 afslocaldir=${afslocaldir=/usr/afs/local}
1550 afsbackupdir=${afsbackupdir=/usr/afs/backup}
1551 afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1553 afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1554 viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1555 afskerneldir=${afskerneldir='${libdir}/openafs'}
1556 afssrvbindir=${afssrvbindir='${bindir}'}
1557 afssrvsbindir=${afssrvsbindir='${sbindir}'}
1558 afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1559 afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1560 afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1561 afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1562 afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1563 afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1565 AC_SUBST(afsconfdir)
1566 AC_SUBST(viceetcdir)
1567 AC_SUBST(afskerneldir)
1568 AC_SUBST(afssrvbindir)
1569 AC_SUBST(afssrvsbindir)
1570 AC_SUBST(afssrvlibexecdir)
1572 AC_SUBST(afslogsdir)
1573 AC_SUBST(afslocaldir)
1574 AC_SUBST(afsbackupdir)
1575 AC_SUBST(afsbosconfigdir)
1577 if test "x$enable_kernel_module" = "xyes"; then
1578 ENABLE_KERNEL_MODULE=libafs
1581 if test "x$enable_pthreaded_ubik" = "xyes"; then
1582 ENABLE_PTHREADED_UBIK=yes
1585 AC_SUBST(AFS_SYSNAME)
1586 AC_SUBST(AFS_PARAM_COMMON)
1587 AC_SUBST(ENABLE_KERNEL_MODULE)
1588 AC_SUBST(ENABLE_PTHREADED_UBIK)
1590 AC_SUBST(LINUX_KERNEL_PATH)
1591 AC_SUBST(LINUX_KERNEL_BUILD)
1593 AC_SUBST(BSD_KERNEL_PATH)
1594 AC_SUBST(BSD_KERNEL_BUILD)
1595 AC_SUBST(LINUX_VERSION)
1596 AC_SUBST(MKAFS_OSTYPE)
1597 AC_SUBST(TOP_OBJDIR)
1598 AC_SUBST(TOP_SRCDIR)
1599 AC_SUBST(TOP_INCDIR)
1600 AC_SUBST(TOP_LIBDIR)
1602 AC_SUBST(DARWIN_INFOFILE)
1603 AC_SUBST(IRIX_BUILD_IP35)
1608 TOP_SRCDIR="${srcdir}/src"
1610 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1616 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1620 TOP_OBJDIR="${SRCDIR_PARENT}"
1621 TOP_INCDIR="${SRCDIR_PARENT}/include"
1622 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1623 if test "${DEST}x" = "x"; then
1624 DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1627 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1628 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1629 AC_SUBST(HELPER_SPLINT)
1630 AC_SUBST(HELPER_SPLINTCFG)
1632 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs