mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 13:41:48 +00:00
configure.ac: Detect broken poll()
This commit is contained in:
parent
7fcd73875f
commit
b90360473b
1 changed files with 30 additions and 0 deletions
30
configure.ac
30
configure.ac
|
@ -395,6 +395,36 @@ AC_CHECK_FUNCS([poll])
|
||||||
AC_CHECK_FUNCS([ppoll])
|
AC_CHECK_FUNCS([ppoll])
|
||||||
AC_CHECK_FUNCS([pselect])
|
AC_CHECK_FUNCS([pselect])
|
||||||
|
|
||||||
|
dnl ****************************************
|
||||||
|
dnl *** GLib POLL* compatibility defines ***
|
||||||
|
dnl ****************************************
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for broken poll])
|
||||||
|
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <poll.h>
|
||||||
|
#ifdef HAVE_SYS_POLL_H
|
||||||
|
#include <sys/poll.h>
|
||||||
|
#endif
|
||||||
|
int main(void) {
|
||||||
|
struct pollfd fds[1];
|
||||||
|
int fd;
|
||||||
|
fd = open("/dev/null", 1);
|
||||||
|
fds[0].fd = fd;
|
||||||
|
fds[0].events = POLLIN;
|
||||||
|
fds[0].revents = 0;
|
||||||
|
if (poll(fds, 1, 0) < 0 || (fds[0].revents & POLLNVAL) != 0) {
|
||||||
|
exit(1); /* Does not work for devices -- fail */
|
||||||
|
}
|
||||||
|
exit(0);
|
||||||
|
}]])],
|
||||||
|
[broken_poll=no],
|
||||||
|
[broken_poll=yes
|
||||||
|
AC_DEFINE(BROKEN_POLL,1,[poll doesn't work on devices])],
|
||||||
|
[broken_poll="no (cross compiling)"])
|
||||||
|
AC_MSG_RESULT($broken_poll)
|
||||||
|
|
||||||
dnl check for mmap()
|
dnl check for mmap()
|
||||||
AC_FUNC_MMAP
|
AC_FUNC_MMAP
|
||||||
AM_CONDITIONAL(HAVE_MMAP, test "x$ac_cv_func_mmap_fixed_mapped" = "xyes")
|
AM_CONDITIONAL(HAVE_MMAP, test "x$ac_cv_func_mmap_fixed_mapped" = "xyes")
|
||||||
|
|
Loading…
Reference in a new issue