Fix build on FreeBSD
__GLIBC_PREREQ is defined in such a way that the ! cannot be used in front of it on FreeBSD. Also, -lpthread is not implied by the build and we definitely use it for compatfd support. While at it, I added a default initialization for posix-aio that seems to perform well in our testing. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5322 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
2ca83a8dd6
commit
997306fc22
@ -525,6 +525,7 @@ static int posix_aio_init(void)
|
||||
{
|
||||
sigset_t mask;
|
||||
PosixAioState *s;
|
||||
struct aioinit ai;
|
||||
|
||||
if (posix_aio_state)
|
||||
return 0;
|
||||
@ -545,18 +546,19 @@ static int posix_aio_init(void)
|
||||
|
||||
qemu_aio_set_fd_handler(s->fd, posix_aio_read, NULL, posix_aio_flush, s);
|
||||
|
||||
#if defined(__linux__) && defined(__GLIBC_PREREQ) && !__GLIBC_PREREQ(2, 4)
|
||||
{
|
||||
memset(&ai, 0, sizeof(ai));
|
||||
#if !defined(__linux__) || (defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 4))
|
||||
ai.aio_threads = 5;
|
||||
ai.aio_num = 1;
|
||||
#else
|
||||
/* XXX: aio thread exit seems to hang on RedHat 9 and this init
|
||||
seems to fix the problem. */
|
||||
struct aioinit ai;
|
||||
memset(&ai, 0, sizeof(ai));
|
||||
ai.aio_threads = 1;
|
||||
ai.aio_num = 1;
|
||||
ai.aio_idle_time = 365 * 100000;
|
||||
aio_init(&ai);
|
||||
}
|
||||
#endif
|
||||
aio_init(&ai);
|
||||
posix_aio_state = s;
|
||||
|
||||
return 0;
|
||||
|
4
configure
vendored
4
configure
vendored
@ -482,8 +482,10 @@ if test "$mingw32" = "yes" ; then
|
||||
linux_user="no"
|
||||
fi
|
||||
|
||||
if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
|
||||
if [ "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
|
||||
AIOLIBS=
|
||||
elif [ "$bsd" = "yes" ]; then
|
||||
AIOLIBS="-lpthread"
|
||||
else
|
||||
# Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
|
||||
AIOLIBS="-lrt -lpthread"
|
||||
|
Loading…
Reference in New Issue
Block a user