dnl * after -lsocket and -lnsl tests, inet_aton() may be in them
AC_CHECK_FUNCS(fcntl flock inet_aton sigaction getpagesize madvise \
- strcasecmp stricmp vsnprintf vsyslog writev pwrite \
+ strcasecmp stricmp vsnprintf vsyslog writev pread \
setrlimit setproctitle)
+if test `uname` = "Linux"; then
+ AC_DEFINE(PREAD_WRAPPERS,, Define if pread/pwrite needs _XOPEN_SOURCE 500)
+fi
+
dnl * poll/select?
AC_CHECK_FUNC(poll, [
/* Copyright (C) 2003 Timo Sirainen */
-#define _XOPEN_SOURCE 500 /* for pwrite() / Linux */
-
#include "lib.h"
#include "buffer.h"
#include "byteorder.h"
#include "lib.h"
+#ifdef PREAD_WRAPPERS
+# define _XOPEN_SOURCE 500 /* Linux */
+#endif
+
#include <stdio.h>
#include <ctype.h>
#include <unistd.h>
}
#endif
-#ifndef HAVE_PWRITE
+#ifndef HAVE_PREAD
ssize_t my_pread(int fd, void *buf, size_t count, off_t offset)
{
ssize_t ret;
return ret;
}
#endif
+
+#ifdef PREAD_WRAPPERS
+ssize_t my_pread(int fd, void *buf, size_t count, off_t offset)
+{
+ return pread(fd, buf, count, offset);
+}
+
+ssize_t my_pwrite(int fd, const void *buf, size_t count, off_t offset)
+{
+ return pwrite(fd, buf, count, offset);
+}
+#endif
ssize_t my_writev(int fd, const struct iovec *iov, int iov_len);
#endif
-#ifndef HAVE_PWRITE
+#if !defined (HAVE_PREAD) || defined (PREAD_WRAPPERS)
# define pread my_pread
# define pwrite my_pwrite
ssize_t my_pread(int fd, void *buf, size_t count, off_t offset);
/* @UNSAFE: whole file */
-#define _XOPEN_SOURCE 500 /* for pread() / Linux */
-
#include "lib.h"
#include "alarm-hup.h"
#include "istream-internal.h"