X-Git-Url: http://git.samba.org/samba.git/?a=blobdiff_plain;f=source3%2Fconfigure.in;h=179d12d1207d2db66e34298b08e06956b0d20bcf;hb=775d0a78c496af8ddbde9eb0f8c2f6d5dc5bcc81;hp=a11e96b1075a75fb7b2e59d11acf2964874fc560;hpb=d2f6d0ba1e362522438d78374715485daae10919;p=kai%2Fsamba.git diff --git a/source3/configure.in b/source3/configure.in index a11e96b1075..179d12d1207 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -35,7 +35,8 @@ done AC_SUBST(LIBTEVENT_OBJ0) LIBS="${LIBS} ${TEVENT_LIBS}" -SAMBA_CPPFLAGS="-Iinclude/autoconf -Iinclude -I${srcdir-.}/include -I. -I${srcdir-.}" +SAMBA_CPPFLAGS="-Iinclude/autoconf -Iautoconf -Iautoconf/source3" +SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -Iinclude -I${srcdir-.}/include -I. -I${srcdir-.}" SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/../lib/replace" SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TEVENT_CFLAGS}" SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${CCAN_CFLAGS}" @@ -465,14 +466,19 @@ default_shared_modules="$default_shared_modules vfs_scannedonly" default_shared_modules="$default_shared_modules vfs_crossrename" default_shared_modules="$default_shared_modules vfs_linux_xfs_sgid" default_shared_modules="$default_shared_modules vfs_time_audit" +default_shared_modules="$default_shared_modules vfs_media_harmony" default_shared_modules="$default_shared_modules idmap_autorid" +default_shared_modules="$default_shared_modules idmap_tdb2" +default_shared_modules="$default_shared_modules idmap_rid" +default_shared_modules="$default_shared_modules idmap_hash" if test "x$developer" = xyes; then - default_static_modules="$default_static_modules rpc_rpcecho pdb_ads" - default_static_modules="$default_static_modules auth_netlogond" default_shared_modules="$default_shared_modules perfcount_test" fi +if test x"$selftest" = x"yes" -o "x$developer" = xyes; then + default_shared_modules="$default_shared_modules vfs_fake_acls" +fi # # Config CPPFLAG settings for strange OS's that must be set @@ -493,13 +499,6 @@ case "$host_os" in esac ;; -# -# CRAY Unicos has broken const handling - *unicos*) - AC_MSG_RESULT([disabling const]) - CPPFLAGS="$CPPFLAGS -Dconst=" - ;; - # # AIX4.x doesn't even admit to having large # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set. @@ -633,9 +632,9 @@ AC_CHECK_HEADERS([CoreFoundation/CFStringEncodingConverter.h], [], [AC_CHECK_HEA CPPFLAGS="$old_CPPFLAGS" # To link lib/util/charset/charset_macosxfs.c, we need to tell the linker -# about CoreFoundation, at least on os X 10.6 and 10.7 +# about CoreFoundation, at least on os X 10.4..10.7 resp. darwin8..12 case "$host_os" in - *darwin11*|*darwin10*) + *darwin*) LDFLAGS="$LDFLAGS -framework CoreFoundation" ;; esac @@ -834,7 +833,7 @@ fi # nothing until kernel 2.1.44! very dumb. AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[ AC_TRY_RUN([#include -main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}], +main() { setresuid(1,1,1); setresuid(2,2,2); return(errno==EPERM?0:1);}], samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)]) if test x"$samba_cv_have_setresuid" = x"yes"; then AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid]) @@ -845,7 +844,7 @@ fi AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[ AC_TRY_RUN([#include #include -main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}], +main() { errno = 0; setresgid(1,1,1); return(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}], samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)]) if test x"$samba_cv_have_setresgid" = x"yes"; then AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid]) @@ -951,7 +950,7 @@ AC_CHECK_FUNCS(setsid glob strpbrk crypt16 getauthuid) AC_CHECK_FUNCS(sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent) AC_CHECK_FUNCS(initgroups select rdchk getgrnam getgrent pathconf) AC_CHECK_FUNCS(getgrset) -AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf) +AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups syscall sysconf) AC_CHECK_FUNCS(atexit grantpt posix_fallocate) AC_CHECK_FUNCS(fallocate) AC_CHECK_FUNCS(fseeko setluid getpwanam) @@ -997,7 +996,6 @@ AC_CHECK_HEADERS(gpfs_gpl.h) if test x"$ac_cv_header_gpfs_gpl_h" = x"yes"; then AC_DEFINE(HAVE_GPFS,1,[Whether GPFS GPL headers are available]) default_shared_modules="$default_shared_modules vfs_gpfs" - default_shared_modules="$default_shared_modules vfs_gpfs_hsm_notify" fi # Note that all the libunwind symbols in the API are defined to internal @@ -1137,11 +1135,11 @@ main() { int libc_minor = __GLIBC_MINOR__; if (libc_major < 2) - exit(1); + return(1); if ((libc_major == 2) && (libc_minor <= 3)) - exit(1); + return(1); #endif - exit(0); + return(0); } ], [samba_cv_linux_getgrouplist_ok=yes], [samba_cv_linux_getgrouplist_ok=no], @@ -1221,6 +1219,7 @@ fi AC_CHECK_LIB(resolv, dn_expand) AC_CHECK_LIB(resolv, _dn_expand) AC_CHECK_LIB(resolv, __dn_expand) +AC_CHECK_LIB(inet, dn_expand) # # Check for the functions putprpwnam, set_auth_parameters, @@ -1364,7 +1363,6 @@ DSO_EXPORTS="" SONAMEFLAG="-Wl,-h," fi AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block]) - AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly]) ;; *sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4]) BLDSHARED="true" @@ -1372,7 +1370,6 @@ DSO_EXPORTS="" SONAMEFLAG="-Wl,-h," PICFLAG="-KPIC" # Is this correct for SunOS AC_DEFINE(STAT_ST_BLOCKSIZE,512) - AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly]) ;; *netbsd* | *freebsd* | *dragonfly* ) BLDSHARED="true" @@ -1381,7 +1378,6 @@ DSO_EXPORTS="" SONAMEFLAG="-Wl,-soname," PICFLAG="-fPIC -DPIC" AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block]) - AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly]) ;; *openbsd*) BLDSHARED="true" LDSHFLAGS="-shared" @@ -1389,14 +1385,8 @@ DSO_EXPORTS="" SONAMEFLAG="-Wl,-soname," PICFLAG="-fPIC" AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block]) - AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly]) ;; - *irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix]) - case "$host_os" in - *irix6*) AC_DEFINE(IRIX6,1,[Whether the host os is irix6]) - ;; - esac - BLDSHARED="true" + *irix*) BLDSHARED="true" LDSHFLAGS="-Wl,-set_version,sgi1.0 -shared" SONAMEFLAG="-Wl,-soname," if test "${GCC}" = "yes"; then @@ -1475,7 +1465,6 @@ DSO_EXPORTS="" PICFLAG="-fPIC" fi AC_DEFINE(STAT_ST_BLOCKSIZE,512) - AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly]) for flags in "-expect_unresolved '*'" "-Wl,-expect_unresolved,'*'" ; do saved_ldflags="$LDFLAGS" AC_MSG_CHECKING([if $flags works]) @@ -1488,11 +1477,9 @@ DSO_EXPORTS="" test x"$LDSHFLAGS_Z_NODEFS" != x && break done ;; - *sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix]) - AC_DEFINE(STAT_ST_BLOCKSIZE,512) + *sco*) AC_DEFINE(STAT_ST_BLOCKSIZE,512) ;; - *unixware*) AC_DEFINE(UNIXWARE,1,[Whether the host os is unixware]) - BLDSHARED="true" + *unixware*) BLDSHARED="true" LDSHFLAGS="-shared" SONAMEFLAG="-Wl,-soname," PICFLAG="-KPIC" @@ -1911,6 +1898,53 @@ then AC_SUBST(TDBTORTURE) fi +AC_ARG_ENABLE(external_libntdb, + [AS_HELP_STRING([--enable-external-libntdb], + [Enable external ntdb [default=auto]])], + [ enable_external_libntdb=$enableval ], + [ enable_external_libntdb=auto ]) + +if test "x$enable_external_libntdb" != xno +then + PKG_CHECK_MODULES(LIBNTDB, ntdb >= 1.0, + [ enable_external_libntdb=yes ], + [ + if test x$enable_external_libntdb = xyes; then + AC_MSG_ERROR([Unable to find libntdb]) + else + enable_external_libntdb=no + fi + ]) +fi + +AC_SUBST(LIBNTDB_OBJ0) +if test "x$enable_external_libntdb" = xno +then + m4_include(../lib/ntdb/libntdb.m4) + LINK_LIBNTDB=STATIC + LIBNTDBVERSION=`grep ^VERSION ${ntdbdir}/wscript | sed -e "s/'//g" -e 's/.* //'` + SMB_LIBRARY(ntdb, 1, ${LIBNTDBVERSION}) + LIBNTDB_OBJ0="" + LIBNTDB_LIBS="$LIBNTDB_LIBS $NTDB_DEPS" + for obj in ${NTDB_OBJ}; do + LIBNTDB_OBJ0="${LIBNTDB_OBJ0} ${ntdbdir}/${obj}" + done + AC_SUBST(LIBNTDB_OBJ0) + SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${NTDB_CFLAGS}" + SAMBA_CONFIGURE_CPPFLAGS="${SAMBA_CONFIGURE_CPPFLAGS} ${NTDB_CFLAGS}" + + NTDBBACKUP="bin/ntdbbackup" + AC_SUBST(NTDBBACKUP) + NTDBDUMP="bin/ntdbdump" + AC_SUBST(NTDBDUMP) + NTDBRESTORE="bin/ntdbrestore" + AC_SUBST(NTDBRESTORE) + NTDBTOOL="bin/ntdbtool" + AC_SUBST(NTDBTOOL) + NTDBTORTURE="bin/ntdbtorture" + AC_SUBST(NTDBTORTURE) +fi + SMB_LIBRARY(netapi, 0) SMB_LIBRARY(smbclient, 0) SMB_LIBRARY(smbsharemodes, 0) @@ -1920,7 +1954,7 @@ SMB_LIBRARY(smbsharemodes, 0) AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[ AC_TRY_RUN([#include -main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }], +main() { long long x = 1000000; x *= x; return(((x/1000000) == 1000000)? 0: 1); }], samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)]) if test x"$samba_cv_have_longlong" = x"yes"; then AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's]) @@ -1943,7 +1977,7 @@ fi AC_CACHE_CHECK([for 64 bit time_t],samba_cv_SIZEOF_TIME_T,[ AC_TRY_RUN([#include -main() { exit((sizeof(time_t) == 8) ? 0 : 1); }], +main() { return((sizeof(time_t) == 8) ? 0 : 1); }], samba_cv_SIZEOF_TIME_T=yes,samba_cv_SIZEOF_TIME_T=no,samba_cv_SIZEOF_TIME_T=cross)]) if test x"$samba_cv_SIZEOF_TIME_T" = x"yes"; then AC_DEFINE(SIZEOF_TIME_T,8,[The size of the 'time_t' type]) @@ -1962,11 +1996,11 @@ main() { max_time = 67768036191676799ll; tm = gmtime(&max_time); if (tm) { - exit(0); + return(0); } } } - exit(1); + return(1); }], samba_cv_TIME_T_MAX=yes,samba_cv_TIME_T_MAX=no,samba_cv_TIME_T_MAX=cross)]) if test x"$samba_cv_TIME_T_MAX" = x"yes"; then @@ -1985,7 +2019,7 @@ AC_MSG_CHECKING([if large file support can be enabled]) AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[ AC_TRY_RUN([#include #include -main() { exit((sizeof(off_t) == 8) ? 0 : 1); }], +main() { return((sizeof(off_t) == 8) ? 0 : 1); }], samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)]) if test x"$samba_cv_SIZEOF_OFF_T" = x"no"; then AC_MSG_ERROR(["large file support support not available: sizeof(off_t) != 8"]) @@ -1998,7 +2032,7 @@ AC_TRY_RUN([ #endif #include #include -main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }], +main() { return((sizeof(ino_t) == 8) ? 0 : 1); }], samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)]) if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type]) @@ -2011,7 +2045,7 @@ AC_TRY_RUN([ #endif #include #include -main() { exit((sizeof(dev_t) == 8) ? 0 : 1); }], +main() { return((sizeof(dev_t) == 8) ? 0 : 1); }], samba_cv_SIZEOF_DEV_T=yes,samba_cv_SIZEOF_DEV_T=no,samba_cv_SIZEOF_DEV_T=cross)]) if test x"$samba_cv_SIZEOF_DEV_T" = x"yes"; then AC_DEFINE(SIZEOF_DEV_T,8,[The size of the 'dev_t' type]) @@ -2078,7 +2112,7 @@ AC_TRY_RUN([#include #include main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d); if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 && -di->d_name[0] == 0) exit(0); exit(1);} ], +di->d_name[0] == 0) return(0); return(1);} ], samba_cv_HAVE_BROKEN_READDIR_NAME=yes,samba_cv_HAVE_BROKEN_READDIR_NAME=no,samba_cv_HAVE_BROKEN_READDIR_NAME=cross)]) if test x"$samba_cv_HAVE_BROKEN_READDIR_NAME" = x"yes"; then AC_DEFINE(HAVE_BROKEN_READDIR_NAME,1,[Whether readdir() returns the wrong name offset]) @@ -2087,7 +2121,7 @@ fi AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[ AC_TRY_COMPILE([#include #include ], -[struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));], +[struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; return(utime("foo.c",&tbuf));], samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)]) if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available]) @@ -2184,25 +2218,6 @@ if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit]) fi -dnl Look for the IPv6 varient by preference. Many systems have both. -AC_CACHE_CHECK([for ut_addr_v6 in utmp],samba_cv_HAVE_UT_UT_ADDR_V6,[ -AC_TRY_COMPILE([#include -#include ], -[struct utmp ut; ut.ut_addr_v6[0] = 0;], -samba_cv_HAVE_UT_UT_ADDR_V6=yes,samba_cv_HAVE_UT_UT_ADDR_V6=no,samba_cv_HAVE_UT_UT_ADDR_V6=cross)]) -if test x"$samba_cv_HAVE_UT_UT_ADDR_V6" = x"yes"; then - AC_DEFINE(HAVE_UT_UT_ADDR_V6,1,[Whether the utmp struct has a property ut_addr_v6]) -fi - -AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[ -AC_TRY_COMPILE([#include -#include ], -[struct utmp ut; ut.ut_addr = 0;], -samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)]) -if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then - AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr]) -fi - if test x$ac_cv_func_pututline = xyes ; then AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[ AC_TRY_COMPILE([#include @@ -2223,6 +2238,19 @@ if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen]) fi +AC_CACHE_CHECK([whether sizeof ut_line in utmp is ok],samba_cv_HAVE_UX_UT_LINE,[ +AC_TRY_RUN([#include +#include +#include +int main(void) { + if (sizeof(((struct utmp *)NULL)->ut_line) < 15) { + return 1; + } + return 0; +} +], +samba_cv_HAVE_UX_UT_LINE=yes,samba_cv_HAVE_UX_UT_LINE=no,samba_cv_HAVE_UX_UT_LINE=cross)]) + fi # end utmp details @@ -2248,7 +2276,7 @@ AC_TRY_RUN([ #if defined(HAVE_UNISTD_H) #include #endif -main() { char *s = getcwd(NULL,0); if (s) exit(0); exit(1); }], +main() { char *s = getcwd(NULL,0); if (s) return(0); return(1); }], samba_cv_GETCWD_TAKES_NULL=yes,samba_cv_GETCWD_TAKES_NULL=no,samba_cv_GETCWD_TAKES_NULL=cross)]) if test x"$samba_cv_GETCWD_TAKES_NULL" = x"yes"; then AC_DEFINE(GETCWD_TAKES_NULL,1,[Whether the getcwd function takes NULL as an argument]) @@ -2452,7 +2480,7 @@ AC_TRY_RUN([ #define F_NOTIFY 1026 #endif main() { - exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0); + return(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0); } ], samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)]) @@ -2556,7 +2584,7 @@ AC_TRY_RUN([ #define LOCK_READ 64 #endif main() { - exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0); + return(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0); } ], samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)]) @@ -2596,11 +2624,11 @@ main() { cap_t cap; cap_value_t vals[1]; if (!(cap = cap_get_proc())) - exit(1); + return(1); vals[0] = CAP_CHOWN; cap_set_flag(cap, CAP_INHERITABLE, 1, vals, CAP_CLEAR); cap_set_proc(cap); - exit(0); + return(0); }], samba_cv_HAVE_POSIX_CAPABILITIES=yes, samba_cv_HAVE_POSIX_CAPABILITIES=no, @@ -2717,12 +2745,85 @@ AC_CHECK_FUNCS(getpagesize) # look for a method of setting the effective uid seteuid=no; +################################################ +# Start by checking for 32-bit system call definitions on Linux. + +case "$host_os" in +*linux*) +AC_CACHE_CHECK([for Linux 32-bit system calls],samba_cv_USE_LINUX_32BIT_SYSCALLS,[ +AC_TRY_COMPILE([ +#if defined(HAVE_UNISTD_H) +#include +#endif +#include +#include +#include +#include + +#ifdef HAVE_SYS_PRIV_H +#include +#endif +#ifdef HAVE_SYS_ID_H +#include +#endif + +#if defined(HAVE_SYSCALL_H) +#include +#endif + +#if defined(HAVE_SYS_SYSCALL_H) +#include +#endif +], +[ +syscall(SYS_setresuid32, -1, -1, -1); +syscall(SYS_setresgid32, -1, -1, -1); +syscall(SYS_setreuid32, -1, -1); +syscall(SYS_setregid32, -1, -1); +syscall(SYS_setuid32, -1); +syscall(SYS_setgid32, -1); +syscall(SYS_setgroups32, 0, NULL); +], samba_cv_USE_LINUX_32BIT_SYSCALLS=yes,samba_cv_USE_LINUX_32BIT_SYSCALLS=no,samba_cv_USE_LINUX_32BIT_SYSCALLS=cross)]) + +if test x"$samba_cv_USE_LINUX_32BIT_SYSCALLS" = x"yes"; then + AC_DEFINE(USE_LINUX_32BIT_SYSCALLS,1,[Use Linux 32-bit system calls]) + AC_CACHE_CHECK([for Linux thread-specific credentials with 32-bit system calls],samba_cv_USE_LINUX_THREAD_CREDENTIALS,[ + AC_TRY_RUN([ +#define AUTOCONF_TEST 1 +#define USE_LINUX_THREAD_CREDENTIALS 1 +#define USE_LINUX_32BIT_SYSCALLS 1 +#include "${srcdir-.}/../lib/util/setid.c" +#include "${srcdir-.}/lib/util_sec.c"], + samba_cv_USE_LINUX_THREAD_CREDENTIALS=yes,samba_cv_USE_LINUX_THREAD_CREDENTIALS=no,samba_cv_USE_LINUX_THREAD_CREDENTIALS=cross)]) +if test x"$samba_cv_USE_LINUX_THREAD_CREDENTIALS" = x"yes"; then + seteuid=yes; + AC_DEFINE(USE_LINUX_THREAD_CREDENTIALS,1,[Whether we can use Linux thread-specific credentials with 32-bit system calls]) +fi +fi + +if test $seteuid = no; then +AC_CACHE_CHECK([for Linux thread-specific credentials],samba_cv_USE_LINUX_THREAD_CREDENTIALS,[ +AC_TRY_RUN([ +#define AUTOCONF_TEST 1 +#define USE_LINUX_THREAD_CREDENTIALS 1 +#include "${srcdir-.}/../lib/util/setid.c" +#include "${srcdir-.}/lib/util_sec.c"], + samba_cv_USE_LINUX_THREAD_CREDENTIALS=yes,samba_cv_USE_LINUX_THREAD_CREDENTIALS=no,samba_cv_USE_LINUX_THREAD_CREDENTIALS=cross)]) +if test x"$samba_cv_USE_LINUX_THREAD_CREDENTIALS" = x"yes"; then + seteuid=yes;AC_DEFINE(USE_LINUX_THREAD_CREDENTIALS,1,[Whether we can use Linux thread-specific credentials]) +fi +fi + +;; +esac + if test $seteuid = no; then AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[ AC_TRY_RUN([ #define AUTOCONF_TEST 1 #define USE_SETREUID 1 #include "confdefs.h" +#include "${srcdir-.}/../lib/util/setid.c" #include "${srcdir-.}/lib/util_sec.c"], samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)]) if test x"$samba_cv_USE_SETREUID" = x"yes"; then @@ -2738,6 +2839,7 @@ AC_TRY_RUN([ #define AUTOCONF_TEST 1 #define USE_SETRESUID 1 #include "confdefs.h" +#include "${srcdir-.}/../lib/util/setid.c" #include "${srcdir-.}/lib/util_sec.c"], samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)]) if test x"$samba_cv_USE_SETRESUID" = x"yes"; then @@ -2751,6 +2853,7 @@ AC_TRY_RUN([ #define AUTOCONF_TEST 1 #define USE_SETEUID 1 #include "confdefs.h" +#include "${srcdir-.}/../lib/util/setid.c" #include "${srcdir-.}/lib/util_sec.c"], samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)]) if test x"$samba_cv_USE_SETEUID" = x"yes"; then @@ -2764,6 +2867,7 @@ AC_TRY_RUN([ #define AUTOCONF_TEST 1 #define USE_SETUIDX 1 #include "confdefs.h" +#include "${srcdir-.}/../lib/util/setid.c" #include "${srcdir-.}/lib/util_sec.c"], samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)]) if test x"$samba_cv_USE_SETUIDX" = x"yes"; then @@ -2800,13 +2904,13 @@ AC_TRY_COMPILE([ #define _XOPEN_SOURCE 600 #include #if defined(__GLIBC__) && ((__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 4)) - probably broken posix_fallocate + #error probably broken posix_fallocate #endif ], [ ], samba_cv_HAVE_BROKEN_POSIX_FALLOCATE=no,samba_cv_HAVE_BROKEN_POSIX_FALLOCATE=yes)]) if test x"$samba_cv_HAVE_BROKEN_POSIX_FALLOCATE" = xyes; then - AC_DEFINE(HAVE_BROKEN_POSIX_FALLOCATE,, Whether we have a broken posix_fallocate) + AC_DEFINE(HAVE_BROKEN_POSIX_FALLOCATE, 1, Whether we have a broken posix_fallocate) fi @@ -2828,7 +2932,7 @@ AC_TRY_RUN([ #include #include #include -main() { exit((sizeof(blkcnt_t) == 4) ? 0 : 1); }], +main() { return((sizeof(blkcnt_t) == 4) ? 0 : 1); }], samba_cv_SIZEOF_BLKCNT_T_4=yes,samba_cv_SIZEOF_BLKCNT_T_4=no,samba_cv_SIZEOF_BLKCNT_T_4=cross)]) if test x"$samba_cv_SIZEOF_BLKCNT_T_4" = x"yes"; then AC_DEFINE(SIZEOF_BLKCNT_T_4,1,[The size of the 'blkcnt_t' type]) @@ -2842,7 +2946,7 @@ AC_TRY_RUN([ #include #include #include -main() { exit((sizeof(blkcnt_t) == 8) ? 0 : 1); }], +main() { return((sizeof(blkcnt_t) == 8) ? 0 : 1); }], samba_cv_SIZEOF_BLKCNT_T_8=yes,samba_cv_SIZEOF_BLKCNT_T_8=no,samba_cv_SIZEOF_BLKCNT_T_8=cross)]) if test x"$samba_cv_SIZEOF_BLKCNT_T_8" = x"yes"; then AC_DEFINE(SIZEOF_BLKCNT_T_8,1,[The size of the 'blkcnt_t' type]) @@ -2902,7 +3006,7 @@ main() { char *newpath; signal(SIGSEGV, exit_on_core); newpath = realpath("/tmp", NULL); - exit((newpath != NULL) ? 0 : 1); + return((newpath != NULL) ? 0 : 1); } ], samba_cv_REALPATH_TAKES_NULL=yes,samba_cv_REALPATH_TAKES_NULL=no,samba_cv_REALPATH_TAKES_NULL=cross)]) @@ -4395,10 +4499,6 @@ AC_ARG_WITH(syslog-facility, # check for experimental disk-quotas support samba_cv_WITH_QUOTAS=auto -samba_cv_TRY_QUOTAS=no -samba_cv_RUN_QUOTA_TESTS=auto -samba_cv_WITH_SYS_QUOTAS=auto -samba_cv_TRY_SYS_QUOTAS=auto samba_cv_SYSQUOTA_FOUND=no AC_MSG_CHECKING(whether to try disk-quotas support) @@ -4408,90 +4508,34 @@ AC_ARG_WITH(quotas, yes) AC_MSG_RESULT(yes) samba_cv_WITH_QUOTAS=yes - samba_cv_TRY_QUOTAS=yes - samba_cv_RUN_QUOTA_TESTS=yes - #set sys quotas to auto in this case - samba_cv_TRY_SYS_QUOTAS=auto ;; auto) AC_MSG_RESULT(auto) samba_cv_WITH_QUOTAS=auto - samba_cv_TRY_QUOTAS=auto - samba_cv_RUN_QUOTA_TESTS=auto - #set sys quotas to auto in this case - samba_cv_TRY_SYS_QUOTAS=auto ;; no) AC_MSG_RESULT(no) samba_cv_WITH_QUOTAS=no - samba_cv_TRY_QUOTAS=no - samba_cv_RUN_QUOTA_TESTS=no - ;; - *) - AC_MSG_RESULT(${samba_cv_TRY_QUOTAS}) - ;; - esac ], - AC_MSG_RESULT(${samba_cv_TRY_QUOTAS}) -) - -AC_MSG_CHECKING(whether to try the new lib/sysquotas.c interface) -AC_ARG_WITH(sys-quotas, -[AS_HELP_STRING([--with-sys-quotas], [Include lib/sysquotas.c support (default=auto)])], -[ case "$withval" in - yes) - AC_MSG_RESULT(yes) - samba_cv_WITH_SYS_QUOTAS=yes - samba_cv_TRY_SYS_QUOTAS=yes - samba_cv_RUN_QUOTA_TESTS=yes - ;; - auto) - AC_MSG_RESULT(auto) - samba_cv_WITH_SYS_QUOTAS=auto - samba_cv_TRY_SYS_QUOTAS=auto - samba_cv_RUN_QUOTA_TESTS=auto - ;; - no) - AC_MSG_RESULT(no) - samba_cv_WITH_SYS_QUOTAS=no - samba_cv_TRY_SYS_QUOTAS=no ;; *) - AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS}) + AC_MSG_RESULT(${samba_cv_WITH_QUOTAS}) ;; esac ], - AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS}) + AC_MSG_RESULT(${samba_cv_WITH_QUOTAS}) ) -if test x"$samba_cv_TRY_SYS_QUOTAS" = x"auto"; then -AC_MSG_CHECKING(whether to try the lib/sysquotas.c interface on ${host_os}) - case "$host_os" in - *linux*) - AC_MSG_RESULT(yes) - samba_cv_TRY_SYS_QUOTAS=yes - samba_cv_RUN_QUOTA_TESTS=yes - ;; - *) - AC_MSG_RESULT(no) - samba_cv_TRY_SYS_QUOTAS=no - ;; - esac -fi - ############################################# # only check for quota stuff if --with-quotas -if test x"$samba_cv_RUN_QUOTA_TESTS" != x"no"; then +if test x"$samba_cv_WITH_QUOTAS" != x"no"; then case "$host_os" in # on linux we didn't need to test we have builtin support *linux*) samba_cv_SYSQUOTA_FOUND=yes AC_DEFINE(HAVE_QUOTACTL_LINUX,1,[Whether Linux quota support is available]) - samba_cv_sysquotas_file="lib/sysquotas_linux.c" AC_MSG_CHECKING(whether to use the lib/sysquotas_linux.c builtin support) AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_LINUX_XFS_QUOTAS,1,[Whether Linux xfs quota support is available]) - samba_cv_found_xfs_header=yes AC_MSG_CHECKING(whether to use the lib/sysquotas_xfs.c builtin support) AC_MSG_RESULT(yes) ;; @@ -4512,13 +4556,19 @@ AC_CHECK_HEADER(asm/types.h,[ # For quotas on Veritas VxFS filesystems AC_CHECK_HEADERS(sys/fs/vx_quota.h) -# For quotas on Linux XFS filesystems -AC_CHECK_HEADERS(linux/dqblk_xfs.h) +# For quotas on XFS filesystems, Linux style +AC_CHECK_HEADERS(xfs/xqm.h,[ + AC_DEFINE(HAVE_XFS_QUOTAS,1,[Whether xfs quota support is available]) + ]) # For sys/quota.h and linux/quota.h AC_CHECK_HEADERS(sys/quota.h) -if test x"$samba_cv_found_xfs_header" != x"yes"; then +# For quotas on BSD systems +AC_CHECK_HEADERS(ufs/ufs/quota.h) + + +if test x"$ac_cv_header_xfs_xqm_h" != x"yes"; then # if we have xfs quota support (IRIX) we should use it AC_CACHE_CHECK([for XFS QUOTA in ],samba_cv_HAVE_SYS_QUOTA_XFS, [ AC_TRY_COMPILE([ @@ -4533,7 +4583,7 @@ AC_TRY_COMPILE([ ],[int i = Q_XGETQUOTA;], samba_cv_HAVE_SYS_QUOTA_XFS=yes,samba_cv_HAVE_SYS_QUOTA_XFS=no)]) if test "$samba_cv_HAVE_SYS_QUOTA_XFS"x = "yes"x; then - samba_cv_found_xfs_header=yes + AC_DEFINE(HAVE_XFS_QUOTAS,1,[Whether xfs quota support is available]) fi fi @@ -4561,12 +4611,11 @@ AC_TRY_RUN_STRICT([ #define HAVE_QUOTACTL_4A 1 #define AUTOCONF_TEST 1 #include "confdefs.h" -#include "${srcdir-.}/../tests/sysquotas.c"],[$CFLAGS $Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS], +#include "${srcdir-.}/../../tests/sysquotas.c"],[$CFLAGS $Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS], samba_cv_HAVE_QUOTACTL_4A=yes,samba_cv_HAVE_QUOTACTL_4A=no,samba_cv_HAVE_QUOTACTL_4A=cross)]) if test x"$samba_cv_HAVE_QUOTACTL_4A" = x"yes"; then samba_cv_SYSQUOTA_FOUND=yes; AC_DEFINE(HAVE_QUOTACTL_4A,1,[Whether long quotactl(int cmd, char *special, qid_t id, caddr_t addr) is available]) - samba_cv_sysquotas_file="lib/sysquotas_4A.c" fi fi @@ -4576,30 +4625,36 @@ AC_TRY_RUN_STRICT([ #define HAVE_QUOTACTL_4B 1 #define AUTOCONF_TEST 1 #include "confdefs.h" -#include "${srcdir-.}/../tests/sysquotas.c"],[$CFLAGS $Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS], +#include "${srcdir-.}/../../tests/sysquotas.c"],[$CFLAGS $Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS], samba_cv_HAVE_QUOTACTL_4B=yes,samba_cv_HAVE_QUOTACTL_4B=no,samba_cv_HAVE_QUOTACTL_4B=cross)]) if test x"$samba_cv_HAVE_QUOTACTL_4B" = x"yes"; then - echo "int quotactl(const char *path, int cmd, int id, char *addr) is not reworked for the new sys_quota api" samba_cv_SYSQUOTA_FOUND=yes; AC_DEFINE(HAVE_QUOTACTL_4B,1,[Whether int quotactl(const char *path, int cmd, int id, char *addr) is available]) - samba_cv_sysquotas_file="lib/sysquotas_4B.c" + AC_CHECK_MEMBERS([struct dqblk.dqb_curbytes], # Darwin bytecount style + [ AC_DEFINE([HAVE_STRUCT_DQBLK_DQB_CURBYTES],[1],[darwin style quota bytecount])],, + [#include + #include ]) + fi fi -if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then -AC_CACHE_CHECK([for CRAY int quotactl (char *spec, int request, char *arg)],samba_cv_HAVE_QUOTACTL_3,[ -AC_TRY_RUN_STRICT([ -#define HAVE_QUOTACTL_3 1 -#define AUTOCONF_TEST 1 -#include "confdefs.h" -#include "${srcdir-.}/../tests/sysquotas.c"],[$CFLAGS $Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS], - samba_cv_HAVE_QUOTACTL_3=yes,samba_cv_HAVE_QUOTACTL_3=no,samba_cv_HAVE_QUOTACTL_3=cross)]) -if test x"$samba_cv_HAVE_QUOTACTL_3" = x"yes"; then - echo "CRAY int quotactl (char *spec, int request, char *arg) is NOT reworked for the sys_quota api" - samba_cv_SYSQUOTA_FOUND=yes; - AC_DEFINE(HAVE_QUOTACTL_3,1,[Whether CRAY int quotactl (char *spec, int request, char *arg); is available]) - samba_cv_sysquotas_file="lib/sysquotas_3.c" -fi +AC_CACHE_CHECK([for NFS QUOTAS],samba_cv_HAVE_NFS_QUOTAS,[ +AC_TRY_COMPILE([ +#include +#include +#include +#ifdef HAVE_RPC_NETTYPE_H +#include +#endif +#include +],[clnt_create("", RQUOTAPROG, RQUOTAVERS, "udp");], + samba_cv_HAVE_NFS_QUOTAS=yes, samba_cv_HAVE_NFS_QUOTAS=no)]) + +if test x"$samba_cv_HAVE_NFS_QUOTAS" = x"yes"; then + AC_DEFINE(HAVE_NFS_QUOTAS,1,[NFS quota support is available]) + AC_CHECK_MEMBER(struct getquota_rslt.getquota_rslt_u, + AC_DEFINE(HAVE_GETQUOTA_RSLT_GETQUOTA_RSLT_U, 1, [Defined if struct getquota_rslt has getquota_rslt_u]),, + [#include ]) fi ################################################# @@ -4616,117 +4671,24 @@ AC_CHECK_HEADERS(devnm.h) # check for devnm AC_CHECK_FUNCS(devnm) -if test x"$samba_cv_WITH_SYS_QUOTAS" = x"yes"; then - if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then - # if --with-sys-quotas=yes then build it - # you have can use the get/set quota command smb.conf - # options then - samba_cv_SYSQUOTA_FOUND=auto - fi - if test x"$samba_cv_TRY_SYS_QUOTAS" != x"yes"; then - # if --with-sys-quotas=yes then build it - # you have can use the get/set quota command smb.conf - # options then - samba_cv_TRY_SYS_QUOTAS=auto - fi -fi - -if test x"$samba_cv_SYSQUOTA_FOUND" != x"no"; then -AC_CACHE_CHECK([whether the sys_quota interface works],samba_cv_SYSQUOTA_WORKS,[ -SAVE_CPPFLAGS="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}" -AC_TRY_COMPILE([ -#include "confdefs.h" -#define NO_PROTO_H 1 -#define NO_CONFIG_H 1 -#define HAVE_SYS_QUOTAS 1 -#include "${srcdir-.}/${samba_cv_sysquotas_file}" -#include "${srcdir-.}/lib/sysquotas.c" -],[],samba_cv_SYSQUOTA_WORKS=yes,samba_cv_SYSQUOTA_WORKS=no) -CPPFLAGS="$SAVE_CPPFLAGS" -]) -if test x"$samba_cv_SYSQUOTA_WORKS" = x"yes"; then AC_MSG_CHECKING(whether to use the new lib/sysquotas.c interface) - if test x"$samba_cv_TRY_SYS_QUOTAS" != x"no"; then +if test x"$samba_cv_SYSQUOTA_FOUND" = x"yes"; then + AC_MSG_RESULT(yes) AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support]) AC_DEFINE(HAVE_SYS_QUOTAS,1,[Whether the new lib/sysquotas.c interface can be used]) - samba_cv_WE_USE_SYS_QUOTAS=yes +else + AC_MSG_RESULT(no) + AC_MSG_CHECKING(whether to use the old quota support) + if test x"$samba_cv_WITH_QUOTAS" = x"yes"; then + AC_DEFINE(WITH_QUOTAS,1,[Whether to use old quota support]) AC_MSG_RESULT(yes) else - AC_MSG_RESULT(no) - fi -fi -fi - -if test x"$samba_cv_SYSQUOTA_FOUND" != x"no"; then -AC_CACHE_CHECK([whether the sys_quota interface works with NFS],samba_cv_SYSQUOTA_WORKS_NFS,[ -SAVE_CPPFLAGS="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}" -AC_TRY_COMPILE([ -#include "confdefs.h" -#define NO_PROTO_H 1 -#define NO_CONFIG_H 1 -#define HAVE_SYS_QUOTAS 1 -#define HAVE_NFS_QUOTAS 1 -#include "${srcdir-.}/lib/sysquotas_nfs.c" -],[],samba_cv_SYSQUOTA_WORKS_NFS=yes,samba_cv_SYSQUOTA_WORKS_NFS=no) -CPPFLAGS="$SAVE_CPPFLAGS" -]) -if test x"$samba_cv_SYSQUOTA_WORKS_NFS" = x"yes"; then - if test x"$samba_cv_WE_USE_SYS_QUOTAS" = x"yes"; then - AC_DEFINE(HAVE_NFS_QUOTAS,1,[Whether nfs quota support is available]) - fi -fi -fi - -if test x"$samba_cv_SYSQUOTA_FOUND" != x"no" -a x"$samba_cv_found_xfs_header" = x"yes"; then -AC_CACHE_CHECK([whether the sys_quota interface works with XFS],samba_cv_SYSQUOTA_WORKS_XFS,[ -SAVE_CPPFLAGS="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}" -AC_TRY_COMPILE([ -#include "confdefs.h" -#define NO_PROTO_H 1 -#define NO_CONFIG_H 1 -#define HAVE_SYS_QUOTAS 1 -#define HAVE_XFS_QUOTAS 1 -#include "${srcdir-.}/lib/sysquotas_xfs.c" -],[],samba_cv_SYSQUOTA_WORKS_XFS=yes,samba_cv_SYSQUOTA_WORKS_XFS=no) -CPPFLAGS="$SAVE_CPPFLAGS" -]) -if test x"$samba_cv_SYSQUOTA_WORKS_XFS" = x"yes"; then - if test x"$samba_cv_WE_USE_SYS_QUOTAS" = x"yes"; then - AC_DEFINE(HAVE_XFS_QUOTAS,1,[Whether xfs quota support is available]) - fi -fi -fi - -AC_CACHE_CHECK([whether the old quota support works],samba_cv_QUOTA_WORKS,[ -SAVE_CPPFLAGS="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}" -AC_TRY_COMPILE([ -#include "confdefs.h" -#define NO_PROTO_H 1 -#define NO_CONFIG_H 1 -#include "${srcdir-.}/smbd/quotas.c" -],[],samba_cv_QUOTA_WORKS=yes,samba_cv_QUOTA_WORKS=no) -CPPFLAGS="$SAVE_CPPFLAGS" -]) -if test x"$samba_cv_QUOTA_WORKS" = x"yes"; then -AC_MSG_CHECKING(whether to use the old quota support) - if test x"$samba_cv_WE_USE_SYS_QUOTAS" != x"yes"; then - if test x"$samba_cv_TRY_QUOTAS" != x"no"; then - AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support]) - AC_MSG_RESULT(yes) - else AC_MSG_RESULT(no) - fi - else - AC_MSG_RESULT(no) fi fi #################### -# End of quota check samba_cv_RUN_QUOTA_TESTS +# End of quota check samba_cv_WITH_QUOTAS fi ################################################# @@ -4754,6 +4716,11 @@ if test x"$WITH_UTMP" = x"yes" -a x"$ac_cv_header_utmp_h" = x"no"; then WITH_UTMP=no fi +if test x"$WITH_UTMP" = x"yes" -a x"$samba_cv_HAVE_UX_UT_LINE" != x"yes"; then + utmp_no_reason=", sizeof ut_line not ok" + WITH_UTMP=no +fi + # Display test results if test x"$WITH_UTMP" = x"yes"; then @@ -4839,7 +4806,7 @@ if test $space = no; then { struct statfs fsd; fsd.f_fsize = 0; - exit (statfs (".", &fsd, sizeof (struct statfs))); + return (statfs (".", &fsd, sizeof (struct statfs))); }], fu_cv_sys_stat_statfs3_osf1=yes, fu_cv_sys_stat_statfs3_osf1=no, @@ -4870,7 +4837,7 @@ member (AIX, 4.3BSD)]) { struct statfs fsd; fsd.f_bsize = 0; - exit (statfs (".", &fsd)); + return (statfs (".", &fsd)); }], fu_cv_sys_stat_statfs2_bsize=yes, fu_cv_sys_stat_statfs2_bsize=no, @@ -4891,7 +4858,7 @@ if test $space = no; then main () { struct statfs fsd; - exit (statfs (".", &fsd, sizeof fsd, 0)); + return (statfs (".", &fsd, sizeof fsd, 0)); }], fu_cv_sys_stat_statfs4=yes, fu_cv_sys_stat_statfs4=no, @@ -4919,7 +4886,7 @@ member (4.4BSD and NetBSD)]) { struct statfs fsd; fsd.f_fsize = 0; - exit (statfs (".", &fsd)); + return (statfs (".", &fsd)); }], fu_cv_sys_stat_statfs2_fsize=yes, fu_cv_sys_stat_statfs2_fsize=no, @@ -4950,7 +4917,7 @@ if test $space = no; then struct fs_data fsd; /* Ultrix's statfs returns 1 for success, 0 for not mounted, -1 for failure. */ - exit (statfs (".", &fsd) != 1); + return (statfs (".", &fsd) != 1); }], fu_cv_sys_stat_fs_data=yes, fu_cv_sys_stat_fs_data=no, @@ -5002,7 +4969,7 @@ ctdb_broken="no" SAVED_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS} $CTDB_CPPFLAGS" -AC_CHECK_HEADERS(ctdb.h ctdb_private.h,,,[ +AC_CHECK_HEADERS(ctdb.h ctdb_private.h ctdb_protocol.h ,,,[ #include "confdefs.h" #define NO_CONFIG_H #include "replace.h" @@ -5022,7 +4989,7 @@ then fi if test "x$have_cluster_support" = "xyes" -a \ - "x$ac_cv_header_ctdb_h" != "xyes" + "x$ac_cv_header_ctdb_private_h" != "xyes" then have_cluster_support=no ctdb_broken="ctdb_private.h is required for cluster support" @@ -5229,7 +5196,6 @@ AC_MSG_RESULT($with_acl_support) if test x"$with_acl_support" = x"no"; then AC_MSG_RESULT(Disabling ACL support) - AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in]) else AC_MSG_NOTICE(checking whether ACL support is available:) case "$host_os" in @@ -5249,11 +5215,6 @@ else AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available]) default_static_modules="$default_static_modules vfs_hpuxacl" ;; - *irix*) - AC_MSG_NOTICE(Using IRIX ACLs) - AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available]) - default_static_modules="$default_static_modules vfs_irixacl" - ;; *aix*) AC_MSG_NOTICE(Using AIX ACLs) AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available]) @@ -5267,7 +5228,6 @@ else ;; *darwin*) AC_MSG_NOTICE(ACLs on Darwin currently not supported) - AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available]) ;; *) AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"]) @@ -5316,7 +5276,6 @@ else default_static_modules="$default_static_modules vfs_posixacl" else AC_MSG_NOTICE(ACL support is not avaliable) - AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available]) fi ;; esac @@ -5417,20 +5376,19 @@ int main() { struct aiocb a; return aio_suspend(&a, 1, NULL); }])], fi fi -if test x"$samba_cv_HAVE_AIO" = x"yes"; then - if test x"$samba_cv_msghdr_msg_control" = x"yes" -o \ - x"$samba_cv_msghdr_msg_acctright" = x"yes"; then - default_shared_modules="$default_shared_modules vfs_aio_fork" - fi +if test x"$samba_cv_msghdr_msg_control" = x"yes" -o \ + x"$samba_cv_msghdr_msg_acctright" = x"yes"; then + default_shared_modules="$default_shared_modules vfs_aio_fork" +fi # Check for Linux kernel aio support. - case "$host_os" in - *linux*) - AC_CHECK_LIB(aio,io_submit,[AIO_LIBS="$LIBS -laio"]) - AC_CACHE_CHECK([for Linux kernel asynchronous io support],samba_cv_HAVE_LINUX_KERNEL_AIO,[ - aio_LIBS=$LIBS - LIBS=$AIO_LIBS - AC_TRY_LINK([#include +case "$host_os" in +*linux*) + AC_CHECK_LIB(aio,io_submit,[AIO_LIBS="$LIBS -laio"]) + AC_CACHE_CHECK([for Linux kernel asynchronous io support],samba_cv_HAVE_LINUX_KERNEL_AIO,[ + aio_LIBS=$LIBS + LIBS=$AIO_LIBS + AC_TRY_LINK([#include #include #include #include @@ -5452,27 +5410,36 @@ io_submit(ctx, 1, &ioc); io_getevents(ctx, 1, 1, &ioev, &ts);], samba_cv_HAVE_LINUX_KERNEL_AIO=yes,samba_cv_HAVE_LINUX_KERNEL_AIO=no) LIBS=$aio_LIBS]) - if test x"$samba_cv_HAVE_LINUX_KERNEL_AIO" = x"yes"; then - AC_DEFINE(HAVE_AIO, 1, [Using asynchronous io]) - default_shared_modules="$default_shared_modules vfs_aio_linux" - fi - ;; - esac + if test x"$samba_cv_HAVE_LINUX_KERNEL_AIO" = x"yes"; then + default_shared_modules="$default_shared_modules vfs_aio_linux" + fi + ;; +esac + +if test x"$samba_cv_HAVE_AIO" = x"yes"; then + default_shared_modules="$default_shared_modules vfs_aio_posix" fi ################################################# # check for sendfile support -with_sendfile_support=yes -AC_MSG_CHECKING(whether to check to support sendfile) +AC_MSG_CHECKING(whether sendfile support should be built in) AC_ARG_WITH(sendfile-support, -[AS_HELP_STRING([--with-sendfile-support], [Check for sendfile support (default=yes)])], +[AS_HELP_STRING([--with-sendfile-support], [Whether sendfile support should be built in (default=auto)])], [ case "$withval" in - yes) - - AC_MSG_RESULT(yes); + yes|no) + AC_MSG_RESULT($withval); + with_sendfile_support=$withval + ;; + *) + AC_MSG_RESULT(yes) + with_sendfile_support=auto + ;; + esac ], +) - case "$host_os" in +if test x$with_sendfile_support != xno ; then + case "$host_os" in *linux* | gnu* | k*bsd*-gnu | kopensolaris*-gnu) AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[ AC_TRY_LINK([#include ], @@ -5484,28 +5451,10 @@ ssize_t nwritten = sendfile(tofd, fromfd, &offset, total); ], samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)]) -# Try and cope with broken Linux sendfile.... - AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[ - AC_TRY_LINK([\ -#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) -#undef _FILE_OFFSET_BITS -#endif -#include ], -[\ -int tofd, fromfd; -off_t offset; -size_t total; -ssize_t nwritten = sendfile(tofd, fromfd, &offset, total); -], -samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)]) - if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available]) AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available]) AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used]) - elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then - AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken]) - AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used]) else AC_MSG_RESULT(no); fi @@ -5541,9 +5490,41 @@ samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)]) AC_MSG_RESULT(no); fi ;; + *darwin*) + AC_CACHE_CHECK([for Darwin sendfile support], + samba_cv_HAVE_SENDFILE, + [ + AC_TRY_LINK([ +#include +#include +#include + ], + [ + int fromfd, tofd, ret; + off_t offset, nwritten; + struct sf_hdtr hdr; + struct iovec hdtrl; + hdr.headers = &hdtrl; + hdr.hdr_cnt = 1; + hdr.trailers = (void *)0; + hdr.trl_cnt = 0; + hdtrl.iov_base = (void *)0; + hdtrl.iov_len = 0; + ret = sendfile(fromfd, tofd, offset, &nwritten, &hdr, 0); + ], + samba_cv_HAVE_SENDFILE=yes, + samba_cv_HAVE_SENDFILE=no)]) - *hpux*) - AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[ + if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then + AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available]) + AC_DEFINE(DARWIN_SENDFILE_API,1,[Whether the Darwin sendfile() API is available]) + AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included]) + else + AC_MSG_RESULT(no); + fi + ;; + *hpux*|*osf*) + AC_CACHE_CHECK([for osf/hpux sendfile support],samba_cv_HAVE_SENDFILE,[ AC_TRY_LINK([\ #include #include ], @@ -5562,7 +5543,7 @@ samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)]) samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)]) if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available]) - AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available]) + AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the osf/hpux sendfile() API is available]) AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included]) else AC_MSG_RESULT(no); @@ -5635,14 +5616,12 @@ samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)]) ;; *) ;; - esac - ;; - *) - AC_MSG_RESULT(no) - ;; - esac ], - AC_MSG_RESULT(yes) -) + esac +fi + +if test x$with_sendfile_support = xyes -a x"$samba_cv_HAVE_SENDFILE" != xyes ; then + AC_MSG_ERROR(sendfile support requested but sendfile not available ) +fi ############################################ # See if we have the Linux readahead syscall. @@ -5684,6 +5663,24 @@ if test x"$samba_cv_HAVE_POSIX_FADVISE" = x"yes"; then [Whether posix_fadvise is available]) fi +############################################ +# See if we have the openat syscall. + +AC_CACHE_CHECK([for openat], + samba_cv_HAVE_OPENAT,[ + AC_TRY_LINK([ +#if defined(HAVE_UNISTD_H) +#include +#endif +#include ], + [int fd = openat(AT_FDCWD, ".", O_RDONLY);], + samba_cv_HAVE_OPENAT=yes, + samba_cv_HAVE_OPENAT=no)]) + +if test x"$samba_cv_HAVE_OPENAT" = x"yes"; then + AC_DEFINE(HAVE_OPENAT,1, [Whether openat is available]) +fi + ############################################ # See if we have the Linux splice syscall. @@ -5696,7 +5693,7 @@ AC_CACHE_CHECK([for Linux splice], #include #endif #include ], - [long ret = splice(0,0,1,0,400,0);], + [long ret = splice(0,0,1,0,400,SPLICE_F_MOVE);], samba_cv_HAVE_LINUX_SPLICE=yes, samba_cv_HAVE_LINUX_SPLICE=no)]) ;; @@ -5774,7 +5771,7 @@ case "$host_os" in NSSSONAMEVERSIONSUFFIX=".2" WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_linux.o" ;; - *freebsd[[5-9]]*) + *freebsd[[5-9]]* | *freebsd1[[0-9]]*) # FreeBSD winbind client is implemented as a wrapper around # the Linux version. NSSSONAMEVERSIONSUFFIX=".1" @@ -5784,7 +5781,7 @@ case "$host_os" in WINBIND_WINS_NSS="../nsswitch/nss_wins.$SHLIBEXT" ;; - *netbsd*[[3-9]]*) + *netbsd*[[3-9]]* | *netbsd1[[0-9]]*) # NetBSD winbind client is implemented as a wrapper # around the Linux version. It needs getpwent_r() to # indicate libc's use of the correct nsdispatch API. @@ -6132,24 +6129,24 @@ fi # Check if user wants pthreadpool support AC_ARG_ENABLE(pthreadpool, -[AS_HELP_STRING([--enable-pthreadpool], [Enable pthreads pool helper support (default=no)])]) +[AS_HELP_STRING([--enable-pthreadpool], [Enable pthreads pool helper support (default=yes)])]) if test x"$enable_pthreadpool" = xyes -a x"$samba_cv_HAVE_PTHREAD" != x"yes"; then AC_MSG_ERROR([pthreadpool support cannot be enabled when pthread support was not found]) fi -if test x"$enable_pthreadpool" = x"yes" -a x"$samba_cv_HAVE_PTHREAD" = x"yes"; then +if test x"$enable_pthreadpool" != x"no" -a x"$samba_cv_HAVE_PTHREAD" = x"yes"; then LIBS="$LIBS $PTHREAD_LDFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - AC_DEFINE(WITH_PTHREADPOOL, 1, [Whether to include pthreadpool helpers]) AC_SUBST(PTHREADPOOL_OBJ, "lib/pthreadpool/pthreadpool.o") - PTHREADPOOLTEST="bin/pthreadpooltest" - AC_SUBST(PTHREADPOOLTEST) - if test x"$samba_cv_HAVE_AIO" = x"yes"; then - default_shared_modules="$default_shared_modules vfs_aio_pthread" - fi + default_shared_modules="$default_shared_modules vfs_aio_pthread" +else + AC_SUBST(PTHREADPOOL_OBJ, "lib/pthreadpool/pthreadpool_sync.o") fi +PTHREADPOOLTEST="bin/pthreadpooltest" +AC_SUBST(PTHREADPOOLTEST) + ################################################# # Check to see if we should use the included iniparser @@ -6228,11 +6225,11 @@ fi CFLAGS=$CFLAGS_SAVE -# Checks for *BSD bsd_statvfs() function +# Checks for POSIX ignorant BSD style statvfs() function # Start AC_CHECK_HEADERS(sys/param.h sys/mount.h) -AC_MSG_CHECKING([bsd_statvfs: checking for statfs() and struct statfs.bsize]) +AC_MSG_CHECKING([checking for posix ignorant *bsd style statfs struct]) AC_CACHE_VAL(bsdstatvfs_cv_statfs,[ AC_TRY_RUN([ #ifdef HAVE_SYS_PARAM_H @@ -6245,7 +6242,8 @@ AC_CACHE_VAL(bsdstatvfs_cv_statfs,[ { struct statfs fsd; fsd.f_bsize = 0; - exit (statfs (".", &fsd)); + fsd.f_iosize = 0; + return (statfs (".", &fsd)); }], bsdstatvfs_cv_statfs=yes, bsdstatvfs_cv_statfs=no, @@ -6253,11 +6251,9 @@ AC_CACHE_VAL(bsdstatvfs_cv_statfs,[ AC_MSG_RESULT($bsdstatvfs_cv_statfs) if test $bsdstatvfs_cv_statfs = yes; then - AC_DEFINE(BSD_STATVFS_BSIZE,1,[Whether statfs exists and struct statfs has bsize property]) + AC_DEFINE(BSD_STYLE_STATVFS,1,[Whether statfs struct is *bsd style]) fi - -# End -# Checks for *BSD sys_statvfs() function +# End of checks POSIX ignorant BSD style statvfs() function # Checks for the vfs_fileid module # Start @@ -6341,7 +6337,6 @@ fi SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o passdb/pdb_nds.o passdb/pdb_ipa.o passdb/pdb_ldap_util.o, "bin/ldapsam.$SHLIBEXT", PDB, [ PASSDB_LIBS="$PASSDB_LIBS $LDAP_LIBS" ] ) -SMB_MODULE(pdb_ads, passdb/pdb_ads.o \$(TLDAP_OBJ), "bin/ads.$SHLIBEXT", PDB) SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, "bin/smbpasswd.$SHLIBEXT", PDB) SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, "bin/tdbsam.$SHLIBEXT", PDB) SMB_MODULE(pdb_wbc_sam, passdb/pdb_wbc_sam.o, "bin/wbc_sam.$SHLIBEXT", PDB) @@ -6356,7 +6351,6 @@ SMB_MODULE(idmap_rid, winbindd/idmap_rid.o, "bin/rid.$SHLIBEXT", IDMAP) SMB_MODULE(idmap_autorid, winbindd/idmap_autorid.o, "bin/autorid.$SHLIBEXT", IDMAP) SMB_MODULE(idmap_ad, winbindd/idmap_ad.o, "bin/ad.$SHLIBEXT", IDMAP) SMB_MODULE(idmap_hash, \$(IDMAP_HASH_OBJ), "bin/hash.$SHLIBEXT", IDMAP) -SMB_MODULE(idmap_adex, \$(IDMAP_ADEX_OBJ), "bin/adex.$SHLIBEXT", IDMAP) SMB_SUBSYSTEM(IDMAP, winbindd/idmap.o) SMB_MODULE(nss_info_template, winbindd/nss_info_template.o, "bin/template.$SHLIBEXT", NSS_INFO) @@ -6369,7 +6363,6 @@ SMB_MODULE(auth_wbc, \$(AUTH_WBC_OBJ), "bin/wbc.$SHLIBEXT", AUTH) SMB_MODULE(auth_domain, \$(AUTH_DOMAIN_OBJ), "bin/domain.$SHLIBEXT", AUTH) SMB_MODULE(auth_builtin, \$(AUTH_BUILTIN_OBJ), "bin/builtin.$SHLIBEXT", AUTH) SMB_MODULE(auth_script, \$(AUTH_SCRIPT_OBJ), "bin/script.$SHLIBEXT", AUTH) -SMB_MODULE(auth_netlogond, \$(AUTH_NETLOGOND_OBJ), "bin/netlogond.$SHLIBEXT", AUTH) SMB_SUBSYSTEM(AUTH,auth/auth.o) SMB_MODULE(vfs_default, \$(VFS_DEFAULT_OBJ), "bin/default.$SHLIBEXT", VFS) @@ -6379,6 +6372,7 @@ SMB_MODULE(vfs_extd_audit, \$(VFS_EXTD_AUDIT_OBJ), "bin/extd_audit.$SHLIBEXT", V SMB_MODULE(vfs_full_audit, \$(VFS_FULL_AUDIT_OBJ), "bin/full_audit.$SHLIBEXT", VFS) SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK_OBJ), "bin/netatalk.$SHLIBEXT", VFS) SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), "bin/fake_perms.$SHLIBEXT", VFS) +SMB_MODULE(vfs_fake_acls, \$(VFS_FAKE_ACLS_OBJ), "bin/fake_acls.$SHLIBEXT", VFS) SMB_MODULE(vfs_default_quota, \$(VFS_DEFAULT_QUOTA_OBJ), "bin/default_quota.$SHLIBEXT", VFS) SMB_MODULE(vfs_readonly, \$(VFS_READONLY_OBJ), "bin/readonly.$SHLIBEXT", VFS) SMB_MODULE(vfs_cap, \$(VFS_CAP_OBJ), "bin/cap.$SHLIBEXT", VFS) @@ -6391,7 +6385,6 @@ SMB_MODULE(vfs_posixacl, \$(VFS_POSIXACL_OBJ), "bin/posixacl.$SHLIBEXT", VFS) SMB_MODULE(vfs_aixacl, \$(VFS_AIXACL_OBJ), "bin/aixacl.$SHLIBEXT", VFS) SMB_MODULE(vfs_aixacl2, \$(VFS_AIXACL2_OBJ), "bin/aixacl2.$SHLIBEXT", VFS) SMB_MODULE(vfs_solarisacl, \$(VFS_SOLARISACL_OBJ), "bin/solarisacl.$SHLIBEXT", VFS) -SMB_MODULE(vfs_irixacl, \$(VFS_IRIXACL_OBJ), "bin/irixacl.$SHLIBEXT", VFS) SMB_MODULE(vfs_hpuxacl, \$(VFS_HPUXACL_OBJ), "bin/hpuxacl.$SHLIBEXT", VFS) SMB_MODULE(vfs_tru64acl, \$(VFS_TRU64ACL_OBJ), "bin/tru64acl.$SHLIBEXT", VFS) SMB_MODULE(vfs_catia, \$(VFS_CATIA_OBJ), "bin/catia.$SHLIBEXT", VFS) @@ -6401,12 +6394,12 @@ SMB_MODULE(vfs_cacheprime, \$(VFS_CACHEPRIME_OBJ), "bin/cacheprime.$SHLIBEXT", V SMB_MODULE(vfs_prealloc, \$(VFS_PREALLOC_OBJ), "bin/prealloc.$SHLIBEXT", VFS) SMB_MODULE(vfs_commit, \$(VFS_COMMIT_OBJ), "bin/commit.$SHLIBEXT", VFS) SMB_MODULE(vfs_gpfs, \$(VFS_GPFS_OBJ), "bin/gpfs.$SHLIBEXT", VFS) -SMB_MODULE(vfs_gpfs_hsm_notify, \$(VFS_GPFS_PREFETCH_OBJ), "bin/gpfs_hsm_notify.$SHLIBEXT", VFS) SMB_MODULE(vfs_readahead, \$(VFS_READAHEAD_OBJ), "bin/readahead.$SHLIBEXT", VFS) SMB_MODULE(vfs_tsmsm, \$(VFS_TSMSM_OBJ), "bin/tsmsm.$SHLIBEXT", VFS) SMB_MODULE(vfs_fileid, \$(VFS_FILEID_OBJ), "bin/fileid.$SHLIBEXT", VFS) SMB_MODULE(vfs_aio_fork, \$(VFS_AIO_FORK_OBJ), "bin/aio_fork.$SHLIBEXT", VFS) SMB_MODULE(vfs_aio_pthread, \$(VFS_AIO_PTHREAD_OBJ), "bin/aio_pthread.$SHLIBEXT", VFS) +SMB_MODULE(vfs_aio_posix, \$(VFS_AIO_POSIX_OBJ), "bin/aio_posix.$SHLIBEXT", VFS) SMB_MODULE(vfs_aio_linux, \$(VFS_AIO_LINUX_OBJ), "bin/aio_linux.$SHLIBEXT", VFS) SMB_MODULE(vfs_preopen, \$(VFS_PREOPEN_OBJ), "bin/preopen.$SHLIBEXT", VFS) SMB_MODULE(vfs_syncops, \$(VFS_SYNCOPS_OBJ), "bin/syncops.$SHLIBEXT", VFS) @@ -6420,6 +6413,7 @@ SMB_MODULE(vfs_scannedonly, \$(VFS_SCANNEDONLY_OBJ), "bin/scannedonly.$SHLIBEXT" SMB_MODULE(vfs_crossrename, \$(VFS_CROSSRENAME_OBJ), "bin/crossrename.$SHLIBEXT", VFS) SMB_MODULE(vfs_linux_xfs_sgid, \$(VFS_LINUX_XFS_SGID_OBJ), "bin/linux_xfs_sgid.$SHLIBEXT", VFS) SMB_MODULE(vfs_time_audit, \$(VFS_TIME_AUDIT_OBJ), "bin/time_audit.$SHLIBEXT", VFS) +SMB_MODULE(vfs_media_harmony, \$(VFS_MEDIA_HARMONY_OBJ), "bin/media_harmony.$SHLIBEXT", VFS) SMB_SUBSYSTEM(VFS,smbd/vfs.o) @@ -6443,10 +6437,10 @@ fi ################################################# # If run from the build farm, enable NASTY hacks ################################################# -AC_MSG_CHECKING(whether to enable build farm hacks) -if test x"$RUN_FROM_BUILD_FARM" = x"yes"; then +AC_MSG_CHECKING(whether to enable features for selftest) +if test x"$selftest" = x"yes"; then AC_MSG_RESULT(yes) - AC_DEFINE(ENABLE_BUILD_FARM_HACKS, 1, [Defined if running in the build farm]) + AC_DEFINE(ENABLE_SELFTEST, 1, [Support features needed for selftest]) else AC_MSG_RESULT(no) fi