1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-24 10:50:22 +03:00

build: Rationalise AIO support in configure, ensure on by default

With this change, the define to check for AIO is HAVE_AIO, consistant
with other subsystems.

It is now also on by default in the autoconf build, as it has been for waf.

Andrew Bartlett
This commit is contained in:
Andrew Bartlett 2012-06-06 09:23:22 +10:00
parent bbc1b0c985
commit d2f6d0ba1e
7 changed files with 26 additions and 30 deletions

View File

@ -5339,15 +5339,21 @@ esac
#################################################
# check for AIO support
with_aio=auto
AC_MSG_CHECKING(whether to support asynchronous io)
AC_ARG_WITH(aio-support,
[AS_HELP_STRING([--with-aio-support], [Include asynchronous io support (default=no)])],
[ case "$withval" in
yes)
[AS_HELP_STRING([--with-aio-support], [Include asynchronous io support (default=auto)])],
[ case "$withval" in
yes|no)
with_aio=$withval
;;
esac ])
AC_MSG_RESULT(yes)
case "$host_os" in
*)
AC_MSG_RESULT($with_aio)
if test x"$with_aio" = x"no"; then
AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support should be built in])
else
AIO_LIBS=$LIBS
no_rt_LIBS=$LIBS
AC_CHECK_LIB(rt,aio_read,[AIO_LIBS="$LIBS -lrt"])
@ -5362,7 +5368,7 @@ AC_ARG_WITH(aio-support,
samba_cv_HAVE_AIO=yes,samba_cv_HAVE_AIO=no)
LIBS=$aio_LIBS])
if test x"$samba_cv_HAVE_AIO" = x"yes"; then
AC_DEFINE(WITH_AIO, 1, [Using asynchronous io])
AC_DEFINE(HAVE_AIO, 1, [Using asynchronous io])
LIBS=$AIO_LIBS
AC_MSG_CHECKING(for aio_read)
AC_LINK_IFELSE([AC_LANG_SOURCE([#include <aio.h>
@ -5405,19 +5411,11 @@ int main() { struct aiocb a; return aio_cancel(1, &a); }])],
int main() { struct aiocb a; return aio_suspend(&a, 1, NULL); }])],
[AC_DEFINE(HAVE_AIO_SUSPEND, 1, [Have aio_suspend]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
else
AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support is available])
AC_MSG_RESULT(no)
fi
;;
esac
;;
*)
AC_MSG_RESULT(no)
AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support is available])
;;
esac ],
AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support should be built in])
AC_MSG_RESULT(no)
)
fi
if test x"$samba_cv_HAVE_AIO" = x"yes"; then
if test x"$samba_cv_msghdr_msg_control" = x"yes" -o \
@ -5455,7 +5453,7 @@ 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(WITH_AIO, 1, [Using asynchronous io])
AC_DEFINE(HAVE_AIO, 1, [Using asynchronous io])
default_shared_modules="$default_shared_modules vfs_aio_linux"
fi
;;

View File

@ -149,7 +149,7 @@
#include <netgroup.h>
#endif
#if defined(HAVE_AIO_H) && defined(WITH_AIO)
#if defined(HAVE_AIO_H) && defined(HAVE_AIO)
#include <aio.h>
#endif
@ -343,7 +343,7 @@ typedef struct stat_ex SMB_STRUCT_STAT;
*/
#ifndef SMB_STRUCT_AIOCB
# if defined(WITH_AIO)
# if defined(HAVE_AIO)
# define SMB_STRUCT_AIOCB struct aiocb
# else
# define SMB_STRUCT_AIOCB int /* AIO not being used but we still need the define.... */

View File

@ -1365,7 +1365,7 @@ int sys_get_number_of_cores(void)
}
#endif
#if defined(WITH_AIO)
#if defined(HAVE_AIO)
/*******************************************************************
An aio_read wrapper.
@ -1464,7 +1464,7 @@ int sys_aio_suspend(const SMB_STRUCT_AIOCB * const cblist[], int n, const struct
return -1;
#endif
}
#else /* !WITH_AIO */
#else /* !HAVE_AIO */
int sys_aio_read(SMB_STRUCT_AIOCB *aiocb)
{
@ -1507,4 +1507,4 @@ int sys_aio_suspend(const SMB_STRUCT_AIOCB * const cblist[], int n, const struct
errno = ENOSYS;
return -1;
}
#endif /* WITH_AIO */
#endif /* HAVE_AIO */

View File

@ -23,7 +23,7 @@
#include "smbd/globals.h"
#include "../lib/util/tevent_ntstatus.h"
#if defined(WITH_AIO)
#if defined(HAVE_AIO)
/* The signal we'll use to signify aio done. */
#ifndef RT_SIGNAL_AIO

View File

@ -25,7 +25,7 @@
#include "messages.h"
#include "tdb_compat.h"
#if defined(WITH_AIO)
#if defined(HAVE_AIO)
struct aio_extra *aio_list_head = NULL;
struct tevent_signal *aio_signal_event = NULL;
int aio_pending_size = 0;

View File

@ -20,7 +20,7 @@
#include "system/select.h"
#if defined(WITH_AIO)
#if defined(HAVE_AIO)
struct aio_extra;
extern struct aio_extra *aio_list_head;
extern struct tevent_signal *aio_signal_event;

View File

@ -361,8 +361,6 @@ return acl_get_perm_np(permset_d, perm);
msg='Checking for asynchronous io support',
headers='sys/types.h aio.h',
lib='aio rt')
if conf.CONFIG_SET('HAVE_AIO'):
conf.DEFINE('WITH_AIO', '1')
if conf.CONFIG_SET('HAVE_AIO'):
conf.CHECK_CODE('struct aiocb a; return aio_read(&a);', 'HAVE_AIO_READ', msg='Checking for aio_read', headers='aio.h', lib='aio rt')
conf.CHECK_CODE('struct aiocb a; return aio_write(&a);', 'HAVE_AIO_WRITE', msg='Checking for aio_write', headers='aio.h', lib='aio rt')