AC_DEFINE(HAVE_GENERATION)
fi
+AC_MSG_CHECKING(for POSIX 2008 preadv)
+tmp_flags="$CFLAGS"
+CFLAGS="$CFLAGS -Wall -Werror"
+AC_TRY_COMPILE([
+#include <sys/uio.h>
+ssize_t preadv (int __fd, const struct iovec *__iovec,
+ int __count, off_t off)
+{
+ return 0;
+}
+],[
+],[
+AC_DEFINE(HAVE_POSIX2008_PREADV, 1, [POSIX 2008 preadv])
+AC_MSG_RESULT(yes)
+],[
+AC_MSG_RESULT(no)
+])
+CFLAGS="$tmp_flags"
+
+AC_MSG_CHECKING(for POSIX 2008 scandir)
+tmp_flags="$CFLAGS"
+CFLAGS="$CFLAGS -Wall -Werror"
+AC_TRY_COMPILE([
+#define _BSD_SOURCE
+
+#include <stdio.h>
+#include <dirent.h>
+
+int scandir(const char *dir,
+ struct dirent ***namelist,
+ int(*filter)(const struct dirent *),
+ int(*compar)(const struct dirent **,
+ const struct dirent **)
+ );
+
+],[
+], [
+AC_DEFINE(HAVE_POSIX2008_SCANDIR, 1, [POSIX 2008 scandir])
+AC_MSG_RESULT(yes)
+],[
+AC_MSG_RESULT(no)
+])
+CFLAGS="$tmp_flags"
+
+
AC_MSG_CHECKING(whether .text pseudo-op must be used)
AC_CACHE_VAL(am_cv_sysio_asm_dot_text, [dnl
cat > conftest.s <<EOF
extern DIR *SYSIO_INTERFACE_NAME(opendir)(const char *name);
extern int SYSIO_INTERFACE_NAME(closedir)(DIR *dir);
extern struct dirent *SYSIO_INTERFACE_NAME(readdir)(DIR *dir);
+
extern int SYSIO_INTERFACE_NAME(scandir)(const char *dir,
struct dirent ***namelist,
int(*filter)(const struct dirent *),
- int(*compar)(const void *,
- const void *));
+#ifdef HAVE_POSIX2008_SCANDIR
+ int(*compar)(const struct dirent **,
+ const struct dirent **)
+#else
+ int(*compar)(const void *, const void *)
+#endif
+ );
#if defined(_BSD_SOURCE) || defined(_SVID_SOURCE)
extern ssize_t SYSIO_INTERFACE_NAME(getdirentries)(int fd,
char *buf,
};
#endif
+#ifdef HAVE_POSIX2008_PREADV
+#define _SYSIO_PREADV_T int
+#else
+#define _SYSIO_PREADV_T size_t
+#endif
+
struct iovec;
/*
*/
extern ssize_t SYSIO_INTERFACE_NAME(preadv)(int fd,
const struct iovec *iov,
- size_t count,
+ _SYSIO_PREADV_T count,
off_t offset);
#ifdef _LARGEFILE64_SOURCE
*/
extern ssize_t SYSIO_INTERFACE_NAME(pread64v)(int fd,
const struct iovec *iov,
- size_t count,
+ _SYSIO_PREADV_T count,
off64_t offset);
#endif
*/
extern ssize_t SYSIO_INTERFACE_NAME(pwritev)(int fd,
const struct iovec *iov,
- size_t count,
+ _SYSIO_PREADV_T count,
off_t offset);
#ifdef _LARGEFILE64_SOURCE
*/
extern ssize_t SYSIO_INTERFACE_NAME(pwrite64v)(int fd,
const struct iovec *iov,
- size_t count,
+ _SYSIO_PREADV_T count,
off64_t offset);
#endif
_SCANDIR(const char *dirname,
_DIRENT_T ***namelist,
int (*filter) (const _DIRENT_T *),
- int (*compar) (const void *, const void *))
+#ifdef HAVE_POSIX2008_SCANDIR
+ int(*compar)(const _DIRENT_T **, const _DIRENT_T **)
+#else
+ int(*compar)(const void *, const void *)
+#endif
+ )
{
DIR *dir = NULL;
_DIRENT_T *de = NULL,
static ssize_t
PREPEND(_, SYSIO_INTERFACE_NAME(preadv))(int fd,
const struct iovec *iov,
- size_t count,
+ _SYSIO_PREADV_T count,
_SYSIO_OFF_T offset)
{
struct file *fil;
ssize_t
SYSIO_INTERFACE_NAME(preadv)(int fd,
const struct iovec *iov,
- size_t count,
+ _SYSIO_PREADV_T count,
off_t offset)
{
}
ssize_t
-SYSIO_INTERFACE_NAME(writev)(int fd, const struct iovec *iov, int count)
+SYSIO_INTERFACE_NAME(writev)(int fd, const struct iovec *iov,
+ int count)
{
struct file *fil;
struct intnl_xtvec xtvector;
static ssize_t
PREPEND(_, SYSIO_INTERFACE_NAME(pwritev))(int fd,
const struct iovec *iov,
- size_t count,
+ _SYSIO_PREADV_T count,
_SYSIO_OFF_T offset)
{
struct file *fil;
ssize_t
SYSIO_INTERFACE_NAME(pwritev)(int fd,
const struct iovec *iov,
- size_t count,
+ _SYSIO_PREADV_T count,
off_t offset)
{