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:
parent
bbc1b0c985
commit
d2f6d0ba1e
@ -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
|
||||
;;
|
||||
|
@ -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.... */
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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')
|
||||
|
Loading…
x
Reference in New Issue
Block a user